NLTK: lemmatizer und pos_tag [duplizieren]
Diese Frage hat hier bereits eine Antwort:
wordnet Lemmatisierung und Pos Tagging in Python 6 answersIch baue einen Plaintext-Corpus und der nächste Schritt ist, alle meine Texte zu lemmatisieren. Ich benutze das WordNetLemmatizer und brauche das pos_tag für jedes Token, um das Problem, dass z.B. Lieben -> Lemma = Lieben und Lieben -> Lemma = Lieben ...
Das standardmäßige WordNetLemmatizer-POS-Tag ist n (= Nomen), denke ich, aber wie kann ich das pos_tag verwenden? Ich denke, die erwarteten WordNetLemmatizer-POS-Tag unterscheiden sich von den pos_tag, die ich bekomme. Gibt es eine Funktion oder etwas, das mir helfen kann?!?!
in dieser Zeile denke ich, das word_pos ist falsch und das ist der Fehlergrund
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)
Zusätzliche Frage: Reicht der pos_tag für meine Lemmatisierung aus oder brauche ich einen anderen Tagger? Meine Texte sind Texte ...