Text Mining
10. 행렬로 전환하여 CSV 포맷으로 저장하기 Conversion to Matrix and Save to CSV
2014. 11. 22.Document-term matrix 를 다른 툴에서 활용할 수 있도록 CSV 파일로 저장하기 위해 단순 행렬로 변환할 수 있다. 아래와 같은 방법으로 행렬 변환이 가능하다.> m dim(m)[1] 10 531R의 계산한계를 넘어서는 경우에는 아래와 같은 에러 메시지가 출력된다.## Error in vector(typeof(x$v), nr * nc) : vector size cannot be NA## In addition: Warning message:## In nr * nc : NAs produced by integer overflow이런 경우에는 밀도가 희박한 term 을 제거하는 것을 고려해볼 필요가 있다. 일단 표준 행렬로 변환되고 나면, write.csv() 를 이용하여 파일로 저장할 수 있다...
09. term의 출현빈도에 대한 분포 구하기 Distribution of Term Frequencies
2014. 11. 22.앞에서 살펴본 term의 출현 빈도에 대한 분포를 구한다 > head(table(freq),15) // Frequency of frequenciesfreq 1 2 3 4 5 6 7 8 9 10 11 13 15 27 51 // 그러니깐 1번 나오는 용어가 362개, 2번 나오는 용어가 82개와 같은 식362 82 31 16 8 11 6 3 1 2 2 1 2 1 1 > tail(table(freq),15)freq 3 4 5 6 7 8 9 10 11 13 15 27 51 56 71 // 71번 나오는 용어는 1개와 같은 식31 16 8 11 6 3 1 2 2 1 2 1 1 1 1 >
07. Document-Term행렬 만들기 Creating a Document-Term Matrix
2014. 11. 22.Document-term matrix 란 문서를 행으로, 그리고 용어를 열로 가지는 행렬로, 해당 문서의 해당 용어의 출현빈도를 카운팅해서 알려준다. DocumentTermMatrix() 를 이용하여 해당 행렬을 만들 수 있다. 예를 들면, 다음과 같다. D1 = "I like databases"D2 = "I hate databases",then the document-term matrix would be:IlikehatedatabasesD11101D21011 [출처] http://en.wikipedia.org/wiki/Document-term_matrix아래와 같이 실행해보면 총 10개의 문서에, 503개의 용어가 사용되고 있음을 알 수 있다. > dtm dtmNon-/sparse entries: 51..
06. Stemming 어간추출
2014. 11. 22.Stemming 어간추출 예를 들면, "es", "ed", "s" 와 같은 common word endings english 을 제거하는 알고리즘을 이용한다. SnowballC 패키지의 wordStem() 의 기능을 이용한다(Bouchet-Valat, 2014) 많은 경우에 데이터 분석을 위해 어간을 추출할 필요가 있다. 예를 들어, "example" 과 "examples" 은 동일한 "exampl" 에서 비롯되었다고 할 수 있기 때문이다. 아래 결과를 통해 추출전과 추출후를 비교해보자. > doc[[3]]STRICKLAND: All right. So it will be prior to August 14th or whatever date it is.> doc[[6]]STRICKLAND: Way prior..
05. Preparing the Corpus - 특정 변환
2014. 11. 22.Specific Transformations 의 예 > toString inspect(doc[6]) [[1]]clewell yes im coordinator reading language arts montgomery county public schools suburban district surrounding washington schools elementary schools > doc inspect(doc[6]) [[1]]clewell yes im coordinator reading language arts montgomery county public schools suburban district surrounding WA schools elementary schools
03. Exploring the corpus - 전처리 및 간단한 변환
2014. 11. 21.1. Exploring the Corpusinspect() 를 이용하여 문서의 데이터가 제대로 로딩되었는지 확인이 가능하다. > inspect(docs[2]) [[1]]NULL2. Preparing the Corpus텍스트 분석을 위해서 경우에 따라서는 전처리 과정이 필요할 수 있다. 아래에서 보듯이 대상 텍스트를 소문자로 변환시키고, 숫자를 제거하는 등의 기능을 갖고 있음을 확인할 수 있다. > getTransformations()## [1] "removeNumbers" "removePunctuation" "removeWords"## [4] "stemDocument" "stripWhitespace"변환을 위해서는 tm_map() 을 사용한다. 아래에서 살펴본다. 3. Simple Transforms 아..