词云图大揭秘:如何从文本中挖掘热点词汇?

news2024/11/14 20:54:35

随着互联网的普及,大量的文本信息在网络上被产生和传播。如何从这些海量的文本中提取出有价值的信息,成为了人们关注的焦点。在这个信息爆炸的时代,词云图作为一种直观、形象的数据可视化手段,越来越受到人们的喜爱。本文手把手教你如何实现词云图,快速对文字进行分析。废话不多说,直接上源码:

一、源码


import jieba
import matplotlib.pyplot as plt
import re
from wordcloud import WordCloud
from docx import Document
plt.rcParams['font.sans-serif'] = ['SimHei']  # 用来正常显示中文标签
plt.rcParams['axes.unicode_minus'] = False  # 用来正常显示负号



def read_text_from_file(file_path):
   doc = Document(file_path)
   text = ''
   for para in doc.paragraphs:
       text += para.text + ''
   return text

# 使用jieba进行中文分词
# 示例文本文件路径
file_path = 'E:\\test\\123.docx' # 请替换为你的文本文件路径
text12321 = read_text_from_file(file_path)
print("text",text12321)

words = jieba.lcut(text12321)



# 统计词频
word_freq = {}
for word in words:
   if word in word_freq:
       word_freq[word] += 1
   else:
       word_freq[word] = 1

filtered_word_freq = {word: freq for word, freq in word_freq.items() if freq > 1}

# 过滤掉符号
filtered_word_freq = {re.sub(r'[^\w\s]', '', word): freq for word, freq in filtered_word_freq.items()}

# 按词频降序排列
sorted_word_freq = sorted(filtered_word_freq.items(), key=lambda x: x[1], reverse=True)


# 可视化结果(使用词云图)
font_path = 'C:\\Users\\Administrator\\AppData\\Local\\Microsoft\\Windows\\Fonts\\仿宋_GB2312.ttf'  # 修改为你的字体文件路径
plt.figure(figsize=(10, 5))
wordcloud = WordCloud(font_path=font_path, width=800, height=400).generate_from_frequencies(filtered_word_freq)
plt.imshow(wordcloud, interpolation='bilinear')
plt.axis('off')
plt.title("文本词频统计")
plt.show()



运行效果如下:

二、代码解释

以下是关键代码的详细讲解:

1. `import jieba, matplotlib.pyplot as plt, re, from wordcloud import WordCloud, Document`:这行代码导入了所需的库,包括jieba(用于中文分词),matplotlib.pyplot(用于绘制词云图),re(用于处理正则表达式)和WordCloud(用于生成词云)。



2. `plt.rcParams['font.sans-serif'] = ['SimHei']` 和 `plt.rcParams['axes.unicode_minus'] = False`:这两行代码设置了matplotlib的字体参数,使其可以正常显示中文标签和负号。



3. `def read_text_from_file(file_path):`:定义了一个函数,该函数接收一个文件路径作为参数,使用python-docx库读取该文件中的所有段落,并将所有段落的文本内容连接成一个字符串返回。



4. `file_path = 'E:\\test\\123.docx'`:指定了一个.docx格式的文本文件路径。



5. `text12321 = read_text_from_file(file_path)`:调用read_text_from_file函数读取该文件的内容,并打印出来。



6. `words = jieba.lcut(text12321)`:使用jieba的lcut函数对读取到的文本内容进行分词,得到一个包含所有词的列表。



7. `word_freq = {}`:创建一个空字典,用于统计每个词的出现频率。



8. `for word in words:`:遍历分词后的词列表。



9. `if word in word_freq:`:如果某个词已经在字典中,则将其对应的频率加一。



10. `else:`:如果某个词不在字典中,则将其添加到字典中,并将其频率设置为1。



11. `filtered_word_freq = {word: freq for word, freq in word_freq.items() if freq > 1}`:创建一个新的字典,只包含出现频率大于1的词及其频率。



12. `filtered_word_freq = {re.sub(r'[^\w\s]', '', word): freq for word, freq in filtered_word_freq.items()}`:使用正则表达式将filtered_word_freq中的词的符号部分去掉。



13. `sorted_word_freq = sorted(filtered_word_freq.items(), key=lambda x: x[1], reverse=True)`:将filtered_word_freq中的词按照其频率进行降序排序,得到一个列表sorted_word_freq。



14. `font_path = 'C:\\Users\\Administrator\\AppData\\Local\\Microsoft\\Windows\\Fonts\\仿宋_GB2312.ttf'`:设置词云图的字体文件路径。



15. `plt.figure(figsize=(10, 5))`:设置图形的大小。



16. `wordcloud = WordCloud(font_path=font_path, width=800, height=400).generate_from_frequencies(filtered_word_freq)`:使用WordCloud的generate_from_frequencies方法,根据sorted_word_freq中的词频信息生成词云图。



17. `plt.imshow(wordcloud, interpolation='bilinear')`:使用matplotlib的imshow函数将生成的词云图显示出来。设置插值方法为'bilinear',使得词云图中的文字更加清晰。



18. `plt.axis('off')`:关闭坐标轴。



