当前位置: 首页 > article >正文

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

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

关键技术点及代码示例

1. 安装必要的库

使用pip安装wordcloudjieba库:

pip install wordcloud
pip install jieba

2. jieba分词

精确模式
import jieba

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

3. 去除停用词

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

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类统计词频:

from collections import Counter

counter = Counter(words)
for word, count in counter.most_common(10):
    print(word, count)

5. 生成词云图

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

from wordcloud import WordCloud
import matplotlib.pyplot as plt

wordcloud = 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. 保存词云图

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

wordcloud.to_file('wordcloud.png')

完整代码

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

import jieba
from collections import Counter
from wordcloud import WordCloud
import matplotlib.pyplot as plt

text = "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.kler.cn/a/376069.html

相关文章:

  • 中仕公考:上海市25年公务员考试今日报名
  • 嵌入式硬件电子电路设计(三)电源电路之负电源
  • flex 布局比较容易犯的错误 出现边界超出的预想的情况
  • 代码随想录算法训练营第三十三天|Day33 动态规划
  • Java 字符流详解
  • 【数据结构-合法括号字符串】力扣921. 使括号有效的最少添加
  • Ollama:本地部署与运行大型语言模型的高效工具
  • 在kanzi 3.9.8里使用API创建自定义材质
  • PHP反序列化原生类字符串逃逸框架反序列化利用
  • 奥数与C++小学四年级(第十七题 弹跳板)
  • blender雕刻基础 笔记
  • Python毕业设计选题:基于django+vue的宠物寄养平台的设计与实现
  • element根据输入,动态生成表格
  • 【MySQL】MySQL安装以及各种报错处理
  • 全国高校计算机能力挑战赛 Python
  • 【Linux系统编程】第三十九弹---探索信号处理的奥秘:阻塞信号与sigset_t的深入剖析及实战
  • springboot河南旅游推荐系统-计算机毕业设计源码33358
  • 将机器人六轴坐标转为4*4矩阵(Opencv/C++)
  • PHP决策多功能投票小程序系统源码
  • QT for android 问题总结(QT 5.15.2)
  • 【自动化测试】APP UI 自动化(安卓)-本地环境搭建
  • Microsoft Entity Framework Core 8 示例
  • 【眼疾识别】Python+深度学习+人工智能+算法模型训练+TensorFlow+CNN卷积神经网络算法
  • 【C++ 算法进阶】算法提升七
  • mysql 的内连接、左连接、右连接有什么区别?
  • 阿里云服务器 篇九:个人博客类网站