워드 클라우드로 내용 정리하기, 독서
최근 워드클라우드 들어 빅데이터 분석이 대두되면서 자연스럽게 워드 클라우드의 중요성이 함께 상승해 있다. 워드 클라우드의 이점은 가시적으로 손쉽게 파악할 수 있다는 점에서 매우 유익한 분석 결과일 것이다. 이를 R에서 구현이 가능한데, 이 책에서는 파일을 불러들이는 방법에서 두 가지로 나누어 설명한다. 과정은 같다. 하지만 맨 처음 내가 분석하고자 원하는 파일을 불러들이는 방법에서의 차이가 약간 있을 뿐이다. 우선 공통적인 내용으로 다음의 페키지를 모두 설치해야 한다. >install.packages(KoNLP) >install.packages(wordcloud)>install.packages(RcolorBrewer) 주의 할 것은 가끔씩 설치한 후에 rJava가 설치되어 있지 않은 경우, 워드클라우드 실행이 되지 않는 경우가 있다. 그럴 때, 자신의 컴퓨터 사양에 맞춰서 Java를 설치를 해 줘야 한다. 아래의 사이트에서 설치를 할 수 있다. 만일 사용자가 64비트 환경의 컴퓨터를 사용한다면 Windows x64 Offline을 설치하면 된다. 만일 32비트이면 Windows x86계열을 설치하자. [자바설치 주소] [자바설치 목록]워드 클라우드 실행 방법은 다음과 같은 단계로 이루어진다. 1단계 텍스트 수집 및 저장에서 wordcloud 생성까지 총 5단계로 요약될 수 있다. 오른쪽은 R에서 구현할 수 있는 명령어들이다. >install.packages(KoNLP) >install.packages(wordcloud)>install.packages(RcolorBrewer) 우선 입력한 명령어를 설명하면 다음과 워드클라우드 같다. 첫 번째는 한글의 형태소분석을 통해 명사를 분류하는 KoNLP 꾸러미이다.두 번째는 워드클라우드를 만들어주는 패키지, 세 번째는 R 프로그램에서 앞으로도 누차 쓰일 색채 팔레트이다. 위의 설치파일을 모두 설치하였다면, 모두 불러오자. >library(KoNLP) >library(wordcloud) #여기까지만 해도 아래 RColorBrewer은 자동으로 불러진다. >library(RColorBrewer) 설치할 때만 "를 써줄 뿐 불러들일 때는 사용하지 않는다. 그리고 분석을 하려는 문서를 저장하자. 예를 들어, D 드라이브에 rwork라는 폴더 안에 텍스트 파일을 만들어 놓으면 된다. 그리고 그 경로를 항상 기억해 두자. 이렇게 저장해둔 txt 파일을 워드클라우드 불러와야 한다. 5.1 예시 1D 드라이브에 rwork라는 폴더 안에 park.txt라고 내용을 저장하였다면 다음과 같이 파일을 불러서 f라는 변수에 저장하면 된다. >f <- file(D:/rwork/park.txt, blocking=F) >txtLines <- readLines(f) f라는 이름으로 파일을 불러온 뒤에, 이 f를 계속 사용할 것이다. f를 라인 바이 라인으로 읽어 들일 것이며, 그럼 그것은 txtlines라고 명명하겠다! 라고 선언을 하게 된다. 워드 클라우드 특성상 워드 즉 단어들을 다룬다. 다음은 명사를 추출하여 데이터를 담는 방법이다. >nouns <- sapply(txtLines, extractNoun, USE.NAMES ϟ) f를 좀 정제한 워드클라우드 txtLines에서 Noun을 extract하라는 것이며, 그리고 Names를 쓰는 것은 False 값을 준다.어떻게 돌아가고 있는지 궁금하면,>nouns 를 쳐보면 텍스트에서의 명사들만 정렬되는 것을 알 수 있다. 다음은 nouns만 다시 추려서 새 파일로 만드는 방법이다. >undata=unlist(nouns) 중복된 단어들을 빼고 각각 몇 개씩 있는지를 보는 것이다. >wordcount <- table(undata) >length(wordcount) 이걸 내림차순으로 하면>sort(wordcount, decreasing =T)오름차순으로 하고 싶다면 decreasing=F 로 하면 된다. 다음은 본격적으로 워드클라우드를 만드는 방법이다. 그 전에 Rcolorbrewer에 대해 살펴보자. 다음과 같이 명령어를 입력하면, 각종 파랫트가 나온다. >display.brewer.all()여기서는 워드클라우드 Pastel1을 골라서 적용해 보도록 한다. >pal <- brewer.pal(9, Pastel1) 앞에 있는 숫자 9는 사용자가 쓸 만큼의 색깔을 뜻한다. 예시에서는 팔레트에 들어있는 색상의 색깔 모두를 쓸 것이기 때문에 9라고 입력하였다. >pal 이라고 치면 [1] #FBB4AE"#B3CDE3"#CCEBC5"#DECBE4"#FED9A6"#FFFFCC"#E5D8BD"#FDDAEC"#F2F2F2" 이렇게 사용자가 쓸 색채들이 나열된다. 그럼 본격적으로 워드클라우드를 생성해 보자. 그런데, '것', '등'이라는 글자가 너무 많이 나오는 게 부적절하다. 따라서 모든 단어는 2자 이상일 수 있도록 함수를 하나 설정하는 것이 좋다. 다음과 같이 처리할 수 있다. >dataϟilter(function(x){nchar(x)>=2}, undata)>wordcount1 <- table(data) 워드클라우드 이렇게 해야 두 글자 이상인 단어만 모인 워드카운트 뭉치가 생성된다. >wordcloud(names(wordcount1), freq =wordcount1, scale=c(7,1), rot.per=0.25, min.freq=1, random.order=F, random.color=T, colors=pal) 설명하자면, wordcount 수만큼 frequency(빈도)를 확인하라. 그리고 scale(폰트의 크기)은 최고 7픽셀에서, 제일 작은 건 1픽셀까지만. rotation되는 단어의 빈도는 0.25정도로 하고, 등장하는 단어의 가장 작은 빈도 수는 1로, 빈도가 가장 큰 단어를 중앙에 두도록 하기 위해 random order는 False 값을 준다. 컬러는 맘대로 해도 좋으니 True 값을 줄 수 있다. 대신 그 컬러 팔레트는 위에 정한 pal을 워드클라우드 사용하라 이다. 다음 그림은 문재인 대통령이 대표시절(1월 19일 신년 기자회견) 기자회견문으로 국민과 경제, 우리, 박근혜 등의 단어를 많이 언급한 것을 알 수 있다. 또한 경제 보다는 정치라는 단어가 더 많이 보인다. 얼핏 보면 뭔가 대통령에 대해 참 많은 이야기를 한 듯하다.