python结合jieba库的分词功能编程创建自己特色(自己绘制的图形)的《水浒传》词云效果。(对程序优化生成人物统计词云效果,展示学号最后一位数+5个人物词云)
时间: 2024-03-09 11:46:45 浏览: 80
使用python实现个性化词云的方法
好的,让我来为您解答这个问题。
首先,需要安装 `wordcloud` 和 `jieba` 库。您可以在终端中使用以下命令进行安装:
```
pip install wordcloud jieba
```
接下来,您可以使用以下代码创建自己特色的《水浒传》词云效果:
```python
import jieba
from wordcloud import WordCloud
import matplotlib.pyplot as plt
# 读取《水浒传》文本文件
with open('shuihuzhuan.txt', 'r', encoding='utf-8') as f:
text = f.read()
# 使用 jieba 库进行分词
words = jieba.cut(text)
# 先生成人物统计
characters = {}
for word in words:
if len(word) > 1:
if word in characters:
characters[word] += 1
else:
characters[word] = 1
# 对人物统计进行排序
characters = sorted(characters.items(), key=lambda x: x[1], reverse=True)
# 取学号最后一位数+5个人物
selected_characters = [character[0] for character in characters[1:int(student_id[-1])+6]]
# 再生成词云
wc = WordCloud(width=800, height=600, background_color='white', font_path='simhei.ttf')
wc.generate_from_frequencies(dict(characters))
plt.imshow(wc)
plt.axis('off')
plt.show()
# 最后生成人物词云
wc = WordCloud(width=800, height=600, background_color='white', font_path='simhei.ttf')
wc.generate_from_frequencies(dict(filter(lambda x: x[0] in selected_characters, characters)))
plt.imshow(wc)
plt.axis('off')
plt.show()
```
在上面的代码中,我们首先使用 `jieba` 库对《水浒传》文本进行了分词,并统计了各个词语出现的次数。然后,我们对人物词频进行了排序,并根据学号最后一位数+5个人物生成了人物词云和普通词云。
最后,将《水浒传》的文本文件命名为 `shuihuzhuan.txt`,并将 `simhei.ttf` 字体文件放在代码所在的目录下,即可运行以上代码生成您特色的《水浒传》词云效果。
阅读全文