python - NLTK 单词词形还原

标签 python nlp nltk stemming lemmatization

我正在尝试使用 NLTK 对单词进行词形还原。

我现在能找到的是,我可以使用 stem 包来获得一些结果,例如将“cars”转换为“car”,将“women”转换为“woman”,但是我不能进行词形还原在某些带有词缀的单词上,例如“确认”。

在“确认”上使用 WordNetLemmatizer() 时,它返回“确认”,而使用 .PorterStemmer() 时,它返回“确认”而不是“确认”。

谁能告诉我怎么去掉词缀?
比如说,当输入是“确认”时,输出是“确认”

最佳答案

词形还原不会(也不应该)为“确认”返回“确认”。前者是动词,后者是名词。另一方面,波特的词干提取算法只使用一组固定的规则。因此,您唯一的方法就是从源头上更改规则。 (不是解决问题的正确方法)。

您正在寻找的是“确认”的派生相关形式,为此,您最好的来源是 WordNet。你可以查看这个online on 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')]

关于python - NLTK 单词词形还原,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/17684186/

相关文章:

artificial-intelligence - 用人工智能防止垃圾邮件

python - 使用 "nltk.word_tokenize()"函数时出错

machine-learning - 使用 TextBlob 进行文本分类

python - 具有本地化日期时间索引的数据框 : how to drop days not having a given time

python - 2.x 中 python 类样式的建议是什么,最终更新到 3.x

Python - 缺少模块

python - Tensorflow 2.0 拥抱人脸变压器、TFBertForSequenceClassification、推理中意外的输出维度

python - 如何提取 WordNet 同义词集的偏移量以在 Python NLTK 中提供同义词集?

python - 用于情感提取的python代码中的nltk

python - 根据 pandas 中第二个数据帧的列值从一个数据帧中删除列