#필요한 패키지 설치.
install.packages("base64enc") # 한글 인코딩 관련 라이브러리.
install.packages(c("RCurl","twitteR","ROAuth")) # twitteR 라이브러리 포함 인증 관련 라이브러리.
install.packages("KoNLP") # 한글처리를 위한 라이브러리.
install.packages("wordcloud") # WordCount 활용
install.packages("plyr")
install.packages("tm")
# Library 로드
library("base64enc")
library("RCurl")
library("twitteR")
library("ROAuth")
library(KoNLP)
library(wordcloud)
library(plyr)
library(tm)
reqURL <- "https://api.twitter.com/oauth/request_token"
accessURL <- "https://api.twitter.com/oauth/access_token"
authURL <- "https://api.twitter.com/oauth/authorize"
# 트위터에서 받은 네개의 키 값을 변수에 할당.
consumerKey <- ""
consumerSecret <- ""
accesstoken <- ""
accesstokensecret <- ""
cred <- OAuthFactory$new(consumerKey=consumerKey,
consumerSecret=consumerSecret,
requestURL="https://api.twitter.com/oauth/request_token",
accessURL="https://api.twitter.com/oauth/access_token",
authURL="https://api.twitter.com/oauth/authorize")
cred$handshake(cainfo = system.file("CurlSSL", "cacert.pem", package = "RCurl"))
#인증처리
setup_twitter_oauth(consumerKey,consumerSecret,accesstoken,accesstokensecret)
#해당 단어를 언급한 글을 가지고 오고 싶을 때 사용.
keyword <- enc2utf8("브렉시트") #한글 처리.
tweets <- searchTwitter(keyword,n=10) #가지고 오고 싶은 내용 검색.
tmp <- unlist(tweets ,use.names = TRUE)
head(tweets)
# 트위터에서 키워드로 검색, 시작날짜, 지역코드(우리나라만 적용), 가져올 개수를 옵션에 대입
# 지역코드를 넣을려면 geocode='35.874,128.246,400km' 해당 부분을 넣으면 된다.
keyword <- "쯔위"
twitter <- searchTwitter(keyword,since='2015-10-29',until='2016-06-21', lang="ko",n=100)
twitter.df <- twListToDF(twitter) #data.frame 형태로 해당 트위터의 정보를 추출한다.
names(twitter.df)
twitter.df <- twitter.df[twitter.df$retweetCount!=0,]
twitter.text <- twitter.df$text # mention text만 추출.
# 불필요한 문자를 필터링
# result.text <- gsub(keyword, "", result.text) gsub (지울글자,어떤글자로,데이터)
twitter.text <- gsub("\n", "", twitter.text)
twitter.text <- gsub("\r", "", twitter.text)
twitter.text <- gsub("RT", "", twitter.text)
twitter.text <- gsub("http", "", twitter.text)
twitter.text <- gsub("ㅠ", "", twitter.text)
twitter.text <- gsub("ㅋ", "", twitter.text)
# 문자 분리 extractNoun : KoNLP 패키지의 함수로 명사로 추출한다.
result_nouns <- Map(extractNoun, twitter.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 ) #2개 이상의 글자만
# 단어별 카운팅
twitter_count <- table(result_wordsvec)
tmp <- head(sort(twitter_count,decreasing=T),30)
# 컬러 세팅
pal <- brewer.pal(12,"Paired")
# 폰트 세팅
windowsFonts(malgun=windowsFont("Arial"))
# 그리기
wordcloud(names(tmp),freq=tmp,scale=c(4,0.5),min.freq=1,
random.order=F,rot.per=.1,colors=pal,family="malgun")
'STUDY > Summer Break' 카테고리의 다른 글
4. RFacebook [ 데이터 가지고 오기 ] (0) | 2016.06.25 |
---|---|
4. RFacebook [ Api Key 가지고 오기 ] (0) | 2016.06.25 |
3. TwitterR [ R : 영어 with 감정스코어 ] (0) | 2016.06.24 |
1. TwitterR [ API Key 가지고 오기 ] (0) | 2016.06.24 |