19. `plt.title("文本词频统计")`:设置标题为"文本词频统计"。



20. `plt.show()`:调用show函数显示整个图形。

三、词云图主要有以下应用场景

1、新闻报道

在新闻报道中,词云图可以帮助记者快速梳理出热点事件的核心词汇。通过对新闻标题中出现的关键词进行统计,词云图可以将这些关键词按照权重进行排序,形成一个视觉化的热点词汇分布图。这样,记者可以迅速了解新闻事件的焦点,为报道提供有力的依据。

2、社交媒体

在社交媒体中,用户发布的文字、图片和视频等内容构成了一个庞大的信息网络。通过词云图分析,我们可以发现用户关注的焦点、热门话题以及情感倾向等信息。例如,对于一场公益活动的宣传,我们可以通过词云图分析出用户关注的核心词汇,从而优化宣传策略,提高活动的影响力。

3、舆情监控

在企业和政府部门中,舆情监控是一项重要的工作。通过对网络上的用户评论、发帖等数据进行分析,可以及时发现潜在的危机,为企业决策提供有力支持。词云图可以帮助我们快速识别出舆情关注的焦点,从而采取相应的措施进行应对。

4、产品评价

在电商、旅游等行业中,用户对产品和服务的评价是影响购买决策的重要因素。通过词云图分析,我们可以发现用户关注的核心词汇,如产品质量、价格、服务等方面。这些信息对于企业改进产品和服务具有重要的参考价值。

5、教育培训

在教育培训领域,词云图可以帮助教师和学生更好地理解课程内容。通过对教材中的重点知识点进行词云分析,教师可以更好地把握教学重点,学生也可以更清晰地掌握知识点之间的关系。此外,词云图还可以用于知识竞赛、论文查重等场景,提高学习效率。

6、广告投放

在广告投放过程中,词云图可以帮助广告商更好地了解目标受众的需求和兴趣。通过对广告标题中的关键词进行统计,词云图可以将这些关键词按照权重进行排序,形成一个视觉化的热点词汇分布图。这样,广告商可以更精准地进行广告创意设计,提高广告效果。

7、 在数据分析报告中,词云图可以帮助分析师更直观地展示数据特征。通过对报告中的关键数据进行词云分析,分析师可以更好地把握数据的变化趋势和规律,为决策提供有力支持。

总之,词云图作为一种直观、形象的数据可视化手段,在文本分析中具有广泛的应用前景。通过词云图,我们可以快速了解文本中的热点词汇,挖掘出有价值的信息,为各类场景提供有力的支持。

如运行有问题,可联系我,乐意为你解决。一起共同研究大数据分析模型。下一期将为你讲解情感分析模型。

每日为你分享更多干货

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

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

相关文章

【国密SM2】基于Hutool的SM2公私钥生成、签名验签(二十行代码搞定)

前言 由于在公司项目中需要用到国密SM2秘钥生成、签名、验签功能,找了网上很多的资料,发现其工具类都异常复杂,最终找到了Hutool工具包,但其官网的示例也不尽人意。于是,对Hutool提供的SM2类进行封装,封装…

AI的胜利:危机还是机遇?

原创 | 文 BFT机器人 随着科技的飞速发展,人工智能(AI)已经成为当今世界的一个热门话题。人们不仅在技术领域看到了AI的无限潜力,还开始思考一个深刻的问题:AI是否有可能战胜人类? 从技术角度来看&#xf…

数字人解决方案——ER-NeRF实时对话数字人模型训练与项目部署

前言 1、算法概述 ER-NeRF是基于NeRF用于生成数字人的方法,可以达到实时生成的效果。具体来说,为了提高动态头部重建的准确性,ER-NeRF引入了一种紧凑且表达丰富的基于NeRF的三平面哈希表示法,通过三个平面哈希编码器剪枝空的空间…

开源任务调度框架

本文主要介绍一下任务调度框架Flowjob的整体结构,以及整体的心路历程。 功能介绍 flowjob主要用于搭建统一的任务调度平台,方便各个业务方进行接入使用。 项目在设计的时候,考虑了扩展性、稳定性、伸缩性等相关问题,可以作为公司…

UART中的奇偶校验和粘性奇偶校验(stick parity)

1.UART传输 UART传输分为起始位,数据位,奇偶校验位,停止位,我们这里详细介绍一下奇偶校验位。 2.奇偶校验位 奇偶校验是一种常见的校验位方法,用于检测数据传输中的错误。 奇校验:数据位的1的个数加上附加…

TensorFlow入门(十八、激活函数)

激活函数是什么? 单个神经元的网络模型: 用计算公式表达如下: 即在神经元中,输入的x通过与权重w相乘,与偏置量b求和后,还被作用了一个函数,这个函数就是激活函数。 激活函数的作用 如果没有激活函数,整个神经元模型就是一个简单的线性方程。而在现实生活中,线性方程能解决的事…

常见Http请求形式

一、请求参数的类型 我们在做boot项目时,常常会向接口发起请求,有些请求需要附带一些参数,比如说分页查询,就需要带上pageNum(当前页)和pageSize(页面大小)等参数 有两种方式可以传递这样的参数 query类型,参数通过…

