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

时间:2018-11-15 03:37:38

标签: python python-3.x word detect

我正在寻找一种创建多个列表的方法,并希望将这些列表中的关键字提取出来并与响应进行匹配。

用户输入:这是一个美好的一天,我要去慢跑

列表1:关键字:美好的一天,美好的一天,真棒的一天,最好的一天。 清单2:关键字:跑步,游泳,比赛。

但是对于庞大的单词数据库,可以将其仅链接到列表吗?还是需要特定的单词?

您还会为庞大的关键字数据库推荐Python吗?

1 个答案:

答案 0 :(得分:0)

要做的第一件事是将输入字符串分解为标记。令牌只是您要匹配的字符串的一部分。在您的情况下,令牌大小似乎是2个字(但不一定是2个字)。您可能还希望从输入字符串中删除所有标点符号。

然后,您输入的令牌是     [“这是”,“是”,“好”,“美好的一天”,“一天我”,“我是”,“我要去”,“要去”,“要去”,“要去” ,“慢跑”]

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

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))

您可能需要做的一件事就是优化列表1和列表2,而不是列表,而使用set

set1 = set(list1)

set提供O(1)查找,而不是列表O(n),这对于关键字列表很大的情况至关重要。