2019년 8월 25일 일요일

Chp3. WORD_CLOUD - 2

본론
1-1-2 비정형 data 분석 해보기 Part- 2
-->"프로포즈 선물"의 키워드를 가지고 word cloud 를 생성하자

Step - 1
구글에서 "프로포즈 선물"을 검색해서 10개 페이지의 데이터를 메모장에 저장해서 gift.txt로 만든다

Step - 2
패키지 로딩
library(rJava)
library("KoNLP")
library("wordcloud")

Step - 3
소스파일 로딩

txt <- readLines("gift.txt", encoding="UTF-8")
pro <- sapply(txt,extractNoun,USE.NAMES=F)

Step - 4
불필요 단어 제거

c<-unlist(pro)
pro <- Filter(function(x) {nchar(x) >=2} ,c)
Error in nchar(x) : invalid multibyte string, element 1
[3395]"寃\u0080攼㹣깋攼㹤븯攼㹣떎"
[3396]"攼㹣닔"
[3397]"攼㹣엳攼㹣뒿攼㹢땲攼㹢떎"
[3398] ""
fileEncoding = "euc-kr"
-->c 로 읽어온 문자들의 인코딩이 이상한것을 확인 , readLines 함수에 encoding 추가해서 다시 진행
pro <- gsub("\\n","",pro)
pro <- gsub("\\.","",pro)
pro <- gsub("\\d+","",pro)
pro <- gsub("프로포즈","",pro)
pro <- gsub("수제","",pro)
pro <- gsub("공예","",pro)
pro <- gsub("남자","",pro)
pro <- gsub("여자","",pro)
pro <- gsub("결혼","",pro)
pro <- gsub("친구","",pro)
pro <- gsub("무료","",pro)
pro <- gsub("배송","",pro)
pro <- gsub("선물","",pro)
pro <- gsub("특별","",pro)
pro <- gsub("포장","",pro)
pro <- gsub("com","",pro)
pro <- gsub("www","",pro)
pro <- gsub("kr","",pro)
pro <- gsub("co","",pro)
pro <- gsub("https","",pro)
pro <- gsub("상품","",pro)
pro <- gsub("웨딩","",pro)
pro <- gsub("%K","",pro)
pro <- gsub("사랑","",pro)
pro <- gsub("커플","",pro)
pro <- gsub("tistory","",pro)
pro <- gsub("product","",pro)
Step - 5
정리된 데이터 파일로 저장

write(unlist(pro),"pro_gift.txt")
rev <- read.table("pro_gift.txt")
nrow(rev)
wordcount <- table(rev)

head(sort(wordcount,decreasing=T),20)
rev
   com        www         kr         co      https       반지     다이아
45         37         36         34         32         26         20
목걸이       상품 다이아몬드       웨딩     귀걸이     이벤트     꽃다발
16         15         14         12         11         11         10
  사랑       커플    tistory         2.    product       인기
10          9          8          7          7          7
-->해당 head 를 보고 필요없는 정보는 다시 gsub으로 추가해서 제외한다

Step - 6
글자색 설정후 wordcloud 생성
library(RColorBrewer)
palete <- brewer.pal(9,"Set1")
wordcloud(names(wordcount),freq=wordcount,sale=c(5,0.5),rot.per=0.25,min_freq=2,random.pro=F,random.color=T,color=palete)

Step - 7
이미지 파일 저장
savePlot("Pro.png",type="png")

댓글 없음:

댓글 쓰기