NLTK:词形还原器和 pos_tag
NLTK: lemmatizer and pos_tag
我建立了一个纯文本语料库,下一步是对我所有的文本进行词形还原。我正在使用 WordNetLemmatizer 并且每个标记都需要 pos_tag 以避免出现问题,例如爱 -> 引理 = 爱与爱 -> 引理 = 爱...
我认为默认的 WordNetLemmatizer-POS-Tag 是 n(=名词),但我如何使用 pos_tag?我认为预期的 WordNetLemmatizer-POS-Tag 与我得到的 pos_tag 不同。有什么功能可以帮助我吗?!?!
in this line i think the word_pos is wrong and that's the error-reason
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 是否足以进行词形还原或需要另一个标注器?我的文字是歌词...
您需要将标签从 pos_tagger 转换为 wordnet 可识别的四个 "syntactic categories" 之一,然后将其作为 word_pos 传递给词形还原器。
来自the docs:
Syntactic category: n for noun files, v for verb files, a for adjective files, r for adverb files.
我建立了一个纯文本语料库,下一步是对我所有的文本进行词形还原。我正在使用 WordNetLemmatizer 并且每个标记都需要 pos_tag 以避免出现问题,例如爱 -> 引理 = 爱与爱 -> 引理 = 爱...
我认为默认的 WordNetLemmatizer-POS-Tag 是 n(=名词),但我如何使用 pos_tag?我认为预期的 WordNetLemmatizer-POS-Tag 与我得到的 pos_tag 不同。有什么功能可以帮助我吗?!?!
in this line i think the word_pos is wrong and that's the error-reason
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 是否足以进行词形还原或需要另一个标注器?我的文字是歌词...
您需要将标签从 pos_tagger 转换为 wordnet 可识别的四个 "syntactic categories" 之一,然后将其作为 word_pos 传递给词形还原器。
来自the docs:
Syntactic category: n for noun files, v for verb files, a for adjective files, r for adverb files.