-
[Text mining] RAKE(Rapid Automatic Keyword Extraction) AlgorithmData miner 2019. 3. 29. 14:36728x90
Text mining 에서 중요한 부분을 담당하고 있는 전처리 부분(preprocessing). 이 전처리 과정을 용이하게 해주는 Rake algorithm에 대해서 정리하고자 한다. 전처리 과정이 중요한 이유는 Text에 포함된 수 많은 단어 중에서 분석에 있어 유의미한 단어들로 줄여야 하기 때문이다. 또한, 궁극적으로는 Text mining에서 분석 단계에서 쓰이는 Document-Term Matrix에서 구성 요소의 값들이 0이 아닌 값들로 구성하도록(dense matrix) 만들기 위함이다. 자 그러면, Rake algorithm은 어떻게 작동하는 것일까?
(구체적인 내용과 관련된 책의 출처는 : Automatic Keyword Extraction from Individual Documents ; https://www.researchgate.net/publication/227988510_Automatic_Keyword_Extraction_from_Individual_Documents)
크게 3단계로 구성이 되며, 다음과 같다.
1. 키워드 후보군을 고르는 단계. 키워드는 문서에서 중요하게 여겨지는 단어들이며, 이는 문법적으로만 유의미한 단어들을 제외한다. RAKE 알고리즘에는 Stopword list와 더불어서 키워드 후보군에 영향을 미치는 파라미터가 총 3가지가 있다. 영어 텍스트의 경우, '문자열의 개수(단어로 간주 될 수 있는 최소한의 문자열의 수), 어구의 포함되는 단어들의 최대 개수, 그리고 전체 문서(코퍼스)에서 몇 번 등장하는지'가 해당 파라미터에 해당한다. 이를 통해서 키워드 후보군을 뽑아내게 된다.
2. 후보 단어들 중에서 Co-ocurrences of words(동시 출현한 단어)들을 중요한 의미를 가지는 단어들로 본다. 따라서, 각 단어들에 대해서 이와 관련된 word score을 측정하게 된다. 예시 메트릭스와 함께 설명하겠다.
Text Mining: Applications and Theory.book에 실린 그림입니다! 1) 각 단어들의 빈도수 계산
freq(minimal) = 3, freq(systems)=4 가 된다.
2) degree 계산 ; 개별 단어들의 빈도수와 단어가 어구의 형태로 후보군에 묶이게 되었을 때, 각 단어들의 빈도수와 다른 단어와 함께 쓰이는 횟수를 더한 값
deg(minimal) = 1+3+2+1+1 = 8, deg(systems) = 4 가 된다.
3) degree / 빈도수 를 통한 1)과 2)의 비율을 구한다. 어구의 ratio 값은 어구에 포함된 각각의 단어 ratio의 값을 더하면 된다. 이 값이 나중에 최종 keyword list를 만드는데 중요한 영향을 끼치게 된다.
ratio(minimal) = 8/3 , ratio(systems) =1 이 되며, ratio(minimal systems) = 11/3 이다.
4) 총 개별 단어의 수의 3분의 1에 해당하는 수를 keyword list의 총 갯수로 본다. 예를 들어 총 단어가 28개 였다면, 28/3, 약 9개의 단어가 유의미한 keyword에 해당한다. Ratio의 값을 내림차순으로 정렬하여 상위 9개를 분석에 있어서 유의미한 단어로 보게 되는 것이다.
이런 과정을 통해 RAKE algorithm이 작동하게 되며, 이를 직접적으로 코딩하는 방법은 곧 올리겠다!
'Data miner' 카테고리의 다른 글
#분류문제 #Decision tree (0) 2019.06.15 Variance <->Bias 와의 균형 문제(trade-off) (1) 2019.06.11 머신러닝 알고리즘, 모델, 그리고 가정 (0) 2019.06.11 통계, 머신러닝, 데이터 마이닝, 인공지능... 학문 분야에 대한 정리 (0) 2019.06.11 [JAVA & Python] Class, Instance, Object 개념 정리 (0) 2019.03.28