统计红楼梦人物出场次数python_红楼梦人物出场次数统计及人物出场词云
时间: 2023-08-09 18:06:11 浏览: 143
使用Python编写程序,统计书籍《红楼梦》中前20位出场次数最多的人物
5星 · 资源好评率100%
红楼梦的文本可以通过网络或者本地文件获取,我们可以使用 Python 中的 jieba 库进行中文分词,然后统计每个人物在文本中出现的次数,最终生成一个出场次数的排名表和一个人物出场次数的词云。
以下是代码示例:
```python
import jieba
from collections import defaultdict
from wordcloud import WordCloud
import matplotlib.pyplot as plt
# 读取红楼梦文本
with open('hongloumeng.txt', 'r', encoding='utf-8') as f:
text = f.read()
# 中文分词
words = jieba.cut(text)
# 统计人物出现次数
counts = defaultdict(int)
for word in words:
if len(word) > 1: # 过滤掉单个字的词
counts[word] += 1
# 输出出场次数排名前十的人物
top_counts = sorted(counts.items(), key=lambda x:x[1], reverse=True)[:10]
for i, (name, count) in enumerate(top_counts):
print(f'{i+1}. {name}: {count}次')
# 生成人物出场次数词云
wc = WordCloud(font_path='msyh.ttc', background_color='white')
wc.generate_from_frequencies(counts)
plt.imshow(wc)
plt.axis('off')
plt.show()
```
这里我们使用了 Python 中的 defaultdict 来统计词频,这样就不需要事先对每个人物进行初始化,避免了出现 KeyError 的情况。同时,我们也过滤掉了单个字的词,以提高统计的准确性。
在生成词云时,我们使用了 WordCloud 库,并指定了字体和背景色。最终通过 matplotlib 显示出来。
需要注意的是,红楼梦的文本文件需要事先准备好,放在代码所在目录下,命名为 `hongloumeng.txt`。
阅读全文