对于任何一个 NLP 流水线,如果想要对相同语义词根的不同拼写形式都做出统一回复的话,那么词形归并工具就很有用,它会减少必须要回复的词的数目,即语言模型的维度。利用词形归并工具,可以让模型更一般化,当然也可能带来模型精确率的降低,因为它会对同一词根的不同拼写形式一视同仁。
from nltk.stem import WordNetLemmatizer
lemmatizer = WordNetLemmatizer()
# 默认其为名词
print(lemmatizer.lemmatize("better") )
# 如果需要得到更精确的词元,需要告诉 WordNetLemmatizer 你感兴趣的词性是什么。
print(lemmatizer.lemmatize("better", pos="a") )
print(lemmatizer.lemmatize("good", pos="a") )
print(lemmatizer.lemmatize("goods", pos="a") )
print(lemmatizer.lemmatize("goods", pos="n") )
print(lemmatizer.lemmatize("goodness", pos="n") )
print(lemmatizer.lemmatize("best", pos="a"))