python - 检查格式错误的字符串中的基本关键字和相关关键字
问题描述
我有以下数据:
base = ['Manufacturing', 'Aviation', 'Astronomy', 'Entertaiment', 'Defense & Security']
这些关键字也有相关的关键字:
related = {'Defense & Security': ['defense', 'security'],
'Entertaiment': ['soccer', 'sports', 'cinematography'] }
我想使用基本关键字及其相关关键字搜索一些文本。如果找到关键字之一或相关关键字,则应停止搜索并返回基本关键字。
即使单词之间没有空格,我也想搜索。例如:
keyword = 'Aviation'
search_in = 'detectorshigh intensity lampsbar codeaviation readerphotodiodesview'
if keyword.lower() in search_in.lower():
return True
上面的代码不会 return True
,因为某些单词之间不存在空格,但我希望它返回True
。
解决方案
这些方面应该做的事情:
def getKeywords(search_in, base, related):
lst=[]
for w in base:
if(w.lower() in search_in):
lst.append(w)
else:
for w_r in related.get(w, []):
if(w_r.lower() in search_in):
lst.append(w)
break
return lst
base = ['Manufacturing', 'Aviation', 'Astronomy', 'Entertaiment', 'Defense & Security']
related = {'Defense & Security': ['defense', 'security'],
'Entertaiment': ['soccer', 'sports', 'cinematography'] }
search_in = 'detectorshigh intensity lampsbar codeaviation readerphotodiodesview'
print(getKeywords(search_in, base, related))
#outputs: ['Aviation']
推荐阅读
- javascript - 处理 React 重新渲染
- amazon-web-services - 使用 for_each 在 Terraform 中创建多个别名记录
- python - 添加对消息的反应(discord.py)
- c# - 用于更改部分 GUI 的搜索词
- bash - 如何让 printf 以不同的方式处理从 bc 脚本传递的变量?
- python - 从 pandas 数据框列中删除编号、换行符、中断标记
- amazon-web-services - NoCredentialProviders:链中没有有效的提供者。已弃用。(DNS 控制)
- android - Moshi 应为 BEGIN_OBJECT 但为 BEGIN_ARRAY
- javascript - 无法返回子字符串值角度打字稿
- angular - 获取 Angular Material 单选按钮的选定状态