统计红楼梦人物出场次数python_红楼梦人物出场次数统计及人物出场词云
时间: 2023-08-16 09:08:07 浏览: 1312
好的,我可以帮你实现。首先我们需要准备好红楼梦的文本数据,可以从网上下载红楼梦的txt文件,然后使用Python进行读取和处理。
以下是实现的代码,注释中有详细的说明:
import jieba
from collections import Counter
from wordcloud import WordCloud
import matplotlib.pyplot as plt
# 读取红楼梦文本文件
with open('hongloumeng.txt', 'r', encoding='utf-8') as f:
text = f.read()
# 使用jieba分词对文本进行切分
words = jieba.cut(text)
# 统计人物出现次数
counts = Counter(words)
person_counts = {}
with open('hongloumeng_person.txt', 'r', encoding='utf-8') as f:
for line in f:
name = line.strip()
if name in counts:
person_counts[name] = counts[name]
# 输出前20个出现次数最多的人物
top20 = sorted(person_counts.items(), key=lambda x: x[1], reverse=True)[:20]
for name, count in top20:
print(name, count)
# 生成人物出现次数词云
wordcloud = WordCloud(font_path='msyh.ttc').generate_from_frequencies(person_counts)
plt.imshow(wordcloud, interpolation='bilinear')
plt.axis("off")
plt.show()
在上面的代码中,我们使用了jieba库对文本进行了分词,然后使用Counter类进行词频统计。接着,我们读取了一个人物列表文件,文件中每行是一个人物名称,然后遍历人物列表,统计每个人物在文本中出现的次数。最后,使用WordCloud库生成了人物出现次数的词云图。
注:在运行代码前需要提前安装jieba, collections, wordcloud, matplotlib等相关库。
相关推荐

















