文本存在相同词汇,代码匹配结果为空 resul1 = abstract_march resul2 = list(keywords) for key in resul1: if key in resul2: matches.append(key) print(matches)
时间: 2024-04-16 10:27:04 浏览: 137
Alamofire源码解读系列(五)之结果封装(Resul
根据您提供的代码,您遇到的问题可能是由于匹配结果为空导致的。这可能是由于您正在比较的关键词在文本中的不同形式或大小写造成的。
为了解决这个问题,您可以尝试进行以下操作:
1. 规范化文本和关键词:在进行比较之前,将文本和关键词都转换为统一的形式,例如小写形式。这样可以确保大小写不会影响匹配结果。
```python
resul1 = [word.lower() for word in abstract_march] # 将文本中的单词转换为小写形式
resul2 = [word.lower() for word in keywords] # 将关键词转换为小写形式
```
2. 使用正则表达式进行匹配:使用正则表达式进行匹配时,可以使用一些模式来处理不同形式的关键词。例如,使用`\b`来匹配单词边界,以确保只匹配完整的单词。
```python
import re
matches = []
for key in resul1:
if any(re.search(r'\b{}\b'.format(re.escape(key)), word, re.IGNORECASE) for word in resul2):
matches.append(key)
print(matches)
```
上述代码中,我使用了`re.search()`函数来在关键词列表中搜索与当前单词匹配的项。使用`re.IGNORECASE`标志来忽略大小写。`re.escape()`函数用于转义关键词,以确保正则表达式的准确匹配。
请注意,以上代码只是一个示例,您可能需要根据您的具体需求进行适当的调整。希望这可以帮助您解决问题。如果您还有其他疑问,请随时提问。
阅读全文