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

news2025/1/13 13:10:34

文章目录

  • 1 手动输入文本
    • 1.1 加载包
    • 1.2 分词处理
      • 1.2.1 普通分词方式
      • 1.2.2 hmm分词
    • 1.2 词云图绘制
      • 1.2.1 wordcloud词云图
      • 1.2.2 wordcloud2词云图
  • 2 读取文本数据
    • 2.1 读取文本数据
    • 2.2 分词处理
    • 2.3 词云图绘制
      • 2.3.1 wordcloud词云图
      • 2.3.2 wordcloud2词云图
      • 2.3.3 letterCloud词云图
      • 2.3.4 自定义形状词云图
      • 2.3.5 自动提取demoFreqC中的文本数据做词云图

词云图是一种用于展示文本数据中高频关键词的可视化表达方式。它通过文字、色彩和图形的搭配,以直观且冲击力强的视觉效果展现文本的主要信息。该篇文章利用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)                     #“挖”形

  运行结果:

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/1516263.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

windows中如何将已安装的node.js版本进行更换

第一步&#xff1a;先清除已经安装好的node.js版本 1.按健winR弹出窗口&#xff0c;键盘输入cmd,然后敲回车&#xff08;或者鼠标直接点击电脑桌面最左下角的win窗口图标弹出&#xff0c;输入cmd再点击回车键&#xff09; 然后进入命令控制行窗口&#xff0c;并输入where node…

【个人博客项目】使用Jenkins简单的搭建一下

目录标题 前言安装JDK1.8、Git、Maven安装Tomcat修改tomcat8相关配置 安装Jenkins 前言 为了学习一下工作中常用到的jenkins&#xff0c;于是挑了个最简单的模式动手操作了一遍。 环境->阿里云服务器:CentOS7.0 https://promotion.aliyun.com/ntms/yunparter/invite.html?…

【Oracle之DataGuard的初步学习】

** 以下所有均是基于11G版本的 ** 一、DataGuard的部署方式 DG的部署最常用的方式就是直接在备库端部署一个空库然后再设置参数&#xff0c;但是这样做在初始同步时如果数据量过大会耗费较长的时间&#xff1b;相对来说这中方式比较简单不易出错。 还有一种方式就是通过rman的备…

如何打开EDI文件?

使用EDI系统传输文件的过程中&#xff0c;用户可能会遇到这样的问题&#xff1a;如何打开EDI文件&#xff1f;电脑不在身边如何查看EDI文件&#xff1f;EDI文件未按照标准格式呈现如何梳理&#xff1f;为了解决上述问题&#xff0c;方便用户查看文件&#xff0c;知行之桥EDI系统…

Linux启动流程

Linux启动流程总的来说可以分成三个阶段 Linux启动流程图 第一步&#xff1a;上电 在 x86 系统中&#xff0c;将 1M 空间最上面的 0xF0000 到 0xFFFFF 这 64K 映射给 ROM。 当电脑刚加电的时候&#xff0c;会做一些重置的工作&#xff0c;将 CS 设置为 0xFFFF&#xff0c;将 …

mac解决brew install报错“fatal: not in a git directory“

在macbook上使用brew安装软件时&#xff0c;可能会遇到问题&#xff0c;报错如下&#xff1a; fatal: not in a git directory Error: Command failed with exit 128: git 使用brew -v&#xff0c;仔细看&#xff0c;可以发现有两个fatal(致命错误)提示: 解决方案&#xff1a;…

springboot笔记1

快速入门 添加父工程和web启动器 创建启动类 编写处理器controller springboot 配置文件 推荐使用 .yaml 格式 批量读取配置文件 多环境配置和激活 分开写 然后在application.yaml里面激活 SpringBoot–springmvc整合和配置 SpringBoot3整合Druid连接池 pom.xml中导入相…

Oracle P6 负浮时和必须完成日期

前言 学习过计划的人大都有这有这样的经历&#xff0c;即无论是Microsoft Project 亦或是P6见过负浮时那么 Primavera P6 计划中的负浮时是从何而来的呢&#xff0c;那么本文可能会有所帮助。 首先&#xff0c;当活动的最晚日期早于最早日期时&#xff0c;就会出现负浮时。 换…

【python】centos 8新装python3.10.0

1.python源码包准备 2.gcc环境安装 如果系统已具备&#xff0c;可以略过。 有的已经自带了gcc&#xff0c;但是如果编译时启动优化的话&#xff0c;如果gcc版本过老就必须要升级。 3.make环境安装 如果系统已具备&#xff0c;可以略过。 4.更新openssl版本&#xff08;很重…

