【发布时间】:2019-12-06 17:35:26
【问题描述】:
我有一个使用 NLTK 和 WordNet 将单词替换为同义词的脚本。据我所知,通过词形还原来找到同义词的最有效方法,但这会消除过程中的共轭。
例如,假设我想将“无聊”替换为“钻孔”...
word = 'bored'
syns = []
wordNetSynset = wn.synsets(word)
for synSet in wordNetSynset:
for w in synSet.lemma_names():
syns.append(w)
set(syns)
输出:
{'blase', 'bore', 'bored', 'drill', 'tire', 'world-weary'}
我可以使用一些 POS 过滤来确保我只返回动词,但它们不会被适当地共轭。我可以得到“无聊”,“钻头”和“轮胎”......我如何得到“无聊”,“钻头”和“疲倦”?或者,如果我做名词,如果我想要“bores”、“drills”或“tires”怎么办?
(我将手动检查这些,所以现在意义不是问题。)
【问题讨论】:
-
我不确定 NLTK 是否有简单的方法来做到这一点。您可以使用Lemminflect(我的项目)并让它根据原始单词的 Penn-Treebank 标记来变形同义词。
标签: python nlp nltk wordnet lemmatization