Python WordCloud库与jieba分词生成词云图的完整指南
关键技术点及代码示例
1. 安装必要的库
使用pip安装wordcloud
和jieba
库:
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.txt
和wordcloud.png
是示例文件名,你可以根据需要修改它们。
通过上述代码,你可以实现从中文文本的分词到词云图的生成和保存的完整流程。这是一个非常实用的文本数据可视化工具,可以帮助你快速理解文本数据中的关键信息。