Python 使用 Jieba 和 WordCloud 生成《红楼梦》词云
Python 使用 Jieba 和 WordCloud 生成《红楼梦》词云
本教程演示如何使用 Python 的 Jieba 和 WordCloud 库生成《红楼梦》词云图。
代码:
import jieba
from wordcloud import WordCloud
excludes = {'什么', '一个', '我们', '那里', '你们', '如今',
'说道', '知道', '老太太', '起来', '姑娘', '这里',
'出来', '他们', '众人', '自己', '一面', '太太',
'只见', '怎么', '奶奶', '两个', '没有', '不是',
'不知', '这个', '听见', '咱们', '就是', '进来', '东西'}
f = open(r'D:\A_downloads\实验2:《红楼梦》\红楼梦.txt', 'r', encoding='utf-8')
txt = f.read()
f.close()
words = jieba.lcut(txt) # 中文分词函数,用于精确模式,即将字符串分割成等量的中文词组,返回结果是列表类型
counts = {}
for word in words:
if len(word) == 1: # 排除单个字符的分词结果
continue
else:
counts[word] = counts.get(word, 0) + 1 # get方法,键存在则返回相应值,否则返回0
for word in excludes:
del (counts[word]) # 如果含有excludes里的单词,删掉
items = list(counts.items()) # items方法,返回所有的键值对
items.sort(key=lambda x: x[1], reverse=True) # 按降序排序
for i in range(8):
word, count = items[i]
print('{0:<5}{1:>5}'.format(word, count))
# 生成词云
newtxt = ''.join(words)
wordcloud = WordCloud(background_color='white',
width=800,
height=600,
max_words=200,
max_font_size=80,
stopwords=excludes,
).generate(newtxt)
wordcloud.to_file(r'D:\A_downloads\实验2:《红楼梦》') # 生成词云图片,图片一般与此程序文件在同一个目录里
常见问题及解决方法:
-
没有结果是为什么?
- 可能是因为没有安装
jieba和wordcloud库,需要先通过pip install jieba wordcloud安装这两个库。 - 检查文件路径是否正确以及文件编码是否与程序中指定的一致。
- 如果文本文件过大,可能需要等待较长时间才能生成词云。
- 可能是因为没有安装
更多信息:
注意:
- 本教程使用的是 Python 3。
- 需要将代码中的文件路径修改为您的文件路径。
- 您可以根据需要修改参数,例如
stopwords、max_words和max_font_size。
原文地址: https://www.cveoy.top/t/topic/mrpr 著作权归作者所有。请勿转载和采集!