生成《红楼梦》中出现最多的15个人名的词云图
时间: 2024-02-13 15:06:51 浏览: 174
好的,以下是生成《红楼梦》中出现最多的15个人名的词云图的代码:
```
import jieba
from wordcloud import WordCloud
import matplotlib.pyplot as plt
from collections import Counter
# 读取文本文件并处理文本数据
text = open('hongloumeng.txt', encoding='utf-8').read()
words = jieba.cut(text)
words = [word for word in words if len(word) > 1] # 只保留长度大于1的词语
# 统计人名出现的次数
name_list = ['贾宝玉', '林黛玉', '薛宝钗', '王熙凤', '史湘云', '贾母', '凤姐儿', '王夫人', '贾琏', '贾政', '秦可卿', '尤三姐', '贾探春', '贾环', '贾珍']
name_counter = Counter([word for word in words if word in name_list])
top_names = dict(name_counter.most_common(15))
# 生成词云图
wordcloud = WordCloud(font_path='msyh.ttc', background_color='white').generate_from_frequencies(top_names)
plt.imshow(wordcloud, interpolation='bilinear')
plt.axis("off")
plt.show()
```
其中,`hongloumeng.txt`是《红楼梦》的文本文件,`name_list`是待统计的人名列表,`name_counter`用于统计各个人名出现的次数,`top_names`取出出现次数最多的15个人名。最后基于`top_names`生成词云图。
阅读全文