У меня есть is_noun
определение с использованием nltk
:
is_noun = lambda pos: pos == 'NN' or pos == 'NNP' or pos == 'NNS' or pos == 'NNPS'
, затем у меня это в функции:
def test(text):
tokenized = nltk.word_tokenize(text)
nouns = [word for (word, pos) in nltk.pos_tag(tokenized) if is_noun(pos)]
print ('Nouns:', nouns)
return nouns
, затем я вызываю функцию:
test('When will this long and tedious journey ever end? Like all good')
и получить:
Nouns: ['journey']
затем вызвать ту же функцию, но с обратным предложением и получить:
test('good all Like end? ever journey tedious and long this will When')
результаты:
Nouns: ['end']
I Я ожидаю получить такое же количество существительных, но это не так. Что я делаю не так?