NLTK: lemmatizer y pos_tag [duplicado]

Esta pregunta ya tiene una respuesta aquí:

lematización de wordnet y etiquetado pos en python 6 respuestas

Construyo un Corpus de texto plano y el siguiente paso es lematizar todos mis textos. Estoy usando elWordNetLemmatizer y necesita elpos_tag para cada token para no obtener el problema que, p. amar -> lemma = amar y amar -> lemma = amar ...

El WordNetLemmatizer-POS-Tag predeterminado es n (= Sustantivo), creo, pero ¿cómo puedo usar la pos_tag? Creo que el WordNetLemmatizer-POS-Tag esperado es diferente al pos_tag que obtengo. ¿Hay alguna función o algo que me pueda ayudar?

en esta línea creo que word_pos está mal y esa es la razón del error

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)

Pregunta adicional: ¿Pos_tag es suficiente para mi lematización o necesito otro etiquetador? Mis textos son letras ...

Respuestas a la pregunta(1)

Su respuesta a la pregunta