Я посмотрел на книгу и сделал код, как это было в книге. Кстати, у меня следующая ошибка. Что я должен делать?
from nltk.stem import PorterStemmer, WordNetLemmatizer
sent = 'The laughs you two heard were triggered by memories
of his own high j-flying exits for moving beasts'
lemmatizer = WordNetLemmatizer()
words = lemmatizer.lemmatize(sent, pos = 'pos')
File "D:/machine_learning/nltk_mapper.py", line 24, in <module>
word = lemmatizer.lemmatize(words, pos='pos')
File "D:\machine_learning\venv\lib\site-packages\nltk\stem\wordnet.py", line 40, in lemmatize
lemmas = wordnet._morphy(word, pos)
File "D:\machine_learning\venv\lib\site-packages\nltk\corpus\reader\wordnet.py", line 1818, in _morphy
exceptions = self._exception_map[pos]
KeyError: 'pos'
Исходное значение результата состоит в том, чтобы печатать только значимые слова следующим образом:
['The', 'laugh', 'two', 'hear', 'trigger',
'memory', 'high', 'fly', 'exit', 'move', 'beast']
Спасибо
Я решил это. Я сослался на следующий URL. NLTK: лемматизатор и pos_tag
from nltk.tag import pos_tag
from nltk.tokenize import word_tokenize
from nltk.stem import WordNetLemmatizer
def lemmatize_all(sentence):
wnl = WordNetLemmatizer()
for word, tag in pos_tag(word_tokenize(sentence)):
if tag.startswith("NN"):
yield wnl.lemmatize(word, pos='n')
elif tag.startswith('VB'):
yield wnl.lemmatize(word, pos='v')
elif tag.startswith('JJ'):
yield wnl.lemmatize(word, pos='a')
# else:
# yield word
print(' '.join(lemmatize_all('The laughs you two heard were triggered by memories of his own high j-flying exits for moving beasts')))
результат --> смех слышен быть триггером памяти собственный высокий j-fly выход двигаться зверь
благодарю вас