SEO外包平台,我们为您提供专业的企业网站SEO整站优化外包服务 SEO设置

SEO外包平台

专注于企业网站SEO整站优化外包服务

R语言-15词云图绘制

作者:jcmp      发布时间:2021-04-30      浏览量:0
绘制词云图所用包为worldclo

绘制词云图所用包为worldcloud,

绘制词云图第一步是中文分词,中文分词包中最出名的是Rwordseg和jieBar.

先讲解第一种,Rwordseg依赖于rJava包和Java环境

使用Rwordseg分词绘制词云图

安装Java环境
jdk可到oracle站点下载,下载完成需设置环境变量,在系统变量新建如下变量

安装Rwordseg
安装rJava,直接使用install.packages("rJava")安装即可
安装Rwordseg ,在" http://R-Forge.R.project.org 中,安装方式可参考基础指令笔记
还需安装tmcn、tm包

代码

library(xlsx)data <- read.xlsx("D:/dataset/test.xls", 2, header=T,encoding='UTF-8')content <- data['content'][1]#可以直接根据列名调用#文本分析library(tmcn)library(Rwordseg)library(tm)library(wordcloud)content <- unlist(content)#excel中的一列通常是list格式,unlist后变成numertic格式content <- as.character(content)#将其变成字符串格式insertWords(c("特朗普")) #向词典临时插入特朗普d.vec <- segmentCN(content, returnType = 'tm') #分词

直接绘制词云图

wc <- getWordFreq(unlist(d.vec), onlyCN = TRUE)wordcloud(wc$Word,wc$Freq,colors = rainbow(length(wc$Freq)))

处理后再绘制词云图

yuliaoku<-Corpus(VectorSource(d.vec)) #建立语料库yuliaoku<-tm_map(yuliaoku,stripWhitespace) #去除空白control<-list(wordLengths=c(1,5),stopwords=stopwordsCN()) #去除停用词mt<-TermDocumentMatrix(yuliaoku,control = control) #生成包含词频的结构化的词条-文档矩阵vmt<-as.matrix(mt)val<-sort(rowSums(vmt),decreasing = TRUE) #按词频排序df<-data.frame(word=names(val),freq=val)wordcloud(df$word,df$freq,min.freq = 3,random.order = FALSE,colors = rainbow(length(row.names(vmt))),scale=c(4,.5)) #画词云图

使用jieBar分词绘制词云图

library(xlsx)data <- read.xlsx("D:/dataset/test.xls", 2, header=T,encoding='UTF-8')content <- data1['content'][1]content <- unlist(content)content <- as.character(content)content <- sub('#人民的名义#','',content) #删除某个词汇library(jiebaR)cutter=worker()new_user_word(cutter,c("秒拍视频")) #插入词汇segWords<-segment(content,cutter)segWords<-filter_segment(segWords,stopwordsCN())segWords<-gsub("[0-9]+?","",segWords) #删除数字library(stringr)segWords<-str_trim(toUTF8(segWords))library(plyr)tableWord<-count(segWords)a <- tableWord[order(tableWord[2],decreasing = TRUE),]a <- na.omit (a) #去除NA值wordcloud(a[,1],a[,2],random.order=F,col=                 rainbow(length(a$freq)),scale=c(8,.5),max.word = 200) #展示词频最大的前200个词的词云图