美文网首页大数据程序员
R语言 wordCloud2词云

R语言 wordCloud2词云

作者: 花生花二三说 | 来源:发表于2017-11-26 10:32 被阅读114次

我做的是中文词云
总的步骤大致如下:

1. 分词

2. 除去停用词

3. 统计词频

3. 画出词云

主要代码如下:

setwd("E:\\自己学习")
library(jiebaR)
cutter=worker()
setWords<- scan('一个用户1',sep='\t',what='',encoding="UTF-8",quote = "") #读取需要分词文件
setWords<-segment(f,cutter)

使用的是结巴分词
结巴分词比较好用,分词速度较快
但是好像有时会因为编码问题,读取错误。(该问题)

f<-readLines('stopword.txt')###读取停止词
stopwords<-c(NULL)
for(i in 1:length(f))
{
  stopwords[i]<-f[i]
}
setWord<-filter_segment(setWords,stopwords)#去除中文停止词

segWords<-gsub("[0-9a-zA-Z]+?","",setWord)###去除数字和英文
library(stringr)#加载stringr包
segWords<-str_trim(segWords)#去除空格
segWords <- segWords[nchar(segWords)>1] #去除字符长度小于2的词语

停用词释义:
停用词是指在信息检索中,为节省存储空间和提高在处理数据(或文本)之前或之后会自动过滤掉某些字或词,这些字或词即被称为StopWords(停用词)。这些停用词都是人工输入、非自动化生成的,生成后的停用词会形成一个停用词表。

停用词释义来源--百度百科

这边的停用词我是从网上下载的,停用词表的选择对最后分词词频的影响较大,所以要选择合适的停用词表。

library(plyr)
tableWord<-count(segWords)##形成词频表,tableWord是数据框格式
write.table(tableWord,'tableWord.txt')#保存到本地txt文件
tablenew<-tableWord[which(tableWord$freq>100),]#只保留出现频率大于100次的词汇
library("wordcloud2")
wordcloud2(tableWord, size = 2, fontFamily = "微软雅黑",  
           color = "random-light", backgroundColor = "grey")  #画出词云

最后画出词云


微信图片_20171201214250.jpg

emmm虽然这张词云又丑又没有重点又有中文乱码,但这是我画出的第一张中文词云图,所以放在这哈哈哈哈哈
参考引用:

http://blog.csdn.net/zx403413599/article/details/46730801
http://blog.csdn.net/songzhilian22/article/details/49184047

相关文章

网友评论

    本文标题:R语言 wordCloud2词云

    本文链接:https://www.haomeiwen.com/subject/faqkbxtx.html