[NLP] 키워드 추출 기법 소개
자연어 처리란
자연어(Natural Language)란 우리가 일상 생활에서 사용하는 언어를 의미한다. 자연어 처리(Natural Language Processing)란 이러한 자연어의 의미를 컴퓨터가 처리할 수 있도록 하는 것이다.
자연어 처리가 사용되는 분야에는 음성 인식, 내용 요약, 번역, 감성 분석, 텍스트 분류, 질의 응답 시스템, 챗봇 등이 있다.
키워드 추출 기법
- 통계적 특성에 기초한 키워드 추출
- Rake, YAKE!, TF-IDF
- 의미적 측면을 고려한 키워드 추출
- KeyBERT
TF-IDF
TF-IDF는 단어의 빈도와 역 문서 빈도를 사용하여 DTM(문서 단어 행렬)내의 각 단어들마다 중요한 정도를 가중치로 주는 특징 추출 기법이다.
- TF (단어 빈도)
- Term Frequency의 약자로, 1개 문서 안에서 특정 단어의 등장 빈도를 의미한다. 문장을 단어로 나눈 후 전체 단어 수에서 특정 단어가 얼마나 사용되었는지를 파악하는 방식이다. 해당 문서의 성질을 파악하는 지표로도 사용된다.
- DF (문서 빈도)
- Document Frequency의 약자로, 특정 단어가 나타나는 문서 수를 의미한다.
- IDF (역 문서 빈도)
- DF에서 역수 변환을 해준 값이다.
TF-IDF = TF * IDF이다.
단순히 많이 등장하는 빈도 수로 그 단어의 가치를 정하는 것이 아니라(Not Only TF), 많이 등장하는 단어들에게는 일종의 패널티를 주어서 단어 빈도의 스케일을 맞추어가는(But Also IDF) 기법이다.
KeyBERT
- Python 언어 기반
- BERT 언어 모델 사용
- 트랜스포머 라이브러리 사용
공식 레포는 https://github.com/MaartenGr/KeyBERT 이다.
앞서 BERT 모델이란?
BERT는 2018년에 자연어 처리를 위해 구글에서 고안한 트랜스포머 기반의 머신러닝 기법이다. BERT의 가장 큰 특징중 하나는 문장 전체의 구조를 양방향으로 학습해 문맥을 파악한다는 점이다.
기존의 Word2Vec, Glove와 같은 임베딩 방식은 문맥 파악 없이 단어를 임베딩한 것에 반해 BERT는 앞뒤 문맥을 통해 구분할 수 있다는 장점을 갖는다.
KeyBERT는
BERT를 이용해 문서의 주제를 파악하고, N-gram을 위해 단어를 임베딩한다. 이후 코사인 유사도를 계싼해 어떤 N-gram 단어 또는 구가 문서와 가장 유사한지 찾아낸다. 가장 유사한 단어들은 문서를 가장 잘 설명할 수 있는 키워드로 분류된다.