python统计红楼梦的词云分析,并统计人名出场频率最高的20位
时间: 2024-03-06 12:52:06 浏览: 74
要对《红楼梦》进行词云分析和人名出场频率统计,可以参考以下代码:
1. 读取《红楼梦》文本文件并进行分词处理
```
import jieba
from wordcloud import WordCloud
import matplotlib.pyplot as plt
# 读取文本文件
with open('hongloumeng.txt', 'r', encoding='utf-8') as f:
text = f.read()
# 对文本进行分词处理
seg_list = jieba.cut(text, cut_all=False)
```
2. 生成词云图并显示
```
# 生成词云图
wordcloud = WordCloud().generate(' '.join(seg_list))
# 显示词云图
plt.imshow(wordcloud, interpolation='bilinear')
plt.axis('off')
plt.show()
```
3. 统计人名出场频率并输出前20名
```
import re
import collections
# 使用正则表达式匹配人名
pattern = r'[\u4e00-\u9fa5]{2,4}(?:·[\u4e00-\u9fa5]{2,4})*'
name_list = re.findall(pattern, text)
# 统计人名出场频率
counter = collections.Counter(name_list)
name_freq = counter.most_common(20)
# 输出前20名
for name, freq in name_freq:
print(name, freq)
```
运行以上代码后,可以得到《红楼梦》的词云图和人名出场频率前20名的统计结果。需要注意的是,生成词云图和统计人名出场频率的代码需要在同一个Python文件中运行,因为它们都需要对文本进行处理。
阅读全文