Python 在列表中插入用户输入

Python 在列表中插入用户输入,python,python-3.x,list,nltk,user-input,Python,Python 3.x,List,Nltk,User Input,我正在使用NLTK,我想找到所有包含给定关键字集的句子。例如,如果x中的“key\u word1”和“key\u word2”以及“key\u word3”,则当前是[x代表x在标记化\u中发送]。我想对其进行设置,以便用户可以输入任意数量的单词,这些单词可以设置为与这些关键字相等,这些关键字之间用和分隔 我尝试过插入user\u input\u list=['key\u word1','key\u word2']这样的方法,如果user\u input\u list[0]和user\u inp

我正在使用NLTK,我想找到所有包含给定关键字集的句子。例如,如果x中的“key\u word1”和“key\u word2”以及“key\u word3”,则当前是
[x代表x在标记化\u中发送]
。我想对其进行设置,以便用户可以输入任意数量的单词,这些单词可以设置为与这些关键字相等,这些关键字之间用
分隔

我尝试过插入
user\u input\u list=['key\u word1','key\u word2']
这样的方法,如果user\u input\u list[0]和user\u input\u list[1]在x]中发送
[x for x in tokenized\u,则会写入
[x for x]
,这很有效,但必须有更好的方法,特别是一种处理给定数量的单词的方法。谢谢。

您可以利用。将用户输入列表设置为一个集合,并查看它是否是关键字的子集

[x for x in tokenized_sent if set(user_input_list).issubset(x)]
你可以利用。将用户输入列表设置为一个集合,并查看它是否是关键字的子集

[x for x in tokenized_sent if set(user_input_list).issubset(x)]

我认为您可以使用all关键字:

[words for words in tokenized_如果全部发送([keywords in words for keywords in keywords])]

注意:语句中的第一个结果是布尔值,而第二个用于从列表中获取元素。

我认为您可以使用all关键字:

[words for words in tokenized_如果全部发送([keywords in words for keywords in keywords])]

注意:语句中的第一个结果是一个布尔值,而第二个用于从列表中获取元素。

使用
过滤器和
所有方法:

list(filter(lambda x: all(key in x for key in user_input_list), tokenized_sent))

使用
过滤器
所有方法:

list(filter(lambda x: all(key in x for key in user_input_list), tokenized_sent))

这回答了你的问题吗?这回答了你的问题吗?