텍스트마이닝 실습 (R 이용)
1. 분석개요 텍스트마이닝의 이해 실습 문제 분석기법 의미 문제정의 사용시 고려사항 적용방안 텍스트 기반 데이터에서 의미 있는 정보는 무엇인가? 다양한 포맷의 문서들을 구조적인 형태로 재구성하여 문서의 분류 및 군집, 추출, 요약을 수행함 문제정의 연말정산에 대해 일반국민들이 궁금해 하는 사항은 무엇일까? 사용시 고려사항 해당 언어자체 및 문화·관습에 대한 깊이 있는 이해가 필요함 문화와 관습의 차이가 텍스트 데이터에 반영되므로 국가별로 다른 접근방식 필요 한 언어에서 좋은 결과를 보였던 분석기법이 다른 언어에서도 좋은 결과를 보인다는 보장이 없음 적용방안 국민들이 느끼고 있는 연말정산에 대한 어려운 부분을 파악하여 쉽게 이해하고 진행할 수 있도록 함 콜센터, 홈페이지FAQ, 안내책자 등에 분석된 항목을 집중적으로 다루도록 함
2. 실습데이터 및 패키지 준비 ① "C:/Rtest"라는 폴더에 "tax.txt" 실습파일 준비 메모장에서 작성·저장시 파일 확장자를 .txt로 함 Rstudio에서 사용할 작업폴더의 경로를 다음과 같이 세팅함 > setwd("c:/Rtest") ② 한글에 대한 텍스트마이팅 패키지인 KoNLP 및 워드클라우드를 만드는 wordcloud라는 패키지, 워드클라우드 단어들에 색상을 입히는 RColorBrewer를 설치하고, 메모리에 업로드 함 - KoNLP패키지는 자바실행환경(JRE: Java Runtime Environment) 을 설치해 주어야 함) > install.packages("KoNLP") > install.packages("RColorBrewer") > install.packages("wordcloud") > library(KoNLP) > library(RColorBrewer) > library(wordcloud) ③
3. 실습데이터 읽기 및 텍스트 분석 > result <- file("tax.txt", encoding="UTF-8") > result2 <- readLines(result) > head(result2, 3) > result3 <- sapply(result2, extractNoun, USE.NAMES=F) > head(unlist(result3), 20) > write(unlist(result3), "tax_word.txt") ① 추출된 명사들이 result3 객체라는 메모리에 보관되어 있으므로 이후 활용을 위해서 실제 파일로 저장을 해 놓음 ② ③ Tax.csv 파일에 들어 있는 내용을 result라는 객체에 불러옴 - 이어서 result객체에 들어 있는 내용을 한 줄씩 행단위로 별도로 읽어서 result2에 보관함 result2에 행단위로 보관되어 있는 문장들에서 명사형 단어를 추출해서 result3라는 객체에 보관함 - 이어서 result3에 들어 있는 단어들 중에서 20개 정도를 출력해 봄
4. 텍스트마이닝 분석 ① ② > myword <- read.table("tax_word.txt") > nrow(myword) > wordcount <- table(myword) > head(sort(wordcount, decreasing=T), 20) ① ② tax_word.txt 파일에 들어 있는 내용을 데이터테이블 형태로 만들어 myword라는 객체에 불러옴 - 이어서 myword의 행(레코드) 개수를 확인해 봄 myword에 들어 있는 단어들을 빈도수를 각각 구하여 wordcount에 저장함 - wordcount에 들어 있는 단어별 빈도수를 기준으로 내림차순으로 순차정렬을 시키고 빈도수가 높은 단어부터 20개를 조회해 봄
5. 텍스트마이닝 분석 ① ② ④ ③ > palete <- brewer.pal(9, "Set1") > x11( ) > wordcloud( + names(wordcount), + freq=wordcount, + scale=c(5, 1), + rot.per=0.5, + min.freq=4, + random.order=F, + random.color=T, + colors=palete + ) ① 워드클라우드를 만드는 기능을 가진 wordcloud 패키지의 또다른 세부 기능을 가진 RColorBrewer를 메모리에 업로드 시킴 - 워드클라우드 작성시 이를 구성하는 단어들마다의 색상을 부여해줌 ② 워드클라우드 형식의 그림데이터를 표현하기 위한 별도의 그래픽구현 창을 생성함 Wordcloud함수의 세부 인수(옵션) 값을 조정하여 워드클라우드에서 중요키워드를 파악함 - scale이 출력되는 단어들간의 크기 비율임 - rot.per는 단어들간의 간격을 조절함 - min.freq는 단어의 언급횟수를 의미함 ④ ③ 원래는 아래의 기다란 형태의 한 줄로 코딩이 되어야 하지만 작성화면이 상당히 복잡하고 불편함 - 이에 따라 wordcloud( )라는 함수의 인수들을 작성하다 적당한 부근에서 Shift + Enter키를 누르면 그 다음 줄에 (+)기호가 생성되고 들여쓰기 형태로 코딩을 하게 됨 - 이를 표현하는 것이 바로 플러스기호(+)로 각각의 줄이 하나의 개별적인 R명령코딩이 아니라 원래 한 줄로 구성되어 있는 코딩이라는 의미임 wordcloud(names(wordcount), freq=wordcount,scale=c(5, 1),rot.per=0.5,min.freq=4,random.order=F,random.color=T,colors=palete)
6. 워크클라우드를 통한 시각화 최초 작성된 워드클라우드 - 것, 저, 원 등이 중요하지 않음 수정된 워드클라우드 최초 작성된 워드클라우드 - 것, 저, 원 등이 중요하지 않음 수정된 워드클라우드 > result2 <- gsub("것", "", result2) > result2 <- gsub("저", "", result2) > result2 <- gsub("원", "", result2) 최초 작성된 워드클라우드에서 파악된 비중요 단어들을 제거함