【问题标题】:How can I detect multiple keywords in python string?如何检测python字符串中的多个关键字?
【发布时间】:2018-11-15 03:37:37
【问题描述】:

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

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

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

但是对于一个庞大的单词数据库,这可以只链接到列表吗?还是必须是特定的词?

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

【问题讨论】:

  • 嗨,欢迎来到 Stack Overflow。这个问题实在是太宽泛了,我们无法回答:如果您的问题集中在具体问题上并包含您解决问题的尝试,您将获得更好的帮助。

标签: python python-3.x word detect


【解决方案1】:

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

那么对于您的输入,您的令牌是 ['This is', 'is a', 'a good', 'good day', 'day I', 'I am', 'am heading', 'heading out', 'out for', 'for a' , '慢跑']

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

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,而不是列表使用sets。

set1 = set(list1)

sets 提供 O(1) 次查找,而列表则需要 O(n) 次查找,如果您的关键字列表很大,这很关键。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2014-08-02
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2017-05-21
    • 2021-12-19
    • 2018-07-14
    • 1970-01-01
    相关资源
    最近更新 更多