NLTK Python 3 如果用户输入中有名词,如何返回 true?



我正在使用nltk,下面显示的此方法应该可以正常工作,它应该打印"找到名词" 如果输入中有名词。问题是它没有,有人可以展示吗 我怎么做谢谢!

NOUN_CODES = {
'NN',  # Noun, base form
'NNP',  
'NNS',  
'NNPS',
def Command_Noun_Check(what_person_said_l,what_person_said_l_wt):
Command_Noun_Result = nltk.pos_tag(what_person_said_l_wt)
print (Command_Noun_Result)
for x in Command_Noun_Result:
if x in NOUN_CODES:
print ("Noun Found")
return True
else:
return False

这个简单的函数应该返回句子中的所有名词。请记住,nltk.pos_tag要求对句子进行标记化,nltk.pos_tag返回的值是一个元组数组。

import nltk
from nltk.tokenize import word_tokenize as wt
NOUN_CODES = ['NN', 'NNP'] # input any codes you want here
def check_nouns(sentence):
tokenized = wt(sentence)
tags = nltk.pos_tag(tokenized)
return [i[0] for i in tags if i[1] in NOUN_CODES]

在您的代码中,我假设what_person_said_l_wt被标记化。在这种情况下,我将按以下方式修改它(使用更好的格式并记住缩进(:

NOUN_CODES = ['NN','NNP','NNS','NNPS']
def Command_Noun_Check(what_person_said_l,what_person_said_l_wt):
Command_Noun_Result = nltk.pos_tag(what_person_said_l_wt)
print (Command_Noun_Result)
for x in Command_Noun_Result:
if x[1] in NOUN_CODES:
print ("Noun Found")
return True
else:
return False

最新更新