python - 如何在文本文件的相同段落中搜索多个关键字?
问题描述
我想在列表中搜索两个关键字的组合是否在要分析的文本的同一段落中。
例子:
我有一个文本文件并创建了两个由各种关键字组成的列表(list_a
和)。list_b
我想检查是否在我的文本的同一段落中找到了一个关键字和一个list_a
关键字list_b
(列表中的这些关键字中的哪一个无关紧要,重要的是一个关键字list_a
和一个关键字)。list_b
我尝试了以下方法:
- 我把我的文本文件分成几段
splitted_text = raw_text.split('\n\n')
- 我创建了一个函数:
def textContainsKeywords(text, target_words, second_target):
for target in target_words:
if target in text:
for target2 in second_target:
if target2 in second_target:
return True
return False
- 我调用函数如下:
target_words = ["residual income", "return on capital employed", "roce", "return on asset", "roa", "return on investment", "roi", "return on"]
second_target = ["weighted average costs of capital", "cost of capital", "cost of equity", "wacc"]
for paragraph in splitted_text:
if textContainsKeywords(paragraph, target_words, second_target)
print(paragraph)
如果我运行此代码,我总是收到仅包含“second_target”关键字而不是“second_target”和“target_words”的段落。有人有实现我目标的想法吗?
解决方案
def textContainsKeywords(text, target_words, second_target):
for target in target_words:
if target in text:
for target2 in second_target:
if target2 in text: #changes from second__target to text
return True
return False
对于您的问题,请尝试:
for paragraph in splitted_text:
a=bool(textContainsKeywords(paragraph,target_words, second_target))
if a:
print(paragraph)
推荐阅读
- javascript - Google 表格中的自定义文本限制
- python - 如何在python中的字符串中的每个字母之前添加一个点
- gnuplot - 努力将多个图表合并为一个并使用 Gnuplot 保持清晰
- javascript - 在 document.queryselector 中使用变量
- algorithm - 如何使用 Dijkstra 算法解决?
- opencv - 将 OpenCV/CMake 与 Clion 一起使用
- sql - 如何找出哪些 SQL 查询以编程方式利用了某个数据库中的表?
- react-native - 如何从 react-native-vector-icons 中删除不必要的字体?
- timestamp - 在众多文件中获取最新文件,然后重命名最新文件名,保留前 33 个字符
- javascript - 如何使用javascript在div标签中显示for循环的每个变量?