[텍스트 마이닝의 개념 ]
1. 개요
텍스트 마이닝은 비정형 데이터 마이닝의 유형 중 하나입니다. 텍스트 마이닝은 비정형 및 반정형 데이터에 대하여 자연어 처리 기술과 문서 처리 기술을 적용하여 유용한 정보를 추출, 가공하는 목적으로 하는 기술입니다. 실생활에서 만들어 지는 대부분의 자료는 문서 형태입니다. 여러 분야의 논문, 신문 또는 잡지의 기사, 여론조사, 콜센터의 전화 보고서, 이메일, 디지털 형태의 문서 등이 문서 형태를 가지는데요. 문서 형태의 데이터는 기존의 통계분석이나 데이터 마이닝 기법을 적용하기에 부적합한 데이터 형태를 가집니다. 그리고 대부분 텍스트 데이터베이스에 저장된 데이터는 반구조적 데이터입니다. 문서는 제목, 작가, 출판날짜, 길이, 분류 등과 같은 약간의 구조적인 분야들을 포함할 수 있고, 또 문서의 요약, 내용과 같이 크기가 큰 비구조적 텍스트 요소 또한 포함되기 때문입니다. 즉, 반구조적 데이터란 완전하게 구조적이지도 않고 완전하게 비구조적이지도 않은 데이터를 의미합니다.
텍스트 마이닝의 응용분야 는 다양한데요. 어떤 경우에 응용하는지를 살펴보겠습니다. 과학논문 데이터베이스에서 특정 주제의 논문들을 찾을 경우 텍스트 마이닝을 응용합니다. 그리고 문서로부터 구조화된 정보를 추출하여 데이터베이스화 시키거나 규칙을 찾을 경우, 사용자가 웹 상에서 문서를 찾는 것을 도와줄 때 경우, 대량의 데이터베이스에서 문서의 분류 및 군집화할 경우, 문서 분류정보를 이용하여 문서를 재해석할 경우, 신문/논문/보고서를 요약할 경우, 문서를 번역할 경우, 스팸메일을 여과할 경우, 문서를 여과하거나 추천할 경우, 대표적 키워드나 토픽을 추출할 경우, 질의 응답시스템을 활용할 경우, 설문지 조사의 기타항목을 요약할 경우 등이 있습니다.
데이터 마이닝과 텍스트 마이닝을 비교 하여 각 특징에 대하여 정리해보겠습니다.
먼저 데이터마이닝과 텍스트 마이닝은 마이닝할 대상이 다른데요. 데이터마이닝이 수치 또는 범주화된 데이터를 대상으로 적용하는 반면, 텍스트 마이닝은 텍스트를 대상으로 적용합니다. 그리고 구조를 보면 데이터 마이닝이 관계형 데이터 구조를 가지는데 반하여 텍스트 마이닝은 비정형 또는 정형의 텍스트 데이터를 다룹니다. 이 둘은 목적도 다른데요. 데이터 마이닝이 미래 상황 결과의 예견 및 예측을 하는 목적을 가지는 반면, 텍스트 마이닝은 적합한 정보를 획득하고 의미를 정제하고 범주화하는 목적을 가집니다. 그리고 방법으로는 데이터 마이닝이 기계학습 방법을 사용합니다. 텍스트 마이닝은 기계학습 방법을 포함하고 인덱싱, 언어처리, 온톨로지 등의 방법도 적용합니다. 이 중 온톨로지가 낯설을 수 있는데요. 온톨로지는 사람들이 세상에 대하여 보고 듣고 느끼고 생각하는 것에 대하여 서로 간의 토론을 통하여 합의를 이룬 바를 개념적이고 컴퓨터에서 다룰 수 있는 형태로 표현한 모델로, 개념의 타입이나 사용상의 제약조건들을 명시적으로 정의한 기술입니다. 온톨로지는 일단 합의된 지식을 나타내므로 어느 개인에게 국한되는 것이 아니라 그룹 구성원이 모두 동의하는 개념임으로 프로그램이 이해할 수 있어야 하므로 여러 가지 정형화가 존재합니다.
텍스트 마이닝의 문제점
텍스트 마이닝의 문제점은 크게 두 가지가 있습니다. 하나는 상당히 자연어에 영향을 많이 받는다는 것입니다. 자연어란 사람이 쓰는 말로 한국어, 일본어, 독일어, 영어 등을 의미하는데요. 자연어 중 한글이나 한국어 처리에서 문제가 있는 분야는 광학문자판독, 음성인식 그리고 감성분석 등이 있습니다. 또 하나의 문제점은 분석 결과물 자체로 어떤 성과를 보기 어렵다는 것입니다.이는 분석 결과물 자체를 그대로 비즈니스 모델에 적용해서 뭔가를 만들어 성과를 보기 어렵다는 의미인데요. 워드 클라우드란 단어를 기억하고 가셔야 합니다. 이는 자주 볼 수 있는 분석 결과물 시각화 방법으로 단어들이 둥둥 떠 있고 단어끼리 선을 연결하여 시각화하는 방법입니다.
텍스트 마이닝이 요구하는 기법
텍스트 마이닝은 데이터 마이닝 기법 외에도 자연어 처리 기술 과 문서 처리 기술 을 추가로 요구합니다. 텍스트로 된 정보원으로부터 필요한 지식을 추출하는데 사용되는 자연어 처리 기술과 문서 처리 기술에 대해서 살펴보겠습니다.
2. 자연어 처리 기술과 문서 처리 기술
자연어 처리 기술
먼저 자연어 처리 기술부터 알아보겠습니다. 텍스트 마이닝은 자연어 처리 도구에 매우 많이 의존하고 있습니다. 자연어 처리 도구란 자연어를 처리하는데 필요한 소프트웨어 라이브러리들을 의미하는데요. 형태소 분석기, 구문 분석기, 화행 분석기, 대화처리 분석기 등이 있습니다. 이 도구들은 자연어의 특성을 많이 타는 것으로 각 언어별로 다 품질이 다르고, 사전 관리 등 복잡한 문제가 있습니다. 영어권의 경우에는 기술적인 진척이 많고 영어의 특성이 분석이 더 쉽다는 것이 없지 않아 잘 되는 것도 있지만 한글 및 한국어는 어순이 명확하지 않아 아직은 기술적으로 부족하여 분석이 어려운 편입니다. 현재의 자연어 처리 기술은 부족합니다. 텍스트의 내용을 이해할 수 있을 만큼의 정확한 정보를 제공할 수준에 이르지 못하였을 뿐만 아니라, 구문 정보조차도 아주 높은 정확도로 제공하지 못하고 있습니다. 따라서 순수한 자연언어처리 기법을 사용하여 관계를 파악하는 것은 불가능합니다. 그래서 현실성이 있는 수준의 처리만 하여 필요한 정보를 추출하는데요. 구문 정보를 파악하기 위해 현재는 전체 파싱 대신에 부분 파싱 기법을 사용합니다. 파싱이란 컴퓨터에서 컴파일러 또는 번역기가 원시 부호를 기계어로 번역하는 과정의 한 단계로 각 문장의 문법적인 구성 또는 구문을 분석하는 과정입니다.
[R을 활용한 텍스트 마이닝 수행 ]
1. 텍스트 파일 불러와서 코퍼스(Corpus)로 변환하기
Corpus
R 프로그래밍 언어 패키지 중 tm패키지를 이해하기 위해서는 코퍼스(Corpus)에 대한 이해가 우선이 되어야 하는데요. 코퍼스(Corpus)는 텍스트 문서들의 집합으로 tm패키지에서 문서를 관리하는 기본 구조입니다. R 프로그래밍의 외부 데이터베이스나 파일로 관리됩니다. 그리고 저장장소를 표시하는 DirSource, VectorSource, DataframeSource처럼 디렉토리, 백터값, 데이터프레임을 통해 읽어 들여 생성됩니다.
2. 변형 및 결과보기
term document matrix 작업
이번에는 term document matrix 작업하는 언어를 살펴 볼 텐데요. 문서 번호와 단어간의 사용여부 또는 빈도수를 이용하여 matrix를 만드는 작업을 term document matrix 작업이라고 합니다. 12번 박스에서 DocumentTermMatrix는 Reuter로 읽어 들이고 변환한 문서를 document term matrix로 dtm을 생성한다는 것입니다. findFreqTerms(dtm,10)는 10회 이상 사용된 단어를 찾는 방법입니다. 만약 findFreqTerms(dtm, 10, 15)로 지정하면 10에서 15회 사이로 사용된 단어가 출력되는 것입니다. 14번 박스에서 findAssocs(dtm,"oil",0.65)은 findAssocs에서 oil과 연관성이 0.65 이상인 단어들이 표시하는 것입니다. 즉, oil과 같이 사용될 확률로 계산이 되는데 이를 통해 무슨 내용이 많이 언급되는지를 알 수 있습니다. 다음을 볼까요? removeSparseTerms(x, sparse)에서 sparse는 최대 sparsity값으로 해당 값까지는 허용되는데요. 즉, removeSparseTerms(tdm, 0.2)라는 것은 0.2를 넘는 경우는 삭제된다는 것입니다.
워드클라우드
마지막으로 결과를 시각화하기 위해 워드 클라우드를 실행할건데요. 단어의 사용 빈도를 시각적으로 보도록 하겠습니다. 16번 박스 안을 살펴보겠습니다. 워드 클라우드를 불러옵니다. 작업한 것을 m이라는 변수에 실행합니다. 그리고 단어의 빈도를 계산하고 빈도에 의해 내림차순으로 정렬합니다. 그리고 워드 클라우드에 텍스트 크기나 색깔에 관하여 효과를 주는데요. 참고로 +기호는 윗줄과 아랫줄을 연결한다는 의미입니다. 엔터를 눌러 워드 클라우드를 만듭니다. 그럼 단어가 다음과 같이 구름처럼 생깁니다. 단어의 사용 빈도가 가장 높은 것은 가장 큰 글씨인 data, r, mining 등입니다.
'빅데이터분석개론' 카테고리의 다른 글
소셜 네트워크 분석의 이해 (0) | 2016.01.03 |
---|---|
오피니언 마이닝의 이해 (0) | 2016.01.03 |
비정형 데이터 마이닝의 이해 (0) | 2016.01.03 |
R을 활용한 데이터 마이닝 분석 (0) | 2016.01.03 |
데이터 마이닝 분석 패키지 - R (0) | 2016.01.03 |