20130815

Using R – 1. wordcloud

R을 시작하며..
R로고빅데이터가 화두로 떠오르면서 함께 주목받는 언어가 바로 “R”이다.
R은 오픈소스 기반의 데이터 분석엔진이다.
이미 대학이나 연구소 등에서는 통계분석 툴로 많이 사용해왔는데,
최근 들어 하둡과의 연동을 지원하는 라이브러리로 인해 빅데이터 분석과 데이터 마이닝 툴로 급격히 관심을 받고 있다.
R의 가장 큰 장점이자 강점이라고 한다면, 무한한 패키지이다.
우리가 생각하는 왠만한 기능은 이미 누군가 패키지로 만들어두었다고 보면된다.
또한 누구나 패키지를 만들어 공유할 수도 있다.
R을 잘 사용하는 방법은 어떤 패키지를 활용하면 되는지 아는 것이라고 할 수 있다.
새로 접하는 R은 생소하지만, 이미 많은 사람들이 사용하고 있기 때문에 조금만 검색해도 많은 레퍼런스를 찾을 수 있다.
관련 사이트를 소개하면 다음과 같다.
R 사용법은 각자 공부해야 하는 부분이다. 위에서 소개한 사이트를 통해 R을 설치하고 기본적인 사용법을 익혀보자. CodeSchool 의 Try R 의 경우 단계별로 따라가면서 해볼수 있게 되어있으므로 꼭 해보길 추천한다. 이 글에서는 실무적으로 활용한 R에 대해 공유하고자 한다.
R 따라하기
이번에는 처음 시작하는 단계로 누구나 쉽게 접할 수 있고, 흥미를 느낄 수 있는 wordcloud를 같이 구현해보자.
트위터에서 “kth”라는 키워드로 트윗을 검색한다.
1/21부터 1/27까지 1주일간의, 한국어로 된 트윗만 대상으로 한다.
아래는 R 소스코드이다.
# 관련 패키지 설치
install.packages(“KoNLP”)
install.packages(“wordcloud”)
install.packages(“plyr”)
install.packages(“twitteR”)
install.packages(“tm”)
# 설치되어 있는 패키지를 로딩
library(KoNLP)
library(wordcloud)
library(plyr)
library(twitteR)
library(tm)
# 키워드 설정
keyword <- ‘kth’
# 트위터에서 키워드로 검색
result <- searchTwitter(keyword, since=’2013-01-21′, until=’2013-01-27′, lang=’ko’,n=1000)
# 결과 중에서 텍스트에 해당하는 부분만 뽑는다
result.df <- twListToDF(result)
result.text <- result.df$text
# 불필요한 문자를 걸러준다
result.text <- gsub(“\n”, “”, result.text)
result.text <- gsub(“\r”, “”, result.text)
result.text <- gsub(“RT”, “”, result.text)
result.text <- gsub(“http”, “”, result.text)
# 문자 분리
result_nouns <- Map(extractNoun, result.text)
# 쓸모없는 문자들을 제거한다. 특히 영문자의 경우 tm의 stopwords를 활용한다.
result_wordsvec <- unlist(result_nouns, use.name=F)
result_wordsvec <- result_wordsvec[-which(result_wordsvec %in% stopwords("english"))]
result_wordsvec <- gsub(“[[:punct:]]”,”", result_wordsvec)
result_wordsvec <- Filter(function(x){nchar(x)>=2}, result_wordsvec)
# 문자 카운팅
result_wordcount <- table(result_wordsvec)
# 컬러 세팅
pal <- brewer.pal(12,”Paired”)
# 폰트 세팅
windowsFonts(malgun=windowsFont(“맑은 고딕”))
# 그리기
wordcloud(names(result_wordcount), freq=result_wordcount, scale=c(5,0.5), min.freq=5, random.order=F, rot.per=.1, colors=pal, family=”malgun”)
우선 필요한 라이브러리들을 설치해야한다.
설치는 한번만 하면 되고, 이후에는 로딩만 해준다.
twitteR 패키지에 있는 searchTwitter 함수를 사용해서 검색을 한다.
사용법을 알고 싶을 때는 콘솔에 help(searchTwitter)를 입력하면 document를 볼 수 있다.
다른 함수들도 help()를 사용해 사용방법과 args를 확인하고 값을 적절히 변경해보면 기능을 금방 이해하는데 도움이 된다.
searchTwitter를 사용하면 리턴값은 해당 패키지에서 사용하는 클래스 형식이다.
str(result)를 해서 데이터형을 확인해볼 수 있다.
해당 트윗의 내용, 등록일, 등록한 사용자의 id와 스크린네임, RT까지 리턴된다.
여기서 필요한건 트윗 내용이기 때문에 text 부분만 따로 뽑아주었다.
이대로 따라해주기만 하면 다음과 같은 wordcloud가 완성된다.
kth_wordcloud




출처 : http://dev.kthcorp.com/2013/02/06/r-quickstart-guide-1-twitter-wordcloud/

댓글 없음:

Articles