R语言实战-如何分析QQ群记录5-词云
library(tm) library(tmcn) library(rJava) library(Rwordseg) #install.packages('wordcloud') library(wordcloud) #获取data中的聊天信息,写入text.txt中 write.table(data$des,"text.txt",row.names = F) #使用segmentCN进行分词,并且保存在同目录下的text.segment.txt中 segmentCN("text.txt",returnType = "tm") #读取分词后的文档 text1<-readLines("text.segment.txt",encoding = "UTF-8") #根据\\S(正则表达式,代表空格,换行,回车等空白符)进行分割 word<-lapply(x=text1,FUN = strsplit,"\\s") #把list返转换成非list word1<-unlist(word) #计算每个词的频率 df<-table(word1) #进行排序 df<-sort(df,decreasing = T) #转换成数据框 df1<-data.frame(df) #重新赋予新的数据框,编辑新的列名称 dataFreq<-data.frame(word=as.character(df1$word1),freq=df1$Freq,stringsAsFactors = F) #去除小于平均数的词汇 dataFreq<-dataFreq[dataFreq$freq>=mean(dataFreq$freq),] #制作词云 wordcloud(dataFreq$word,dataFreq$freq,shape='star', min.freq=50, colors = rainbow(length(row.names(dataFreq))) )