Python 在列表中插入用户输入
我正在使用NLTK,我想找到所有包含给定关键字集的句子。例如,如果x中的“key\u word1”和“key\u word2”以及“key\u word3”,则当前是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
[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))
这回答了你的问题吗?这回答了你的问题吗?