nob*_*ben 4 python nlp stemming nltk lemmatization
我试图用词语进行词形还原NLTK.
我现在能找到的是,我可以使用这个stem包得到一些结果,比如将"汽车"改为"汽车",将"女人"改为"女人",但是我不能用"确认"等词缀对某些词进行词形还原.
当使用WordNetLemmatizer()"确认"时,它返回"确认"并使用.PorterStemmer(),它返回"确认"而不是"确认".
谁能告诉我如何消除词语的词缀?
比如,当输入为"确认"时,输出为"确认"
词形还原不会(也不应该)为"确认"返回"确认".前者是动词,而后者是名词.另一方面,波特的词干算法只使用一组固定的规则.所以,你唯一的办法是在源头改变规则.(不是解决问题的正确方法).
您正在寻找的是衍生相关的"确认"形式,为此,您的最佳来源是WordNet.您可以在WordNet上在线查看.
您可以使用相当多的基于WordNet的库(例如,在Java 中的JWNL中).在Python中,NLTK应该能够获得您在线看到的与派生相关的形式:
from nltk.corpus import wordnet as wn
acknowledgment_synset = wn.synset('acknowledgement.n.01')
acknowledgment_lemma = acknowledgment_synset.lemmas[1]
print(acknowledgment_lemma.derivationally_related_forms())
# [Lemma('admit.v.01.acknowledge'), Lemma('acknowledge.v.06.acknowledge')]
Run Code Online (Sandbox Code Playgroud)