统计《红楼梦》中前15位出场最多的人物用python完整表达
时间: 2023-12-31 14:05:38 浏览: 62
阳光 李志威 计概C大作业 - 基于Python的红楼梦人物分析.zip
好的,以下是完整的代码:
```python
# 导入必要的模块
import re
from collections import Counter
# 读取红楼梦文本
with open('hongloumeng.txt', 'r', encoding='utf-8') as f:
text = f.read()
# 定义人物名字的正则表达式
pattern = re.compile(r'[\u4e00-\u9fa5]{2,4}(?:·[\u4e00-\u9fa5]{2,4})?')
# 使用正则表达式匹配出文本中的人物名字
matches = pattern.findall(text)
# 统计人物出现次数
char_count = Counter(matches)
# 输出前15位出现最多的人物
for i, (name, count) in enumerate(char_count.most_common(15)):
print(f'{i+1}. {name}: {count}')
```
这里使用了Python的`collections`模块中的`Counter`类来进行出现次数的统计,代码更加简洁。同时,使用了正则表达式的`findall`方法来匹配文本中的人物名字,以避免手动编写复杂的字符串匹配规则。
阅读全文