用python 水浒传-词频统计 描述 使用词频统计的方法,生成《水浒传》出场次数最多的10个人物的姓名。
时间: 2024-03-09 19:51:47 浏览: 238
好的,首先我们需要将《水浒传》的文本文件读入Python程序中。代码如下:
```python
with open('shuihuzhuan.txt', 'r', encoding='utf-8') as f:
txt = f.read()
```
然后,我们需要对文本进行分词处理。这里我们可以使用jieba库来进行中文分词。代码如下:
```python
import jieba
words = jieba.lcut(txt)
```
接下来,我们需要将分好的词进行统计,找到出现次数最多的前10个人名。这里我们可以使用Python的collections库中的Counter类。代码如下:
```python
from collections import Counter
name_list = ['林冲', '宋江', '吴用', '卢俊义', '公孙胜', '关胜', '秦明', '呼延灼', '花荣', '柴进']
name_count = Counter()
for word in words:
if word in name_list:
name_count[word] += 1
top10 = name_count.most_common(10)
```
最后,我们将结果输出即可:
```python
for i, item in enumerate(top10):
print('第{}名:{},出场{}次。'.format(i+1, item[0], item[1]))
```
完整代码如下:
```python
import jieba
from collections import Counter
name_list = ['林冲', '宋江', '吴用', '卢俊义', '公孙胜', '关胜', '秦明', '呼延灼', '花荣', '柴进']
name_count = Counter()
with open('shuihuzhuan.txt', 'r', encoding='utf-8') as f:
txt = f.read()
words = jieba.lcut(txt)
for word in words:
if word in name_list:
name_count[word] += 1
top10 = name_count.most_common(10)
for i, item in enumerate(top10):
print('第{}名:{},出场{}次。'.format(i+1, item[0], item[1]))
```
运行代码后,就可以得到出场次数最多的前10个人物的姓名了。
阅读全文