基于关键词从txt中提取前后文本,找出频率较高的文本组合,python的代码怎么写
时间: 2023-03-30 11:03:09 浏览: 143
Python实现的文本关系抽取工具源代码,文本关系抽取结果为三元组,基于HanLP进行实体识别
5星 · 资源好评率100%
你好,关于你的问题,我可以回答。你可以使用Python中的正则表达式和字典来实现。具体步骤如下:
1. 读取txt文件,将文本内容存储在一个字符串中。
2. 使用正则表达式匹配关键词,并将匹配到的关键词及其前后文本存储在一个字典中。
3. 统计每个关键词及其前后文本在文本中出现的次数,并将结果存储在一个字典中。
4. 对于出现次数较高的文本组合,可以将它们输出到一个新的txt文件中。
以下是示例代码:
```python
import re
# 读取txt文件
with open('text.txt', 'r', encoding='utf-8') as f:
text = f.read()
# 定义关键词
keywords = ['关键词1', '关键词2', '关键词3']
# 定义存储关键词及其前后文本的字典
keyword_dict = {}
# 使用正则表达式匹配关键词,并将匹配到的关键词及其前后文本存储在字典中
for keyword in keywords:
pattern = re.compile(r'(.{,20}%s.{,20})' % keyword)
matches = pattern.findall(text)
keyword_dict[keyword] = matches
# 定义存储出现次数的字典
count_dict = {}
# 统计每个关键词及其前后文本在文本中出现的次数
for keyword in keywords:
count =
for match in keyword_dict[keyword]:
count += text.count(match)
count_dict[keyword] = count
# 找出出现次数较高的文本组合
high_freq_combinations = []
for keyword in keywords:
for match in keyword_dict[keyword]:
if count_dict[keyword] > 1 and text.count(match) > 1:
high_freq_combinations.append(match)
# 将结果输出到新的txt文件中
with open('result.txt', 'w', encoding='utf-8') as f:
for combination in high_freq_combinations:
f.write(combination + '\n')
```
希望这个回答能够帮到你!
阅读全文