Python WordCloud库与jieba分词生成词云图的完整指南

news/2024/11/6 9:03:05/

Python WordCloud库与jieba分词生成词云图的完整指南

关键技术点及代码示例

1. 安装必要的库

使用pip安装wordcloudjieba库:

pip install wordcloud
pip install jieba

2. jieba分词

精确模式
python">import jiebatext = "Python是广泛使用的编程语言。它被用于网站开发、数据分析、人工智能等多个领域。"
seg_list = jieba.cut(text, cut_all=False)  # 精确模式
print("精确模式: " + "/ ".join(seg_list))
搜索引擎模式
python">seg_list = jieba.cut_for_search(text)  # 搜索引擎模式
print("搜索引擎模式: " + "/ ".join(seg_list))

3. 去除停用词

创建一个停用词列表,并从分词结果中去除停用词:

python">with open('stopwords.txt', 'r', encoding='utf-8') as f:stopwords = [line.strip() for line in f.readlines()]words = [word for word in seg_list if word not in stopwords and len(word) > 1]

4. 统计词频

使用collections.Counter类统计词频:

python">from collections import Countercounter = Counter(words)
for word, count in counter.most_common(10):print(word, count)

5. 生成词云图

创建WordCloud对象并生成词云图:

python">from wordcloud import WordCloud
import matplotlib.pyplot as pltwordcloud = WordCloud(font_path='path_to_your_chinese_font.ttf',  # 指定中文字体路径background_color='white').generate_from_frequencies(dict(counter))plt.figure(figsize=(10, 5))
plt.imshow(wordcloud, interpolation='bilinear')
plt.axis('off')  # 不显示坐标轴
plt.show()

6. 保存词云图

将生成的词云图保存为图片文件:

python">wordcloud.to_file('wordcloud.png')

完整代码

结合以上关键技术点,以下是生成词云图的完整代码:

python">import jieba
from collections import Counter
from wordcloud import WordCloud
import matplotlib.pyplot as plttext = "Python是广泛使用的编程语言。它被用于网站开发、数据分析、人工智能等多个领域。"# 使用jieba进行中文分词
seg_list = jieba.cut(text, cut_all=False)  # 精确模式# 要有这个文件stopwords.txt   去除停用词
with open('stopwords.txt', 'r', encoding='utf-8') as f:stopwords = [line.strip() for line in f.readlines()]
words = [word for word in seg_list if word not in stopwords and len(word) > 1]# 统计词频
counter = Counter(words)
# 打印词频最高的10个词
for word, count in counter.most_common(10):print(word, count)# 生成词云图
wordcloud = WordCloud(font_path='C:/Windows/Fonts/simhei.ttf',  # 指定中文字体路径background_color='white').generate_from_frequencies(dict(counter))# 显示词云图
plt.figure(figsize=(10, 5))
plt.imshow(wordcloud, interpolation='bilinear')
plt.axis('off')  # 不显示坐标轴
plt.show()# 保存词云图
wordcloud.to_file('wordcloud.png')

注意事项

  • 确保stopwords.txt文件中包含了你想要去除的停用词,每行一个词。
  • font_path参数需要指向一个有效的中文字体文件路径,否则中文字符将无法正确显示。
  • path_to_your_chinese_font.ttf需要替换为你实际的中文字体文件路径。
  • stopwords.txtwordcloud.png是示例文件名,你可以根据需要修改它们。

通过上述代码,你可以实现从中文文本的分词到词云图的生成和保存的完整流程。这是一个非常实用的文本数据可视化工具,可以帮助你快速理解文本数据中的关键信息。


http://www.ppmy.cn/news/1544773.html

相关文章

【P2-7】ESP8266 WIFI模块在AP模式下实现UDP与电脑/手机网络助手通信——UDP数据透传

前言:完成ESP8266 WIFI模块在AP模式下实现UDP与电脑/手机网络助手通信——实现UDP数据透传 AP模式,通俗来说模块可以发出一个WIFI热点提供给电脑/手机连接。 UDP协议,是传输层协议,UDP没有服务器和客户端的说法。 演示视频: ESP8266 WIFI模块在AP模式下实现UDP与电脑/手机…

前后端交互通用排序策略

目录 排序场景 排序实现思路 1. 静态代码排序实现 2.数据库驱动排序实现 3. 基于Java反射的动态排序实现 通用排序工具 SortListUtil 结语 排序场景 在面向前端数据展示的应用场景中,我们旨在实现一个更加灵活的排序机制,该机制能够支持对从后端传递…

软设师知识点-计算机网络

计算机网络 在一台安装好TCP/IP协议的计算机上,当网络连接不可用时,为了测试编写好的网络程序,通常使用的目的主机IP地址127.0.0.1(本地回送地址) *网络设备 物理层的互传设备:中继器(用于扩展局域网网段…

无人机操控员培训班课程详解

无人机操控员培训班课程通常涵盖多个方面,以确保学员能够全面掌握无人机操控技能和相关理论知识。以下是对无人机操控员培训班课程的详细解析: 一、基础理论课程 1. 无人机基础知识 介绍无人机的定义、分类、工作原理及系统组成,使学员对无…

全面解析:区块链技术及其应用

💓 博客主页:瑕疵的CSDN主页 📝 Gitee主页:瑕疵的gitee主页 ⏩ 文章专栏:《热点资讯》 全面解析:区块链技术及其应用 全面解析:区块链技术及其应用 全面解析:区块链技术及其应用 区…

DDOS的攻击方式有哪些?

对于现如今的企业来说,经常会受到各种各样的网络攻击,其中网站是经常遭到网络攻击,服务器最常见的攻击类型有CC攻击和DDOS攻击,而DDOS攻击是难以防御的攻击类型,下面小编则为大家介绍一下DDOS的攻击方式有哪些吧&#…

超越Axure:探索新一代原型设计工具

Axure RP是一款被广泛认可的快速原型设计工具,专为专业设计师打造,用于创建高效的产品原型图,包括APP和网页的原型图、框架图和结构图等。Axure RP制作的原型图能够实现与实际APP相似的交互效果,便于向用户或客户展示,…

Kafka自动生产消息软件

点击下载《Kafka服务端(含Zookeeper)一键自启软件》 点击下载《kafka客户端生产者消费者kafka可视化工具(可生产和消费消息)》 点击下载《Kafka自动生产消息软件》 1. 前言 在软件开发过程中,Kafka常被用作消息队列来处理特定的业务功能。为…