词云图是一种用于展示文本数据中高频关键词的可视化表达方式。它通过文字、色彩和图形的搭配,以直观且冲击力强的视觉效果展现文本的主要信息。该篇文章利用R语言分别针对手动输入和文件读取的文本数据,进行中文分词,然后使用不同的方式进行词云图绘制。
1 手动输入文本
1.1 加载包
运行程序:
library(jiebaRD) library(jiebaR) library(RColorBrewer) library(wordcloud) library(wordcloud2) library(BH) library(R6) library(Rcpp) library(rlang)
1.2 分词处理
1.2.1 普通分词方式
运行程序:
a=" 2020年的鼠年,注定不平凡,全国人民都共同抗击疫情中度过,希望尽打赢疫情防控阻击战,风雨过后,春暖花开,大爱无疆,致敬所有的白衣天使,所有的英雄。 武汉加油,中国加油! 祝福我的祖国国泰民安! " engine1=worker() engine2=worker("hmm") b1=segment(a,engine1) b1
运行结果:
[1] "2020" "年" "的" "鼠年" "注定" "不" [7] "平凡" "全国" "人民" "都" "共同" "抗击" [13] "疫情" "中" "度过" "希望" "尽" "打赢" [19] "疫情" "防控" "阻击战" "风雨" "过后" "春暖花开" [25] "大爱" "无疆" "致敬" "所有" "的" "白衣天使" [31] "所有" "的" "英雄" "武汉" "加油" "中国" [37] "加油" "祝福" "我" "的" "祖国" "国泰民安"
1.2.2 hmm分词
运行程序:
b2=segment(b1,engine2) b2
运行结果:
[1] "2020" "年" "的" "鼠年" "注定" "不" [7] "平凡" "全国" "人民" "都" "共同" "抗击" [13] "疫情" "中" "度过" "希望" "尽" "打赢" [19] "疫情" "防控" "阻击战" "风雨" "过后" "春暖花开" [25] "大爱" "无疆" "致敬" "所有" "的" "白衣天" [31] "使" "所有" "的" "英雄" "武汉" "加油" [37] "中国" "加油" "祝福" "我" "的" "祖国" [43] "国泰民安"
1.2 词云图绘制
1.2.1 wordcloud词云图
运行程序:
word=freq(b2) # 统计词频 wordcloud(word$char,word$freq,min.freq=1) #wordcloud下的词云图
运行结果:
1.2.2 wordcloud2词云图
运行程序:
wordcloud2(word,color="red",shape="star") #wordcloud2下的词云图
运行结果:
2 读取文本数据
2.1 读取文本数据
运行程序:
setwd("C:\\Users\\LE\\Desktop") a1 <- scan("yiqingganxiang.txt",sep='\n',what='',encoding="GBK")
2.2 分词处理
运行程序:
seg <- qseg[a1] #使用qseg类型分词,并把结果保存到对象seg中 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:304] #降序排序,并提取出出现的所有词 seg #查看出现频率最高的6个词 data=data.frame(seg)
2.3 词云图绘制
2.3.1 wordcloud词云图
运行程序:
wordcloud(data$seg , data$Freq, colors = rainbow(100),random.order=F)
运行结果:
2.3.2 wordcloud2词云图
运行程序:
wordcloud2(data, size = 0.5, minSize = 0, shape = "star", ellipticity = 0.85) #wordcloud2下星星词云图
运行结果:
2.3.3 letterCloud词云图
运行程序:
letterCloud(data,word="R",size = 2) #利用letterCloud构造R形状的词云图
运行结果:
2.3.4 自定义形状词云图
运行程序:
wordcloud2(data, figPath = "C:/Users/LE/Desktop/人物.jpg", size = 1)
figPath:图片保存位置,主图形状位置最好为黑色。
运行结果:
2.3.5 自动提取demoFreqC中的文本数据做词云图
运行程序:
data(demoFreqC) letterCloud(demoFreqC,word="挖",size = 2) #“挖”形
运行结果: