NLTK: лемматизатор и pos_tag [дубликаты]

На этот вопрос уже есть ответ здесь:

лемматизация в Wordnet и теги pos в python 6 ответов

Я создаю текстовый корпус, и следующим шагом является лемматизация всех моих текстов. Я используюWordNetLemmatizer и нужноpos_tag для каждого токена, чтобы не получить проблему, например, любить -> лемма = любить и любить -> лемма = любить ...

Я думаю, что по умолчанию WordNetLemmatizer-POS-Tag - это n (= существительное), но как я могу использовать pos_tag? Я думаю, что ожидаемый WordNetLemmatizer-POS-Tag отличается от pos_tag, который я получаю. Есть ли функция или что-то, что может мне помочь?!?!

в этой строке я думаю, что word_pos неправильно, и это причина ошибки

lemma = wordnet_lemmatizer.lemmatize (word, word_pos)

import nltk
from nltk.corpus import PlaintextCorpusReader
from nltk import sent_tokenize, word_tokenize, pos_tag
from nltk.stem import WordNetLemmatizer
wordnet_lemmatizer = WordNetLemmatizer()

corpus_root = 'C:\\Users\\myname\\Desktop\\TestCorpus'
lyrics = PlaintextCorpusReader(corpus_root,'.*')

for fileid in lyrics.fileids():
     tokens = word_tokenize(lyrics.raw(fileid))
     tagged_tokens = pos_tag(tokens)
     for tagged_token in tagged_tokens:
         word = tagged_token[0]
         word_pos = tagged_token[1]
         print(tagged_token[0])
         print(tagged_token[1])
         lemma = wordnet_lemmatizer.lemmatize(word,pos=word_pos)
         print(lemma)

Дополнительный вопрос: Достаточно ли pos_tag для моей лемматизации или нужен другой тегер? Мои тексты - лирика ...

Ответы на вопрос(1)

Ваш ответ на вопрос