Text Mining

텍스트 마이닝은 데이터 마이닝 기법을 텍스트에 적용한 것으로, 텍스트로부터 정보를 유추하거나 추측하는 작업을 의미한다. 즉, 데이터 마이닝의 여러 가지 기법을 사용하여 텍스트로부터 다양한 결과(텍스트를 어떤 기준에 따라 정해진 범주로 분류하는 것, 비슷한 텍스트들의 군집을 찾는 것, 텍스트 안의 단어들 간의 특별한 규칙을 추측하는 것, 문서를 요약하는 작업 등) 를 이끌어내는 것이다.

1. 문서 분류

문서 분류 시스템이란 문서를 그것의 내용을 바탕으로 이미 정해진 범주에 할당하는 시스템을 말한다. 스팸 메일 필터링 시스템이나 웹 문서 분류 시스템들이 대표적인 문서 분류 시스템이다.

기존의 문서분류의 기법들을 살펴보면 문서 내에 출현하는 단어의 빈도를 이용하는 기법과 언어학적 접근법인 자연어 처리 기법을 이용해 문장들의 의미를 분석하여 분류에 이용하는 기법이 있다.

복잡한 전처리 없이 쉽게 이용할 수 있는 방법인 문서 내에 출현하는 단어의 빈도를 이용한 기법은 문서를 bag of words로 간주해 문서 내에 출현하는 단어의 유무나 빈도를 이용해 분류하게 된다. 예를 들어 "Biomechanical stress is a major stimulus for cardiac hypertrophy and the transition to heart failure."이란 문장이 있다면 이들을 W={Biomechanical, stress, major, stimulus, cardiac, ... , failure}이라는 집합으로 간주하는 것이다. 이들 각 단어들은 워드 벡터로 만들어져 분류에 이용된다. 그러나 단순히 많이 나오는 단어가 그 문서를 대표한다고 단정 할 순 없다. 실제로 많은 문서에서 그리 높지 않은 빈도를 가진 단어가 문서를 대표하는 경우가 많다. 그래서 단어의 빈도수와 역문서 빈도수 정보를 이용하는 TFIDF(Term Frequency and Inverse Document Frequency)등의 알고리즘을 이용해 좋은 성능을 보여주고 있다.

의미 분석을 통한 문서 분류를 위해서는 자연어에서 사용하는 전처리를 해준 후 분류 알고리즘을 이용하게 된다. 우선 문장을 단어 단위로 나누고 불용어를 제거 한 후 각 단어를 어근의 형태로 바꾸어준다. 이후 태그를 달아 품사를 결정해 의미 파악을 하게 된다. 의미 기반의 문서 분류가 단순히 문서 내에 출현하는 단어 빈도를 이용해 범주를 결정하는 방법보다 성능은 좋을 수 있다. 하지만 이를 위해서는 복잡한 언어학적 처리과정을 거쳐야하고 온톨로지(ontology)나 시소러스(thesaurus) 등의 추가적인 언어학적인 도구가 필요하다.

또한 문서에서 메타 데이터(예: 논문에서, 제목, 저자, 초록, 참고문헌) 를 추출하고 이를 이용해 기계 학습 알고리즘을 적용시켜 분류를 수행하는 방법도 있다.

 
text_web_mining.png

[그림 1] Example: Text classification(web pages)


2. 문서 요약

문서 요약은 전체 문서의 각 부분에서 주요한 부분을 찾아내서 모음으로써, 또는 더 간결하게 바꾸어 씀으로써 그 문서를 요약하는 문서를 만들어내는 작업이다. 인터넷의 발달로 수없이 많은 글들이 생산되면서, 이 기술 또한 중요성이 높아지고 있다. 검색 엔진 회사에서 문서 요약을 사용자에게 제공함으로써 의사 결정을 돕기도 한다.

 
text_abstract.jpg

[그림 2] Example: Text summarization(patents)