Coarse-to-Fine Latent Diffusion for Pose-Guided Person Image Synthesis阅读笔记

连更&#xff01;&#xff01; 0 Abstract 先前的姿势引导图像合成方法简单的将人的外观与目标姿势进行对齐&#xff0c;这容易导致过拟合&#xff0c;因为缺乏对source person image的high-level semantic understanding&#xff1b;文章开发了一种新的训练范式&#xff1a;…

双线性插值

先来看看线性插值的情况 如上图&#xff0c;在已知p2 (x2,y2)和p1 (x1,y1)的情况下要求解在区间[x1,x2]上任意点x对应的y值&#xff0c;有如下公式&#xff1a; 因式分解&#xff0c;解开y有&#xff1a; 可以看出是计算点p与p3的距离权重&#xff0c;是计算点p与p2的距离权重&…

C++ 字符串OJ

目录 1、14. 最长公共前缀 2、 5. 最长回文子串 3、 67. 二进制求和 4、43. 字符串相乘 1、14. 最长公共前缀 思路一&#xff1a;两两字符串进行比较&#xff0c;每次比较过程相同&#xff0c;可以添加一个函数辅助比较&#xff0c;查找最长公共前缀。 class Solution { pu…

多域名证书和泛域名证书的区别

多域名证书是一种SSL/TLS证书&#xff0c;其特殊之处在于它可以在同一证书中添加多个域名。这些域名可以是不同的主机名或完全不同的域。与传统的SSL证书只能用于一个域名相比&#xff0c;多域名证书提供了为多个域名提供安全保障的便利。 多域名证书的主要优势包括&#xff1…

matplotlib-直方图

日期&#xff1a;2024.03.114 内容&#xff1a;将matplotlib的常用方法做一个记录&#xff0c;方便后续查找。 # 引入需要的库 from matplotlib import pyplot as plt import numpy as np# 设置画布大小 plt.figure(figsize (20,8),dpi 200)# 全局设置中文字体 plt.rcParams…

【六】【算法分析与设计】二分查找

69. x 的平方根 给你一个非负整数 x &#xff0c;计算并返回 x 的 算术平方根 。 由于返回类型是整数&#xff0c;结果只保留 整数部分 &#xff0c;小数部分将被 舍去 。 注意&#xff1a;不允许使用任何内置指数函数和算符&#xff0c;例如 pow(x, 0.5) 或者 x ** 0.5 。 示…

案例分析:分库分表后,我的应用崩溃了

今天我们主要分析一个案例&#xff0c;那就是分库分表后&#xff0c;我的应用崩溃了。 前面介绍了一种由于数据库查询语句拼接问题&#xff0c;而引起的一类内存溢出。下面将详细介绍一下这个过程。 假设我们有一个用户表&#xff0c;想要通过用户名来查询某个用户&#xff0…

阿里云价格战的背后,难以言说附送阿里云服务器优惠价格明细表

2024阿里云服务器优惠活动政策整理&#xff0c;阿里云99计划ECS云服务器2核2G3M带宽99元一年、2核4G5M优惠价格199元一年&#xff0c;轻量应用服务器2核2G3M服务器61元一年、2核4G4M带宽165元1年&#xff0c;云服务器4核16G10M带宽26元1个月、149元半年&#xff0c;云服务器8核…

leetcode110.平衡二叉树

之前没有通过的样例 return语句只写了一个 return abs(l-r)<1缺少了 isBalanced(root->left)&&isBalanced(root->right);补上就好了 class Solution { public:bool isBalanced(TreeNode* root) {if(!root){return true;}int lgetHeight(root->left);i…

阿里云国际配置DDoS高防(非中国内地)加速线路

DDoS高防&#xff08;非中国内地&#xff09;加速线路只能与DDoS高防&#xff08;非中国内地&#xff09;保险版或无忧版实例结合使用。您将业务&#xff08;部署在中国内地以外地域&#xff09;接入DDoS高防&#xff08;非中国内地&#xff09;实例防护后&#xff0c;可以通过…

upload 上传文件后在下次弹框打开时清空上次上传的内容

文章目录 需求分析 需求 upload 上传文件后在下次弹框打开时清空上次上传的内容 分析 arco-design 暂时无法实现该需求&#xff0c;所以继续使用了 elementPlus 的解决方案 获取 Token const getToken () > {return localStorage.getItem(TOKEN_KEY); };页面 <a-f…