🍉CSDN小墨&晓末:https://blog.csdn.net/jd1813346972
个人介绍: 研一|统计学|干货分享
擅长Python、Matlab、R等主流编程软件
累计十余项国家级比赛奖项,参与研究经费10w、40w级横向
文章目录
词云图是一种用于展示文本数据中高频关键词的可视化表达方式。它通过文字、色彩和图形的搭配,以直观且冲击力强的视觉效果展现文本的主要信息。该篇文章利用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) #“挖”形
运行结果: