重庆分公司,新征程启航

为企业提供网站建设、域名注册、服务器等服务

如何使用R-wordcloud2包绘制词云

小编给大家分享一下如何使用R-wordcloud2包绘制词云,相信大部分人都还不怎么了解,因此分享这篇文章给大家参考一下,希望大家阅读完这篇文章后大有收获,下面让我们一起去了解一下吧!

孝感网站建设公司创新互联公司,孝感网站设计制作,有大型网站制作公司丰富经验。已为孝感1000多家提供企业网站建设服务。企业网站搭建\成都外贸网站制作要多少钱,请找那个售后服务好的孝感做网站的公司定做!

一 数据准备

载入所需的R包,准备好流浪地球的txt格式的文本文件。

library(jiebaRD) library(jiebaR) library(wordcloud2)

二 分词,统计词频

使用jieba包对文本进行分词。

engine = worker() segment("流浪地球.txt",engine)data <- scan('流浪地球.segment.2019-04-09_22_36_54.txt',sep='\n',what='',encoding="UTF-8") data2 <- freq(data)data2 <- qseg[data]data.words <- data2head(data.words)

三 去掉停词

    过滤掉类似“的”,“你”,“我们”等类似的无意义的停词,并可根据自己需要设置词频的个数。

#过滤掉1个字的词data.words <- subset(data.words, nchar(as.character(data.words))>1) #过滤停词stop=read.table(file=file.choose(),colClasses="character") stopwords=c(NULL) for(i in 1:dim(stop)[1]){ stopwords=c(stopwords,stop[i,1]) }for(j in 1:length(stopwords)){ data.words <- subset(data.words,data.words!=stopwords[j]) }

四 统计词频 

4.1 统计词频

data.freq <- table(unlist(data.words)) data.freq <- rev(sort(data.freq)) data.freq <- data.frame(word=names(data.freq), freq=data.freq)

4.2 根据需要过滤频次

#按词频过滤词,过滤掉只出现过一次的词,这里可以根据需要调整过滤的词频数data.freq=subset(data.freq, data.freq$freq.Freq>=2) head(data.freq)   word freq.Var1 freq.Freq1   地球      地球       1642   太阳      太阳        953 发动机    发动机        604   人类      人类        355   地面      地面        306   木星      木星        28

五  绘制词云

5.1 图形设定为“star”

wordcloud2(data.freq[,2:3],color = "random-light", backgroundColor = "grey",shape = 'star')

如何使用R-wordcloud2包绘制词云

5.2 汉字图形展示

letterCloud(data.freq[,2:3],word="地球",size = 2)

如何使用R-wordcloud2包绘制词云

5.3 指定图形

指定的背景图需要在R包的example文件夹中,本例为微信的开机图,然而不像,,,鬼知道咋回事啊。

world = system.file("examples/download1.jpg",package = "wordcloud2")wordcloud2(data.freq[,2:3], figPath = world, size = 1,color = "black")

如何使用R-wordcloud2包绘制词云

OK,词云绘制完毕。

以上是“如何使用R-wordcloud2包绘制词云”这篇文章的所有内容,感谢各位的阅读!相信大家都有了一定的了解,希望分享的内容对大家有所帮助,如果还想学习更多知识,欢迎关注创新互联行业资讯频道!


网页名称:如何使用R-wordcloud2包绘制词云
分享地址:http://cqcxhl.com/article/gjoggh.html

其他资讯

在线咨询
服务热线
服务热线:028-86922220
TOP