编写至少50行代码,形成《水浒传》人物词云
时间: 2023-08-06 16:14:32 浏览: 78
以下是使用Python编写的《水浒传》人物词云生成代码:
```python
import jieba
from wordcloud import WordCloud, ImageColorGenerator
import matplotlib.pyplot as plt
from PIL import Image
# 读取《水浒传》文本文件并分词
with open('shuihuzhuan.txt', 'r', encoding='utf-8') as f:
content = f.read()
words = jieba.cut(content)
# 过滤停用词
stopwords = ['的', '了', '和', '是', '在', '就', '有', '也', '都', '上', '下', '而', '及', '之', '与', '为', '之', '以', '从', '到', '着', '还', '等', '之间', '一些', '一个', '一种']
filtered_words = []
for word in words:
if word not in stopwords:
filtered_words.append(word)
# 统计每个词出现的次数
word_counts = {}
for word in filtered_words:
if word not in word_counts:
word_counts[word] = 1
else:
word_counts[word] += 1
# 生成词云
mask = np.array(Image.open('shuihuzhuan.jpg'))
wc = WordCloud(background_color='white', mask=mask, font_path='simhei.ttf')
wc.generate_from_frequencies(word_counts)
image_colors = ImageColorGenerator(mask)
wc.recolor(color_func=image_colors)
plt.imshow(wc)
plt.axis('off')
plt.show()
```
需要注意的是,上述代码需要使用jieba、wordcloud、matplotlib和Pillow等第三方库,其中jieba用于中文分词,wordcloud用于生成词云,matplotlib用于绘图,Pillow用于处理图像。此外,还需要提供《水浒传》的文本文件和词云的形状图片。在生成词云时,使用了《水浒传》的封面作为词云的形状,并使用了simhei.ttf字体。最终生成的词云会显示在窗口中。