首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >如何检测python字符串中的多个关键字?

如何检测python字符串中的多个关键字?
EN

Stack Overflow用户
提问于 2018-11-15 03:37:37
回答 1查看 873关注 0票数 0

我正在寻找一种方法来创建多个列表,并在这些列表中的关键字被提取和匹配的一个响应。

用户输入:这是一个万岁,我要去,一个慢跑

关键词1:好的一天,好的一天,最棒的一天,最好的一天。列表2:关键词:跑步,游泳,游戏。

但是对于一个庞大的词汇数据库来说,这能和清单联系起来吗?或者它需要是特殊的词?

另外,您会推荐Python作为一个庞大的关键字数据库吗?

EN

回答 1

Stack Overflow用户

发布于 2018-11-15 04:12:27

要做的第一件事是将输入字符串分解为令牌。令牌只是您想要匹配的字符串的一部分。在您的示例中,您的令牌大小看起来是两个字(但不必是这样)。您也可能希望从输入字符串中删除所有标点符号。

那么,作为你的输入,你的标记是“这是”,“是”,“好的”,“好的一天”,“我是”,“我在”,“我要去”,“出去”,“出去”,“为了”,“慢跑”。

然后,您可以遍历这些令牌,并检查它们是否包含在每个列表中。可能是这样的:

代码语言:javascript
复制
input = 'This is a good day I am heading out for a jog'
words = input.split(' ')
tokens = [' '.join(words[i:i+2]) for i in range(len(words) - 1)]
for token in tokens:
  if token in list1:
    print('{} is in list1'.format(token))
  if token in list2:
    print('{} is in list2'.format(token))

为了优化这一点,您可能要做的一件事是使用sets来实现list1和list2,而不是使用列表。

代码语言:javascript
复制
set1 = set(list1)

set为lists提供了O(1)查找,而不是O(n),如果关键字列表很大,这是至关重要的。

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/53312075

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档