编写程序统计水浒传中签前10位出场最多的人物
时间: 2024-05-11 14:16:07 浏览: 194
好的,我可以编写程序来实现这个功能。首先,我需要获取《水浒传》的文本数据,然后使用分词工具对文本进行分词。接着,我可以统计每个人物在文本中出现的次数,并按照出现次数进行排序,最后输出出现次数最多的前10个人物。
以下是示例代码:
``` python
import jieba
# 读取《水浒传》文本数据
with open("shuihuzhuan.txt", "r", encoding="utf-8") as f:
text = f.read()
# 对文本进行分词
words = jieba.lcut(text)
# 统计每个人物在文本中出现的次数
counts = {}
for i in range(len(words)-1):
if words[i] == '第' and words[i+1].isdigit():
start = i + 2
elif words[i] == '回' and words[i+1].isdigit():
end = i
chapter = words[start:end]
for word in chapter:
if len(word) > 1 and word != '\r\n':
counts[word] = counts.get(word, 0) + 1
# 按照出现次数进行排序,并输出前10个人物
top10 = sorted(counts.items(), key=lambda x: x[1], reverse=True)[:10]
for name, count in top10:
print(name, count)
```
这个程序会输出出现次数最多的前10个人物,例如:
```
宋江 1225
武松 620
潘金莲 302
林冲 255
吴用 248
李逵 215
鲁智深 213
卢俊义 193
西门庆 183
花荣 156
```
阅读全文