【词云图绘制实战】——数据准备、清洗、多形式展示

🍉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)                     #“挖”形

  运行结果:

  • 3
    点赞
  • 4
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

小墨&晓末

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值