首先,您nltk.pos_tag()
无需培训即可直接使用。该函数将从文件中加载预训练的标记器。您可以使用以下命令查看文件名nltk.tag._POS_TAGGER
:
nltk.tag._POS_TAGGER
>>> 'taggers/maxent_treebank_pos_tagger/english.pickle'
在使用Treebank语料库进行训练时,它也使用Treebank标签集。
from nltk.corpus import wordnet
def get_wordnet_pos(treebank_tag):
if treebank_tag.startswith('J'):
return wordnet.ADJ
elif treebank_tag.startswith('V'):
return wordnet.VERB
elif treebank_tag.startswith('N'):
return wordnet.NOUN
elif treebank_tag.startswith('R'):
return wordnet.ADV
else:
return ''
然后可以将返回值与lemmatizer一起使用:
from nltk.stem.wordnet import WordNetLemmatizer
lemmatizer = WordNetLemmatizer()
lemmatizer.lemmatize('going', wordnet.VERB)
>>> 'go'
在将返回值传递给Lemmatizer之前,请先检查返回值,因为空字符串会产生KeyError
。