我有一个使用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'}
我可以使用一些词性过滤来确保我只返回动词,但它们不会被适当地修饰。我可以得到“钻孔”、“钻孔”和“轮胎”。。。我怎么会“无聊”、“无聊”和“累”?或者,如果我做名词,如果我想要“孔”、“钻”或“轮胎”怎么办
(我将手动检查这些内容,因此意义现在不是问题。)
这是一项表面实现的任务。在引理化并找到合适的同义词后,您可以使用SimpleLg或您选择的另一个曲面实现器来改变引理。您需要做的是检查原始单词的词形变化类型(例如,第三人称过去),并使用surface Realization模块的功能恢复同义词
相关问题 更多 >
编程相关推荐