python三国演义人物出场统计txt文本_python实例:三国演义TXT文本词频分析

0x00 前言

找不到要写什么东西了!今天有个潭州大牛讲师  说了个  文本词频分析

我基本上就照抄了一遍

中间遇到一些小小的问题 自我百度 填坑补全了  如下 :

效果演示

0x01   准备环境及介绍

python3.x版本   随意

安装jieba库

pip install jieba

jieba三种模式:

1.精准模式 lcut函数,返回一个分词列表

2.全模式

3.搜索引擎模式

词频:

:的键值对

IPO描述 imput output process

输入 :从文件读取三国演义的内容

处理 :采用jiedb进行分词,字典数据结构统计词语出现的频率

输出 :文章中出现最对的前10个词

代码:

第一步:读取文件

第二步:分词

第三步:统计

第四步:排序

介绍完毕了!那么进入实战吧!

0x02 实战

完整代码如下:

1 importjieba2

3 content = open('三国演义.txt', 'r',encoding='utf-8').read()4 words =jieba.lcut(content)#分词

5 excludes={"将军"

  • 1
    点赞
  • 6
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
### 回答1: 段文本所在的章节和段落号。 (2) 另外设计一个程序,对三国演义文本文件进行分析,将其中包含“曹操”和“刘备”的多处的文本前20字到后20个字的文字都进行屏幕输出,并将其存放在一个“曹刘.txt”文件中。要求每行文本输出和存放文件前,加上该段文本所在的章节和段落号。 以下是第一个程序的Python实现: ```python import re # 打开文件 with open("三国演义.txt", "r", encoding="utf-8") as f: content = f.read() # 匹配包含“足智多谋”的段落 pattern = r"第.+?回\n\n(.{20}足智多谋.{20})" matches = re.findall(pattern, content, re.DOTALL) if matches: with open("足智多谋.txt", "w", encoding="utf-8") as f: for i, match in enumerate(matches): output = f"第{i+1}段:\n{match}\n\n" print(output) f.write(output) else: print("未找到匹配的段落") ``` 以下是第二个程序的Python实现: ```python import re # 打开文件 with open("三国演义.txt", "r", encoding="utf-8") as f: content = f.read() # 匹配包含“曹操”和“刘备”的段落 pattern = r"第.+?回\n\n(.{20}(?:曹操|刘备).{20})" matches = re.findall(pattern, content, re.DOTALL) if matches: with open("曹刘.txt", "w", encoding="utf-8") as f: for i, match in enumerate(matches): output = f"第{i+1}段:\n{match}\n\n" print(output) f.write(output) else: print("未找到匹配的段落") ``` ### 回答2: 设计一个程序来对三国演义文本文件进行分析,并提取所有包含成语“足智多谋”多处的文本的前20个字到后20个字的内容,并将其屏幕输出,并保存在一个名为“足智多谋.txt”的文件中。要求在每行文本输出和存储到文件之前,加上“该”。 下面是一个可能的程序实现方案: ```python import re def analyze_file(file_path): with open(file_path, 'r', encoding='utf-8') as file: text = file.read() matches = re.finditer(r'足智多谋', text) with open("足智多谋.txt", 'w', encoding='utf-8') as output_file: for match in matches: start_idx = match.start() end_idx = match.end() output = text[max(start_idx-20, 0):min(end_idx+20, len(text))] # 在每行文本输出和存储到文件之前加上“该” print("该" + output) output_file.write("该" + output + '\n') # 调用函数对三国演义文本进行分析 analyze_file('三国演义.txt') ``` 以上程序读取名为“三国演义.txt”的文本文件,使用正则表达式匹配所有出现的“足智多谋”成语,并提取前后20个字的内容。然后,将这些内容分别屏幕输出并写入新建的名为“足智多谋.txt”的文件中,前面加上“该”字。 ### 回答3: 设计一个程序,对三国演义文本文件进行分析,查找其中包含成语“足智多谋”的地方,并将每处文本的前20个字和后20个字进行屏幕输出和存放在一个名为“足智多谋.txt”的文件中。要求在每行文本输出和存放文件前,加上该。 以下是程序的简单实现: ``` import re # 打开三国演义文本文件 with open('三国演义.txt', 'r', encoding='utf-8') as file: content = file.read() # 查找包含成语“足智多谋”的地方 matched_text = re.findall(r'(.{0,20}足智多谋.{0,20})', content) # 输出和存储匹配到的文本 with open('足智多谋.txt', 'w', encoding='utf-8') as file: for text in matched_text: print("该文本:", text) # 屏幕输出 file.write("该文本:" + text + '\n') # 存放文件输出 ``` 该程序首先打开三国演义文本文件,然后使用正则表达式查找包含成语“足智多谋”的文本。利用re模块的findall函数,找到所有匹配该正则表达式的文本段落,并将它们存储在列表matched_text中。 然后,程序通过遍历列表,输出每个匹配到的文本段落前20个字和后20个字,并在屏幕上显示。同时,程序将它们追加到名为“足智多谋.txt”的文本文件中,每行前面都加上了“该文本:”前缀。 需要注意的是,程序中的文件名和编码格式需要根据实际情况进行修改。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值