Text Mining이란 대규모 텍스트 자료에서 가치있는 정보를 찾아내는 것
키워드 언급량 분석(실시간 언급 추이, 변화량), 이슈어 분석(연관어 분석), 문서 분류(감성 분석, 감정 분석), 문서 클러스터링, 개체명 인식(도메인 별 사전 필요), 인플루언서 분석, 캠페인 성과 분석 등등
스팸메일 분류, 문서 카테고리 분류, 감성 분석, 사용자 의도 분석 등
클러스터링은 비지도 학습으로 문서가 속할 그룹의 정답이 정해져있지 않음
ex. K-means clustering, DBSCAN 등
주어진 데이터를 k개의 그룹(클러스터)로 분할한다.
중심 기반 분할 기법으로 유사한 데이터는 centroid와 가까이 분포할 것이라는 가정을 기반으로 동작한다.
1. 데이터 집합에서 k개의 데이터 포인트를 임의로 추출하여 이 포인트를 클러스터의 중심으로 설정
2. 데이터 집합의 각 데이터와 k개의 클러스터 centroid와의 거리를 구해 가장 가까운 centroid의 클러스터에 할당한다
3. 새로 할당된 클러스터의 중심으로 centroid를 업데이트 한다
4. 각 데이터 포인트가 속하는 클러스터가 바뀌지 않을 때 까지 반복한다
DBSCAN은
1. 데이터 포인트 p를 중심으로 epsilon 반경 내에 n개 이상의 데이터 포인트가 있으면 p를 중심으로한 클러스터를 생성한다
2. 한 core point가 다른 core point클러스터의 일부가 되면 두 군집은 서로 연결되어있다고 간주하여 하나의 군집으로 묶는다
3. 군집에는 속하지만 core point가 아닌 데이터 포인트를 border point라고 한다
DBSCAN의 단점은 밀도가 다른 양상을 보일 때 군집 분석을 하지 못한다. 밀도가 낮은 영역의 데이터는 군집으로 인식하지 못하고 노이즈로 남겨두게 된다
문서의 내용을 요약하는 기술이다
TextRank란 그래프 기반의 text summarization 기법이다.
그래프 기반 랭킹 알고리즘인 PageRank를 사용하여 문서 내 키워드 또는 핵심 문장을 추출한다
pagerank 알고리즘은 이 글을 참고했다.
Pagerank를 계산하는 수식은 아래와 같다
PR(A) = (1-d) + d (PR(T1)/C(T1) + … + PR(Tn)/C(Tn))
PR(A)는 웹페이지 A의 Pagerank이고, T1, T2..는 페이지A로 향하는 링크를 가진 다른 페이지다. d는 damping factor로 인접한 웹페이지로 이동할 확률을 뜻한다.(Pagerank에서는 0.85로 설정)
C(T1)은 T1페이지가 가진 총 링크의 수를 나타낸다.
어떤 페이지 A의 페이지 랭크는 그 페이지를 인용하고 있는 다른 페이지 T1, T2, T3, .. 가 가진 페이지 랭크를 정규화시킨 값의 합이라고 할 수 있다.
PR(A)를 구하기 위해서는 PR(T1), PR(T2).. 가 필요하기 때문에 PR을 구하는 식은 재귀적인 함수라고 할 수 있다.
문서에서 co-occurrence를 바탕으로 두 단어간 유사도를 정의하여 단어 그래프를 생성한다. 그다음 단어 그래프를 대표하는 핵심 단어를 선택하여 집합의 키워드를 추출한다
co-occurrence란 정해진 window size내에 단어가 동시 출현했을 때를 의미한다
vertex의 중요도를 정렬하여 top n 개의 단어를 선택하여 문서집합을 대표하는 핵심 단어로 선정한다
감성 분석이란, 텍스트로 부터 감성 표현(너무 좋다, 별로다, 불편하다 등..)을 추출한다.
Aspect-based sentiment analysis
문장에서 감성 표현과 그 표현이 향하는 대상을 알아내는 기법
VADER(Valence Aware Dictionary and sEntiment Reasoner): 사전과 규칙 기반의 감성 분석 오픈소스
감성: 감정 기반의 feeling이나 의견 ex. 국민 정서, 민심, 의견..
감정: strong feeling ex. 사랑, 불안, 화..