오답노트

[NLP] 문서 클러스터링 본문

Python/DL

[NLP] 문서 클러스터링

권멋져 2022. 10. 4. 21:59

텍스트 마이닝

대규모 텍스트 자료를 분석하여 가치있는 새로운 정보를 찾아내는 것을 텍스트 마이닝이다.

 

문서 클러스터링

문서 분류

문서 뷴류는 NLP에서 가장 중요한 분야중 하나로 다양한 NLP 응용 시스템에서 텍스트 분류 기술을 사용한다.

  • 스팸 메일 분류
  • 문서 카테고리 분류
  • 감성 분석
  • 의도 분석

문서 클러스터링

동질성이 있는 그룹으로 문서를 묶게된다. 문서 분류는 지도학습이지만 클러스터링은 비지도 학습이다.

  • K-means Clustering : 주어진 데이터를 k개의 그룹으로 분할 하는 알고리즘이다. 중심 기반 분할 기법으로 유사한 데이터는 중심점과 가까이 분포할 것이라는 가정을 기반으로 동작한다.
  • DBSCAN : 노이즈가 있는 대규모 데이터에 적용할 수 있는 밀도 기반의 클러스터링 알고리즘이다. 하지만 밀도가 다른 양상을 보일 때 군집 분석을 잘 하지 못함

 

키워드 추출

문서 요약 (Text Summarization)

추출 요약

주어진 문서 내에서 대표할 수 있는 키워드들이나 핵심 문자들을 선택하여 문서를 요약하는 기술이다. 통계 기반으로 작동하므로 학습 데이터는 필요하지 않다. 추출 요약은 대부분 사용하는 기법이다.

 

추상 요약

같은 의미의 다른 표현을 사용하거나 새로운 단어를 사용함으로서 새로운 문장으로 된 요약문을 생성하는 기술이다. 학습 데이터 기반으로 지도학습이라는 것이 단점이다.

 

Page Rank 알고리즘

초기 Google의 검색 엔진의 랭킹 알고리즘이다. 많은 유입 링크를 지니는 페이지가 중효한 페이지라고 가정한다.

voting 혹은 recommendation과 유사하며 votiong 자체의 중요도는 votiong을 행사하는 웹페이지의 중요도에 의해 결정된다.

각 웹페이지는 다른 웹페이지에게 자신의 점수를 1/n로 분배한다.

다른 웹페이지로부터의 링크가 많은 페이지는 점수가 높아진다.

 

Text Rank - 단어 그래프

co-occurrence는 window size N 이내에 두 단어가 동시에 출현했을 때를 의미한다.

 

co-occurrence를 바탕으로 두 단어간의 유사도를 정의하여 단어 그래프를 생성한다.

단어 그래프를 대표하는 핵심 단어를 선택하고 문서(집합)의 키워드를 추출한다.

vertex(단어)는 주어진 문서 집합을 품사 태깅 후, 최소 빈도수 이상 등장한 단어를 대상으로 명사, 고유명사, 동사, 형용사등을 vertex로 생성한다.

 

edge는 두 단어가 co-occurrence 관계가 있을 경우 vertex간에 edge를 생성한다.

 

vertex의 초기 중요도를 1로 설정하고 수렴할 때까지 알고리즘을 반복 실행한다. vertex 중요도를 학습할 때, 가중치를 사용하여 edge마다 다른 중요도를 부여할 수 있다.