用jiebaR分词,运行速度比用tm,tmcn,Rwordseg分词快很多!试下这段代码:
library(jiebaR)
library(wordcloud2)
data <- read.csv(“d.csv”,encoding=”UTF-8″) #注意 UTF-8 大写,防止出错!
#d.csv格式
#id, comment
#kdkt kkdfirekk
#大好河山
#wulunruhe 真实不虚哦耶
#……
data <- unique(data)# 去除重复的数据
data <- gsub(‘[a-zA-Z0-9]’,’ ‘,data$comment)
data<-sample(data,50)
data <- gsub(‘[的是了不]’,’ ‘,data)
cutter=worker() #结巴分词实例cutter
text<-segment(data, cutter, mod = NULL)
data=freq(text)
wordcloud2(data,shape = ‘circle’)
wordcloud2(data,shape = ‘star’)
————————————————————————-
R语言绘制词云
需要的程序包
jiebaR,jiebaRD:分词
installpackage('jiebaR','jiebaRD','wordcloud2) #安装程序包
运行程序包
library(jiebaR,jiebaRD)
library(wordcloud2)
导入数据
news <- read.csv(''C:/Users/Administrator/Desktop/news.csv'') #读取csv格式文件
news <- read_excel(''C:/Users/Administrator/Desktop/news.csv'') #读取xls 和 xlsx 格式文件
text<-news$x #提取文本数据所在列
分词
mixseg<-worker("mix") #建立模型分词
a<-segment(text,mixseg) #开始分词
去停用词
需要将对研究无意义的词去除,再次只提供了示例代码。
stopwords <- read.table("C:/Users/Thinkpad/Desktop/停用词.txt")
class(stopwords)
stopwords <- as.vector(stopwords[,1])
wordResult <- removeWords(a,stopwords)
绘制词云
freq<-table(a) #词频统计
freq #查看词频统计结果
wordcloud2(freq,shape='star') #绘制词云
参数解读
wordcloud2(data, size = 1, minSize = 0, gridSize = 0,
fontFamily = 'Segoe UI', fontWeight = 'bold',
color = 'random-dark', backgroundColor = "white",
minRotation = -pi/4, maxRotation = pi/4, shuffle = TRUE,
rotateRatio = 0.4, shape = 'circle', ellipticity = 0.65,
widgetsize = NULL, figPath = NULL, hoverFunction = NULL)
data:包含每列中的word和freq的数据帧,按照word出现的顺序由内向外画图(可以按照freq降序美化wordcloud)。
size:字体大小,默认为1。较大的大小意味着较大的单词。
fontFamily:要使用的字体。
fontWeight:字体重量,例如normal, bold or 600
color:文本的颜色,可以使用关键字random-dark和random-light。也支持颜色矢量。
minSize:字幕的字符串
backgroundColor:背景的颜色。
gridSize:用于标记画布可用性的网格大小,网格大小越大,单词之间的差距越大。
minRotation:文本应该旋转的最小旋转(以rad为单位)。
maxRotation:文本应旋转的最大旋转(以rad为单位)。
rotateRatio:单词旋转的概率。将数字设置为1以始终旋转。
shape:绘制“云”的形状。 ‘circle’ (default), ‘cardioid’ (心形’,苹果或心形曲线,最知名的极坐标方程), ‘diamond’ (菱形), ‘triangle-forward’(三角形前移), ‘triangle’(三角形), ‘pentagon’(五角形), and ‘star
ellipticity:平坦度
figPath:画布路径