트위터 팔로워들의 자기소개 분석을 이용한 나

최근 rjson이 업데이트 되었는데, 정말 기다리고 기다리던 CJK 인코딩 문제가 해결되었다. 그래서 이것을 활용하는 twitteR 패키지에서 이젠 정상적으로 한글이 나오게 되었다.  이 패키지를 활용하면 트위터 팔로워들 그리고 내가 팔로잉 하는 사람들의 정보를 가져와서 분석할 수 있고, 이 밖에도 그들 각자의 트위터 문장을 분석할 수 있다.

비로소 KoNLP가 가장 많이 활용될 수 있는 패키지가 이제 정상화 된 것으로 볼 수 있다.

이것을 가지고 간단하게 나를 팔로잉하는 사람들의 자기소개를 분석해서 어떤 사람들이 나를 팔로잉하는지 확인해보고 이를 기반으로 내가 어떤 성격의 트윗을 주로 날렸는지 간접적으로 유추해 볼 수 있을 것이다. 한마디로 내가 한 말들로 인해 어떤 사람들이 나를 팔로윙 하는지 알아보자는 것이다.

 

코드는 아래와 같다.

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)

 

 

이렇게 나온 워드 클라우드는 아래와 같다.

 

image

 

나를 팔로잉 하는 분들이 내가 트위터에서 어떤 의미인지 해석해 보자면,

“IT개발자이며 정보나 웹, data에 관심있는 엔지니어…”

맞는 이야기다…쩝

나 말고 정말 많은 팔로워들이 있는 @gaiaville 님의 경우 아래와 같다.

image

CEO란 단어도 있고, 소셜 그리고 엔지니어 SNS, 자바, 데이터, 검색 등등이 있다.

물론 이 그림을 보고 해석은 각자 나름대로 할 수 있을 것이다.

 

혹여나 트위터에서 어떤 사람의 성향을 바로 알고자 한다면, 위 코드에서 상대방 아이디만 넣어보면 대략 알 수 있지 않을까 한다. 원작자로서 다만 타인의 뒤를 캐는데 코드가 활용되지 않길 바랄 뿐이다.  ㅋ  

굉장히 유명한 트위터러에 대한 정보를 알고자 한다면 팔로워들을 분석하기 보다는 트위터러의 엑티브한 행동의 결과인 트위터러가 팔로잉하는 사람들의 자기소개를 분석해 보는게 더 효과적일지도 모르겠다.