用python实现《三国演义》人物出场次数统计(出现次数最高前10名的人物名称)、可视
时间: 2024-03-29 19:35:45 浏览: 301
好的,我可以帮你实现这个功能。首先,我们需要先获取《三国演义》的文本数据。这里我使用的是从 Project Gutenberg 上下载的《三国演义》的文本文件。你可以从这个链接上下载:https://www.gutenberg.org/ebooks/4367
接下来,我们可以使用 Python 中的 re 模块和 collections 模块来实现人物出场次数的统计。具体实现代码如下:
```python
import re
from collections import Counter
# 读取文本文件
with open('sgyy.txt', 'r', encoding='utf-8') as f:
text = f.read()
# 使用正则表达式匹配人物名称
pattern = re.compile('[\u4e00-\u9fa5]{2,5}(?:·[\u4e00-\u9fa5]{2,5})*')
names = pattern.findall(text)
# 统计人物出现次数
name_counts = Counter(names)
# 获取出现次数最多的前10个人物
top_10 = name_counts.most_common(10)
# 输出结果
print('出现次数最多的前10个人物:')
for i, (name, count) in enumerate(top_10):
print(f"{i+1}. {name}: {count}")
```
运行这段代码,就可以得到出现次数最多的前10个人物的名称和出现次数了。
对于可视化,我们可以使用 Python 中的 matplotlib 库来实现。我们可以将前10个人物的名称和出现次数绘制成一个柱状图。具体实现代码如下:
```python
import matplotlib.pyplot as plt
# 绘制柱状图
plt.bar([name for name, count in top_10], [count for name, count in top_10])
# 设置图表标题和横纵坐标标签
plt.title('出现次数最多的前10个人物')
plt.xlabel('人物名称')
plt.ylabel('出现次数')
# 显示图表
plt.show()
```
运行这段代码,就可以得到一个柱状图,显示出现次数最多的前10个人物的出现次数。
阅读全文