用Python统计水浒传.txt前五名人物及出场次数,按词出现的次数排序
时间: 2024-10-25 15:15:32 浏览: 52
在Python中,我们可以使用内置模块`collections`中的`Counter`来统计文本文件中每个词语(这里我们假设"人物名字"就是词语)的出现次数,然后通过`most_common()`方法获取出现频率最高的前几个。对于《水浒传》这样的大文件,为了处理效率,可以逐行读取而不是一次性加载整个文件。
以下是简单的步骤:
1. 首先,导入需要的库:
```python
import re
from collections import Counter
```
2. 然后打开并读取文件,每次只读一行,用正则表达式提取人物名(这只是一个简化示例,实际需要根据小说内容调整正则表达式):
```python
with open('水浒传.txt', 'r', encoding='utf-8') as file:
pattern = r"人物名" # 替换为你找到的人物名识别模式
lines = file.readlines()
names = [re.findall(pattern, line) for line in lines]
```
3. 使用`Counter`统计人物名称及其出现次数:
```python
name_counts = Counter(flatten(names))
```
`flatten`是一个辅助函数,用于将二维列表展平成一维,因为我们得到了的是每个字符串对应每一行的所有匹配结果:
```python
def flatten(lst):
return [item for sublist in lst for item in sublist]
```
4. 获取前五名人物及其出场次数:
```python
top_five = name_counts.most_common(5)
```
5. 输出结果:
```python
for name, count in top_five:
print(f"{name}: {count}次")
```
阅读全文