实验要求2: 1、实现对中文文本文件的读取(三国演义.txt); 2、实现对中文文本文件的单词抽取; 3、实现对中文文本文件中出现频次最高的前10个词语的抽取,并降序输出; 4、(选做)实现对中文文本文件中出现频次最高的前5个人物的抽取,并降序输出;(提示:该实验需要安装jieba库, 安装命令: pip install -U jieba --user) 请独立完成该实验。 实验报告写作要点: 写出整个实验的的基本步骤,辅以相应文字说明,并提交相应的源代码.py文件。将创建的程序运行结果截图,分析讨论实验过程中的心得与体会。
时间: 2024-02-23 16:57:55 浏览: 19
下面是实验要求2的完整Python代码,实现了对中文文本文件的读取、单词抽取、对中文文本文件中出现频次最高的前10个词语的抽取及降序输出、对中文文本文件中出现频次最高的前5个人物的抽取及降序输出。
```python
import jieba
from collections import Counter
# 读取文件
with open('三国演义.txt', 'r', encoding='utf-8') as file:
text = file.read()
# 单词抽取
words = jieba.cut(text)
# 统计词语出现次数
word_count = Counter(words)
# 排序并输出前10个词语及其出现次数
sorted_word_count = sorted(word_count.items(), key=lambda item: item[1], reverse=True)
print('Top 10 words:')
for i in range(10):
print(sorted_word_count[i][0], sorted_word_count[i][1])
# 提取人物
with open('人物.txt', 'r', encoding='utf-8') as file:
characters = file.read().splitlines()
character_count = {}
for character in characters:
character_count[character] = 0
for word in jieba.cut(text):
if word in character_count:
character_count[word] += 1
# 排序并输出前5个人物及其出现次数
sorted_character_count = sorted(character_count.items(), key=lambda item: item[1], reverse=True)
print('Top 5 characters:')
for i in range(5):
print(sorted_character_count[i][0], sorted_character_count[i][1])
```
在上面的代码中,我们首先使用jieba库进行中文单词抽取,并统计词语出现次数,使用Python内置的Counter类进行统计,并进行降序排序。然后,我们提取出所有人物名字,并遍历文本中的单词,统计人物出现次数。最后,我们同样进行降序排序,并输出前5个人物及其出现次数。
在实验过程中,需要注意jieba库的安装和使用,以及中文文本的编码问题。同时,需要对提取的人物名字进行筛选和去重,以避免重复统计。