본문 바로가기

R & ADsP

ADsP :: R 이론부터 실전까지 한번에 보기<텍스트마이닝>

by m_ahh 2017. 6. 22.
반응형

ADsP를 준비하며 정리했던 자료들. 내가 정리 한 것들은 2017년 개정판, 인터넷자료들,위키백과 등 이다. 카테고리는 2017개정판 데이터분석 전문가 책기준으로 되어있다.


1절 텍스트 마이닝


텍스트마이닝 이란 최근 10년사이에 크게 발전한 영역이다. 1980년대에는 노동집약적인 수동적인 방법이 이루어 졌었다. 현대의 텍스트마이닝이란 텍스트를 사용하여, 패턴이나 관계를 추출한 뒤, 그 안의 의미있는 정보나 가치를 발굴하고 해석하는 일을 일컫는다. 다양한 형태의 문서에서 데이터를 획득할 수 있고-웹이나 pdf, ms오피스, 오라클오픈오피스,xml,txt 등- 많은 기업에서 트위터, 고객의 정보를 API로 읽어들여서 분석하고 경영에 반영하고 있다. 

 텍스트 마이닝의 기능 으로는 문서요약, 분류, 군집화, 특성 추출 등을 꼽을 수 있다. 또한 텍스트마이닝 단원에서 알아둬야할 중요한 것은 텍스트분석을 위해서는 해당언어의 깊이있는 이해와 문화 관습 이해도 필요하다는 것이다. 그 해당 언어의 백그라운드 지식이 필요하다. 또한 영어분석만 줄 곧 진행해오던 한국인의 경우 영어분석의 결과가 한국어 분석 결과보다 더 좋을 수 도 있다. 


R > tm 패키지 사용

 

<트위터에서 자료가져오기 방법2>

 웹페이지에서 html을 데이터로 가져와서 파싱하는 것과 API를 이용해서 가져오는 방법으로 2가지가 있는데, 무분별한 API자제를 위해서 제약이 많을 수도 있다. 또한 트위터 API를 위해서 {twitterT} 패키지를 설치해야 한다.

 

  

<데이터 전처리 및 가공> 

 집된 데이터에 내부에 문장부호나 의미없는 숫자와 단어, url등 무의미부분을 제거하면서 택스트를 가공하는 것이다.  

 먼저 Corpus 를 생성 한다. 데이터마이닝 중 정제, 통합, 선택, 변환 과정의 구조화단계를 말하고, 더이상의 추가 절차 없이 데이터 마이닝 알고리즘 실험의 활용상태를 만들어 준다.그 다음, tm패키지 내부의 corpus 형식을 가지는 데이터들의 변형을 위한 tm_map()함수를 사용하여 corpus 형식의 데이터에 일반적 함수 적용을 더해 전처리 밑 가공을 해준다. 


R > tm 패키지의 Corpus()함수, tm_map()함수

  cf. tm 패키지 업데이트 되면서 getTranstormations() 을 사용해줘야 하는 경우가 있다. 

removeNumbers,removePunctuation,removeWords,stemDocument,stripWhitespace 빼고 다른 내장함수사용시 content_transformer(tolower) 등으로 사용해야함 

 


<자연어 및 한글 처리> 

 Stemming 이란 공통어간을 가지는 단어를 묶어 주는 것이다. 역시 tm 패키지를 사용하고, stemDocument()와 stemCompletion() 의 스테밍, 스테밍단어 완성과정을 거치게 되고, 따라서 반드시 딕셔너리가 필요하게 된다. 


한글 처리를 위해서는 텍스트마이닝패키지 KoNLP와 JRE설치가 필요하다. 


<텍스트마이닝 예제> 한글설정

>library(KoNLP) 

>library(rJava)

>extractNoun(‘데이터마이닝할문장’)

>sapply(‘데이터마이닝할문장’, extractNoun)


보통 한글마이닝은 명사추출후 corpus 로 만들어 분석한다.

 

<TDM구축 : term-document-matrix>

 TDM이란 전처리 된 각 문서와 단어간의 사용여부를 사용해 만들어진 행렬을 의미하고, 각 단어의 빈도수를 쉽게 알 수 있다. TextDocumentMatrix()함수는 행은 각 단어, 열은 트위터 메시지 행열을 만들고 딕셔너리 부분을 작성하지 않으면 분리된 모든 단어가 tdm으로 만드는데 사용된다. 또한 단어사전  dictionary 는 복수의 문자집합으로 텍스트마이닝에서 사용하고자 하는 단어들의 집합을 의미한다. 

  

<분석 및 시각화>\

  Association 으로 tdm에서 특정 단어와의 연관성에 따라 단어 조회가 가능하다. 연관분석과 관련이 있다. 또한 흔히 볼수있는 워드클라우드 형태로 만들수도 있는데, {Wordcloud} 패키지를 사용하여 tdm을 이용한 후, wordcloud()함수를 사용한다. 

 또한 감성분석으로 브랜드 이미지나 경영에서 많이 사용하는 방법이 있다. 각 문장에서 이것이 긍정의 의미인지 부정의 의미인지 사용여부를 밝히는데 사용하며, 개별 문장분석에서 오류가 생겨도 수많은 데이터를 가공하면 그 추이는 옳다고 가정한다. 또한 이를 분석하기 위해서는 긍정/부정 단어 사전이 필요하다. 




반응형

댓글