최근 rjson이 업데이트 되었는데, 정말 기다리고 기다리던 CJK 인코딩 문제가 해결되었다. 그래서 이것을 활용하는 twitteR 패키지에서 이젠 정상적으로 한글이 나오게 되었다. 이 패키지를 활용하면 트위터 팔로워들 그리고 내가 팔로잉 하는 사람들의 정보를 가져와서 분석할 수 있고, 이 밖에도 그들 각자의 트위터 문장을 분석할 수 있다.
비로소 KoNLP가 가장 많이 활용될 수 있는 패키지가 이제 정상화 된 것으로 볼 수 있다.
이것을 가지고 간단하게 나를 팔로잉하는 사람들의 자기소개를 분석해서 어떤 사람들이 나를 팔로잉하는지 확인해보고 이를 기반으로 내가 어떤 성격의 트윗을 주로 날렸는지 간접적으로 유추해 볼 수 있을 것이다. 한마디로 내가 한 말들로 인해 어떤 사람들이 나를 팔로윙 하는지 알아보자는 것이다.
코드는 아래와 같다.
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 | library(twitteR) library(KoNLP) library(wordcloud) library(tm) # gogamza <- userTimeline(user="gogamza", n=1000) # # gogamzatw <- c() # for(i in 1:length(gogamza)){ # gogamzatw <- append(gogamzatw, gogamza[[i]]$text) # } # # gogamzaNoun <- sapply(gogamzatw, extractNoun,USE.NAMES=F) # # gogamza.corpus <- Corpus(VectorSource(gogamzaNoun)) # # control <- list(stopwords=T, removePunctuation = T, removeNumbers=T, minDocFreq=2) # tw.tdm <- TermDocumentMatrix(gogamza.corpus, control) gogamza <- getUser("gogamza") #gogamza.friends <- gogamza$getFriends() #gogamza.friendsID <- gogamza$getFriendIDs() gogamza.followers <- gogamza$getFollowers() #팔로워들의 자기 소개를 벡터에 적재 한다. followerDesc <- c() for(i in gogamza.followers){ followerDesc <- append(followerDesc, i$description) } #쓸모없는 문자들을 제거한다. followerDesc <- gsub("\n","", followerDesc) followerDesc <- gsub("\r", "", followerDesc) nouns <- Map(extractNoun, followerDesc) wordsvec <- unlist(nouns, use.name=F) #쓸모없는 문자들을 제거한다. 특히 영문자의 경우 tm의 stopwords를 활용한다. wordsvec <- wordsvec[-which(wordsvec %in% stopwords("english"))] wordsvec <- gsub("[[:punct:]]","", wordsvec) wordsvec <- Filter(function(x){nchar(x)>=2}, wordsvec) wordcount <- table(wordsvec) pal <- brewer.pal(8,"Dark2") wordcloud(names(wordcount),freq=wordcount,scale=c(4,0.5),min.freq=10, random.order=T,rot.per=.1,colors=pal) |
이렇게 나온 워드 클라우드는 아래와 같다.
나를 팔로잉 하는 분들이 내가 트위터에서 어떤 의미인지 해석해 보자면,
“IT개발자이며 정보나 웹, data에 관심있는 엔지니어…”
맞는 이야기다…쩝
나 말고 정말 많은 팔로워들이 있는 @gaiaville 님의 경우 아래와 같다.
CEO란 단어도 있고, 소셜 그리고 엔지니어 SNS, 자바, 데이터, 검색 등등이 있다.
물론 이 그림을 보고 해석은 각자 나름대로 할 수 있을 것이다.
혹여나 트위터에서 어떤 사람의 성향을 바로 알고자 한다면, 위 코드에서 상대방 아이디만 넣어보면 대략 알 수 있지 않을까 한다. 원작자로서 다만 타인의 뒤를 캐는데 코드가 활용되지 않길 바랄 뿐이다. ㅋ
굉장히 유명한 트위터러에 대한 정보를 알고자 한다면 팔로워들을 분석하기 보다는 트위터러의 엑티브한 행동의 결과인 트위터러가 팔로잉하는 사람들의 자기소개를 분석해 보는게 더 효과적일지도 모르겠다.
트위터 팔로워들의 자기소개 분석을 이용한 나 by from __future__ import dream is licensed under a Creative Commons Attribution-NonCommercial 4.0 International License.