因为工作需要,又开始上手R语言。比起从前,现在面对新知识更有耐心(经历所致),也更愿意优化代码,提高效率。
网上制作词云的工具很多,但如果是公司比较重要的数据信息,我不建议用网上工具,会造成信息泄露。所以,不如花点时间,自己学会做,对提升数据分析也有帮助。
要做词云,有两件事情要做:1)文本分词;2)制作词云。
先说文本分词,主要用到jiebaR包,处理txt文本,变成关键词+频次的数据框形式,然后提取需要的高频词汇,使用wordcloud2包制作词云。
一、案例展示:
2021年中国世界500强企业,我想知道这些优秀企业有哪些关键字,怎么做出来呢?先给大家看最终的结果:
我们可以看到最突出的关键字:国际、科技股份,然后是上海,电力,能源,汽车,钢铁,银行。因为我们分析的是世界500强企业,所以可以得出结论:业务面向国际的企业,类型是科技股份制,然后从区域来看上海500强最多,其次是江苏(居然不是北京~),接下来行业电力(垄断行业,铁饭碗),能源(新趋势行业),汽车、钢铁。从这些关键字对大家择业赛道也会有所启发。
- 接下来如何做出这个图:
install.packeges("jiebaR")#下载jiebaR包
install.packeges("wordcloud2")#下载词云包,推荐用词云2
library(jiebaR)#载入jiebaR包
library(wordcloud2)#载入词云2包
data<-readLines("企业名称.txt",encoding="UTF-8")#读入txt格式文本
wk<-worker()#设置函数简称
data1<-segment(data,wk)#开始分词
data2<-freq(data1)#统计关键词出现的频次
data2<-data[nchar(data2)>1]#过滤掉仅一个字的关键词,这种用处不大
data3<-data.frame(data3)#数据表转化为数据框
data3<-data3[order(data3$freq,decreasing=TRUE)#关键词按频次从高到低排序
data4<-data3[1:300,]#只要前面300个关键词
data4<-data4[-1:-6,]#前面6行关键词是干扰数据,去掉
wordcloud2(data4,size = 1,fontFamily = '微软雅黑',color = 'random-light')#词云2画图
2.部分关键代码对应结果:
过滤一些干扰关键词之后,出现的最终的数据结果:
然后可以画图了,对照我给出的输出结果,大家容易知道每一步输出应该是什么样。
二、知其然,更知其所以然
两个包对应的函数原理讲解:
1.jiebaR包
jiebaR包主要应用函数:segment(code, jiebar, mod = NULL)
code A Chinese sentence or the path of a text file. #code对应中文语句或者文本文件
jiebar jiebaR Worker. #jiebar对应执行函数,主要用worker()
worker()具体参数如下:(可以执性默认参数)
worker(type = "mix", dict = DICTPATH, hmm = HMMPATH,
user = USERPATH, idf = IDFPATH, stop_word = STOPPATH, write = T,
qmax = 20, topn = 5, encoding = "UTF-8", detect = T,
symbol = F, lines = 1e+05, output = NULL, bylines = F,
user_weight = "max")
2.wordcloud2包
这个真的很好用,也容易理解
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)、尺寸(size)、字体( fontFamily)、颜色(color)、形状(shape),按照需要进行设置即可。
三、注意事项
1.如果你用的是Rstudio,记得在Tools-Global Options-code-saving-Default text encoding将格式改为UTF-8,这样中文才不会变成乱码;
2.刚刚分出来的关键词是要处理的,不能拿来就用,这里要耐心。
以上是和大家分享的词云的用法,如果实际操作有困难,可以给我留言。