用Python进行简单文本挖掘: (1)选用合适的方法, 读取给定天龙八部.txt 文档 (2)请找出主要角色的首次出场时间,可由字符出现位置表示 【主要角色:乔峰、段誉、虚竹、阿朱、阿紫、慕容复、王语嫣、段正淳、木婉清、鸠摩智、 游坦之、丁春秋、钟灵、包不同、马夫人、阿碧、段延庆、玄慈、云中鹤、叶二娘、苏星河、 李秋水、天山童姥、扫地僧、阮星竹、甘宝宝、秦红棉、刀白凤、梦姑】 (3)请统计上述主要人物的出现次数 (4)请计算上述主要人物多久后下线(最后一次出现与第一次出现字符位置之差) (5)将上述四列信息(人物名称、首次出现位置、出现次数、出场时间长度)存入.csv 文件
时间: 2023-07-10 21:41:29 浏览: 114
答:好的,我会按照您的要求进行文本挖掘。以下是代码实现:
```python
import re
import csv
# 读取文本文件
with open('天龙八部.txt', 'r', encoding='utf-8') as f:
text = f.read()
# 角色列表
roles = ['乔峰', '段誉', '虚竹', '阿朱', '阿紫', '慕容复', '王语嫣', '段正淳', '木婉清', '鸠摩智',
'游坦之', '丁春秋', '钟灵', '包不同', '马夫人', '阿碧', '段延庆', '玄慈', '云中鹤',
'叶二娘', '苏星河', '李秋水', '天山童姥', '扫地僧', '阮星竹', '甘宝宝', '秦红棉', '刀白凤', '梦姑']
# 首次出现位置字典
first_appearances = {}
# 出现次数字典
appearances_count = {}
# 最后出现位置字典
last_appearances = {}
for role in roles:
# 找出每个角色首次出现的位置
first_appearances[role] = text.find(role)
# 统计每个角色出现的次数
appearances_count[role] = len(re.findall(role, text))
# 找出每个角色最后一次出现的位置
last_appearances[role] = text.rfind(role)
# 计算每个角色出场时间长度
time_length = {}
for role in roles:
time_length[role] = last_appearances[role] - first_appearances[role]
# 将四列信息以csv格式保存到文件
with open('角色信息.csv', 'w', newline='', encoding='utf-8-sig') as f:
writer = csv.writer(f)
writer.writerow(['人物名称', '首次出现位置', '出现次数', '出场时间长度'])
for role in roles:
writer.writerow([role, first_appearances[role], appearances_count[role], time_length[role]])
print('文件已保存')
```
这段代码实现了您的所有要求,并且将结果以CSV格式保存在了名为“角色信息.csv”的文件中。
阅读全文