【Linux系统KVM虚拟机实战】LVM逻辑卷之磁盘扩容

【Linux系统KVM虚拟机实战】LVM逻辑卷之磁盘扩容 一、LVM与KVM介绍1.1 LVM介绍1.2 KVM介绍1.2.1 KVM简介1.2.2 KVM优点二、本次实践介绍2.1 本次实践简介2.2 环境规划三、虚拟机环境检查3.1 检查KVM虚拟机磁盘空间3.2 KVM虚拟机检查系统情况3.3 检查物理磁盘分区3.4 查看PV状态…

②. GPT错误:图片尺寸写入excel权限错误

꧂问题最初 ꧁ input输入图片路径 print图片尺寸 大小 长宽高 有颜色占比>0.001的按照大小排序将打印信息存储excel表格文件名 表格路径 图片大小 尺寸 颜色类型 占比信息input输入的是文件就处理文件 是文件夹📁就处理文件。路径下的图片 1. 是处理本路径图片 …

数据结构-----哈夫曼树和哈夫曼编码

目录 前言 哈夫曼树的实现 1.储存结构 2.创建初始化哈夫曼树 3.完整哈夫曼树创建 4.计算总权值 哈夫曼编码 完整代码 前言 前面我们学习过了哈夫曼树和哈夫曼编码的基础知识(链接:哈夫曼树哈夫曼编码必知必会知识_Gretel Tade的博客-CSDN博客&…

内排序算法

排序算法是面试中常见的问题,不同算法的时间复杂度、稳定性和适用场景各不相同。按照数据量和存储方式可以将排序算法分为 内排序(Internal Sorting)和 外排序(External Sorting)。 内排序是指对所有待排序的数据都可…

wifi管理软件 WiFi Signal mac中文介绍

WiFi Signal mac是一款WiFi信号强度监测工具,它可以帮助用户实时监测WiFi信号的强度、频率、噪声等信息,并提供详细的图表和统计数据。 WiFi Signal可以自动扫描附近的WiFi网络,并显示它们的信号强度和频率。用户可以通过WiFi Signal来找到最…

Android斩首行动——应用层开发Framework必知必会

前言 相信做应用层业务开发的同学,都跟我一样,对Framework”深恶痛绝“。确实如此,如果平日里都在做应用层的开发,那么基本上我们很少会去碰Framework的知识。但生活所迫,面试总是逃不过这一关的,所以作为…

第二证券:A股公司首批三季报出炉 柏楚电子、平煤股份业绩一增一减

10月10日晚,柏楚电子、平煤股份拉开了A股公司三季报发表序幕。来自激光切开控制体系赛道的柏楚电子,前三季度营收、净利润均完结较大崎岖增加;焦煤龙头企业平煤股份,受煤价跌落连累成果,前三季度营收、净利润均有所下降…

Java架构师缓存性能优化

目录 1 缓存的负载策略2 缓存的序列化问题3 缓存命中率低4 缓存对数据库高并发访问5 缓存数据刷新的策略6 何时写缓存7 批量数据来更新缓存8 缓存数据过期的策略9 缓存数据如何恢复10 缓存数据如何迁移11 缓存冷启动和缓存预热1 缓存的负载策略 如果说我们在缓存架构设计当中啊…

优思学院|八大浪费深度剖析

在工作流程中消除浪费是精益思想的目标。在深入探讨八大浪费之前,了解浪费的定义至关重要。浪费是指工作流程中的任何行动或步骤,这些行动或步骤不为客户增加价值。换句话说,浪费是客户不愿意为其付费的任何过程。 最初的七大浪费&#xff0…

第83步 时间序列建模实战:Catboost回归建模

基于WIN10的64位系统演示 一、写在前面 这一期,我们介绍Catboost回归。 同样,这里使用这个数据: 《PLoS One》2015年一篇题目为《Comparison of Two Hybrid Models for Forecasting the Incidence of Hemorrhagic Fever with Renal Syndr…

Nerf 学习笔记

Nerf 学习笔记 Step 1:相机 Rays 行进(ray marching)Step 2:收集查询点Step 3:将查询点投射到高维空间(位置编码)Step 4:神经网络推理和体渲染神经网络推理体渲染计算损失 Reference: 搞懂神经辐射场 Neural Radiance Fields (Ne…

如何在一个传统的html中,引入vueJs并使用vue复制组件?

如何在一个传统的html中,引入vueJs并使用vue复制组件? 1.1 引言1.2 背景1.3 解决方案1.3.1 解决方案一:直接使用clipboard(不推荐仅供参考学习)1.3.2 解决方案二:封装指令js库后使用 (推荐) 1.1 引言 这篇博文主要分享如何在一个…

Springboot给每个接口设置traceId,并添加到返回结果中

原理 slf4j有个MDC的类,是ThreadLocal的实现,保存在这里的变量会绑定到某个请求线程,于是在该请求的线程里的日志代码都可以使用设入的变量。 实现 一、引入依赖 这个是可选项,用于生成唯一uid,我人懒&#xff0c…