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

최근 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)

 

 

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

 

image

 

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

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

맞는 이야기다…쩝

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

image

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

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

 

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

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

CC BY-NC 4.0 트위터 팔로워들의 자기소개 분석을 이용한 나 by from __future__ import dream is licensed under a Creative Commons Attribution-NonCommercial 4.0 International License.