编写程序统计《三国演义》人物出场:输入电子版《三国演义》文本,输出出场率最高的15个人物和次数。
时间: 2024-05-06 13:14:54 浏览: 19
这个问题可以通过Python编程实现。以下是一个可能的解决方案:
```python
import re
from collections import Counter
# 读取文本文件
with open('sgyy.txt', 'r', encoding='utf-8') as f:
sgyy = f.read()
# 使用正则表达式匹配人物名字
pattern = re.compile('[^\u4e00-\u9fa5]+')
sgyy = re.sub(pattern, '', sgyy)
pattern = re.compile('[\n]+')
sgyy = re.sub(pattern, '', sgyy)
pattern = re.compile('[' + '\u3000' + ']+')
sgyy = re.sub(pattern, '', sgyy)
pattern = re.compile('[' + '\u0020' + ']+')
sgyy = re.sub(pattern, '', sgyy)
# 统计人物出现次数
names = re.findall('[\u4e00-\u9fa5]{2,}', sgyy)
name_count = Counter(names)
# 输出前15名
top15 = name_count.most_common(15)
for i, (name, count) in enumerate(top15):
print('第{}名: {},出现次数:{}'.format(i+1, name, count))
```
解释一下上述代码的实现过程:
首先我们打开《三国演义》的文本文件,使用正则表达式清洗文本(去除空格、换行符等)。然后我们使用正则表达式匹配人名,统计出现次数。最后使用Counter类对人名出现次数进行统计,并输出前15名。
注意:由于《三国演义》中许多人物都有重名,因此我们在统计人物出现次数时需要特别注意。