统计红楼梦人物出场次数python_红楼梦人物出场次数统计及人物出场词云
时间: 2023-08-16 17:08:07 浏览: 97
a.rar_人物名称频数统计_红楼梦
好的,这个问题我可以回答。首先需要将《红楼梦》的文本进行处理,然后统计人物出现的次数,最后可以生成词云来展示。
下面是一个简单的 Python 代码示例:
```python
import jieba
import numpy as np
from PIL import Image
from wordcloud import WordCloud
from collections import Counter
# 读取红楼梦文本
with open('hongloumeng.txt', 'r', encoding='utf-8') as f:
text = f.read()
# 使用 jieba 进行分词
words = jieba.lcut(text)
# 读取人物列表
with open('characters.txt', 'r', encoding='utf-8') as f:
characters = f.read().splitlines()
# 统计人物出现次数
counter = Counter(words)
character_counts = {c: counter[c] for c in characters}
# 输出人物出现次数
for c, count in character_counts.items():
print(c, count)
# 生成词云
mask = np.array(Image.open('mask.png'))
wc = WordCloud(background_color='white', mask=mask, font_path='msyh.ttc')
wc.generate_from_frequencies(character_counts)
wc.to_file('wordcloud.png')
```
这段代码做了以下几件事情:
1. 读取《红楼梦》的文本,并使用 jieba 进行分词。
2. 读取人物列表(例如 `characters.txt` 文件)。
3. 使用 `collections.Counter` 统计每个词出现的次数,并从中筛选出人物出现的次数。
4. 输出人物出现次数。
5. 使用 `wordcloud` 库生成词云,并输出到图片文件中。
需要注意的是,这段代码中的 `mask.png` 和 `msyh.ttc` 文件需要自行准备。`mask.png` 是用于生成词云的遮罩图,`msyh.ttc` 是用于生成词云的字体文件。你可以在网上找到这些文件,或者使用自己喜欢的文件。
希望这个回答能够帮助到你!
阅读全文