자료의 빈도를 시각적으로 나타내는 시각화 방법 중 하나
example 1) 미세먼지 워드클라우드 그리기
example 2) 피자에땅 많은 지역 워드클라우드 그리기
워드클라우드를 그리기 위해 wordcloud2, RColorBrewer 패키지
명사추출을 위해 KoNLP 패키지
library(KoNLP)
library(wordcloud)
library(wordcloud2)
library(RColorBrewer)
example 1) 미세먼지 워드클라우드 그리기
useSejongDic()
## Backup was just finished!
## 370957 words dictionary was built.
setwd('C:/Users/cj/Desktop/')
data1=readLines("미세먼지 기사.txt")
data2=sapply(data1,extractNoun,USE.NAMES=F)
head(unlist(data2),30)
## [1] "특약" "등" "가입" "호흡기" "질환" "시" "보험금"
## [8] "지" "급" "기존" "보험" "보장" "가능" "해"
## [15] "재탕" "불과" "지적" "도" "" "오늘" "미세"
## [22] "먼지" "날" "이젠" "1" "년" "지속" "거예요"
## [29] "대책" "이"
wordcount=table(unlist(data2))
head(sort(wordcount,decreasing=T),20)
##
## 질환 먼지 미세 보험 등 한 호흡기 상품 월
## 60 47 36 36 35 33 26 25 24 21
## 성 원 발생 보장 것 사고 감염 농도 년 비중
## 19 16 15 15 13 13 12 12 11 11
wordcloud(names(wordcount),freq=wordcount,scale=c(10,1),min.freq=5,
random.order=F,random.color=T,colors=brewer.pal(12,"Set2"))
example 2) 피자에땅 많은 지역 워드클라우드 그리기
[피자에땅]http://www.pizzaetang.com/findUs/findUs.asp?cPage=50&sAct=&sido=&gugun=&seeText=&branch_id=
if (!require("XML")) install.packages("XML")
if (!require("stringr")) install.packages("stringr")
a<-'http://www.pizzaetang.com/findUs/findUs.asp?cPage='
b<-'&sAct=&sido=&gugun=&seeText=&branch_id='
alldata<-data.frame(store=NULL,add=NULL)
for(i in 1:50){
url<-paste(a,i,b)
line<-readLines(url,encoding="UTF-8")
add<- line[which(str_detect(line,"t_gray"))[-1]]
(add<- gsub("\t| ", "", add))
(add<- gsub("<.+?>", "", add))
(store<-line[which(str_detect(line,"t_gray"))-1][-1])
(store<- gsub("\t|/|\\d+\\-+|\\d+", "",store))
(store<- gsub("<.+?>|--", "",store))
alldata<-rbind(alldata,data.frame(store,add,stringsAsFactors=F))}
rownames(alldata)<-NULL
head(alldata,10)
## store add
## 1 신정점 서울양천구신정동954-13
## 2 속초교동점 강원속초시교동수복로53,1층748-18
## 3 [휴]방이점 서울송파구방이동오금로19길10,1층
## 4 [휴]사당점 서울동작구사당동1001-17
## 5 삼척점 강원삼척시남양동329-13
## 6 안양점 경기안양시만안구안양5동710-13
## 7 의왕점 경기안양시동안구호계동갈산로39-1
## 8 잠실점 서울송파구석촌동2-5은주빌딩
## 9 천곡점 강원동해시천곡동1045-3
## 10 평촌점 경기안양시동안구호계동1072-1
alldata$`지역`<-substr(alldata[,2],1,2)
freq<-table(alldata[,3])
wordcloud2(freq,col='random-light',size=0.7,backgroundColor = 'black',shape='star')