您的位置:首页 > 其它

R语言进行词云分析

2017-09-26 18:19 197 查看

一个小例子!用R语言中jiebaR包和wordcloud包进行词云分析

jiebaR包

打开R语言,在程序包->安装程序包中进行jiebaR的安装。

jiebaR是一款高效的R语言中文分词包,底层使用的是C++,通过Rcpp进行调用很高效。结巴分词基于MIT协议,就是免费和开源的,感谢国人作者的给力支持,让R的可以方便的处理中文文本。“结巴”中文分词的R语言版本,支持最大概率法(Maximum Probability), 隐式马尔科夫模型(Hidden Markov Model), 索引模型(QuerySegment), 混合模型(MixSegment), 共四种分词模式, 同时有词性标注,关键词提取,文本Simhash相似度比较等功能。项目使用了Rcpp和CppJieba进行开发。

Wordcloud包

打开R语言,在程序包->安装程序包中进行jiebaR的安装。

Wordcloud包在做词语分析时并没有多大的作用,但是在后期的报告展示中却起着很大的作用。虽然说实质大于形式,在实质能够保证的前提下,一个好的形式是成功的关键点所在。Wordcloud包就是一个可以使词频以图形的形式展示的软件包,它可以通过改变词云的形状和颜色,是的分析结果锦上添花。

小例子

用R语言中的jiebaR包和Wordcloud包对P2P网络借贷细则进行词云分析。我们在分析中有两个任务:

1、查看词频最高的100个词语;

2、画词云图。

代码块

R语言做词云分析的代码如下:

library(jiebaR)
library(wordcloud)

#读入数据分隔符是‘\n’,字符编码是‘UTF-8’,what=''表示以字符串类型读入
f <- scan('C:\\Users\\Administrator\\Desktop\\网络借贷细则.txt',sep='\n',what='',encoding="GBK")
seg <- qseg[f] #使用qseg类型分词,并把结果保存到对象seg中
seg <- seg[nchar(seg)>1] #去除字符长度小于2的词语

seg <- table(seg) #统计词频
seg <- seg[!grepl('[0-9]+',names(seg))] #去除数字
seg <- seg[!grepl('a-zA-Z',names(seg))] #去除字母
length(seg) #查看处理完后剩余的词数
seg <- sort(seg, decreasing = TRUE)[1:100] #降序排序,并提取出现次数最多的前100个词语
seg #查看100个词频最高的
View(seg)
data=data.frame(seg)
data

wordcloud(data$seg , data$Freq, colors = rainbow(100), random.order=F)
x11()
dev.off()


通过上述代码在R语言中运行后结果如下:

1、显示100个词频最高的词语显示如下:



2、最后生成的词云图如下:



当然,可以通过对参数的修改,改变词云的形状和颜色。

以上便是一个用R语言做词云分析的简单的例子!初学者可以参考一下!
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息