# 네이버 블로그에서 '은행'으로 검색 크롤링
# 10페이지(100개)의 블로그 요약 내용으로 워드 클라우드 그리기
# 먼저 크롤링
install.packages('XML')
install.packages('rvest')
library(XML)
library(rvest)
# 네이버 블로그에서 은행으로 검색한 결과화면 URL
# https://section.blog.naver.com/sub/SearchBlog.nhn?type=post&option.keyword=%EC%9D%80%ED%96%89&term=period&option.startDate=2017-09-01&option.endDate=2017-09-15&option.page.currentPage=
BlogData <- function(num){
url=paste0("https://section.blog.naver.com/sub/SearchBlog.nhn?type=post&option.keyword=%EC%9D%80%ED%96%89&term=period&option.startDate=2017-09-01&option.endDate=2017-09-15&option.page.currentPage=",as.character(num))
doc <- read_html(url)
doc_parse = htmlParse(doc, isHTML=T, asText=T)
title <- xpathSApply(doc_parse,"//-[@id='blogSearchForm']/div[2]/ul[3]/li/h5/a",xmlValue)
nick <- xpathSApply(doc_parse,"//div[@class='list_data']/a",xmlValue)
theme <- xpathSApply(doc_parse,"//span[@class='category']",xmlValue)
date <- xpathSApply(doc_parse,"//span[@class='date']",xmlValue)
main <- xpathSApply(doc_parse,"//div[@class='list_content']/div[3]",xmlValue)
stock_data <-cbind(title,nick,theme,date,main)
stock_data
return(stock_data)
}
gc()
DATA<-NULL
StartPage <- 1
EndPage <- 10
for (i in StartPage:EndPage) {
getData<-BlogData(i)
DATA<-rbind(DATA,getData)
}
# 네이버 블로그 10페이지까지의 데이터에서 본문요약만 간추려 워드클라우드 그리기
# install.packages('KoNLP')
library(KoNLP)
useNIADic()
library(stringr)
# 가능한한 세종사전보다 NIA사전을 활용하는 것이 단어가 풍부
# 사전등록 방법
buildDictionary(ext_dic = "woorimalsam", user_dic=data.frame(c("국민은행","우리은행","KEB은행"), "ncn"),replace_usr_dic = F)
DATA1 <- as.data.frame(DATA )
word <-paste(DATA1$main,collapse=" ")
nouns <- sapply(word,extractNoun,USE.NAMES = F)
nouns <-unlist(nouns)
nouns <- nouns[nchar(nouns)>=2]
nouns <- gsub(" ","", nouns)
nouns <- gsub("<.+?>|\t", "", nouns)
nouns <- gsub("\\d+","" ,nouns)
nouns <- gsub("\\.","" ,nouns)
nouns <- gsub("은행","" ,nouns)
nouns <- gsub("나무","" ,nouns)
wordFreq <- table(nouns)
aa <-sort(wordFreq,decreasing = T)
cc <- head(aa,30)
barplot(cc,las=2)
# 워드 클라우드 그리기
#install.packages("RColorBrewer")
#install.packages("wordcloud")
library(wordcloud)
library(RColorBrewer)
palete <- brewer.pal(8,"Set2")
windowsFonts(malgun=windowsFont("맑은 고딕"))
wordcloud(words=names(wordFreq),freq = wordFreq, min.freq = 5,random.order = F,random.color=T, colors=palete, family="malgun")
########### wordcloud2
install.packages("wordcloud2")
library(wordcloud2)
wordcloud2(data=aa, minSize = 5, minRotation=0, maxRotation =0, fontFamily='맑은 고딕',size=3, shape='pentagon')
'R 데이터 분석' 카테고리의 다른 글
[R분석] randomForest와 ranger 속도 차이 비교 (0) | 2017.11.01 |
---|---|
[DS_PCBA] 예측적 고객행동 분석 (0) | 2017.10.16 |
[kbdaa_bda] 은행마케팅 데이터 분석 실습 (0) | 2017.09.22 |
[kbdaa_bda] 시계열예측 (0) | 2017.09.21 |
[kbdaa_bda] 데이터 처리 연습 GDA (0) | 2017.09.21 |