我正在寻找一种创建多个列表的方法,并希望将这些列表中的关键字提取出来并与响应进行匹配。
用户输入:这是一个美好的一天,我要去慢跑。
列表1:关键字:美好的一天,美好的一天,真棒的一天,最好的一天。 清单2:关键字:跑步,游泳,比赛。
但是对于庞大的单词数据库,可以将其仅链接到列表吗?还是需要特定的单词?
您还会为庞大的关键字数据库推荐Python吗?
答案 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),这对于关键字列表很大的情况至关重要。