寻找反义词的WordNet替代方案有哪些?

3
我正在寻找一个资源,可以找到某些英语单词的反义词。WordNet本来是完美的选择,但它似乎在其数据库中没有很多反义词。我使用了Python模块“nltk”中的WordNet实现,从每个原始单词的每个同义词集合的引文中查找反义词。但它提供的单词数量不足。
for synset in wordnet.synsets(word):
   for lemma in synset.lemmas():
      if lemma.antonyms():
         antonyms.append(l.antonyms()[0].name())

例如,根据WordNet,单词“delete”的唯一反义词是“recover”。但在https://thesaurus.com等网站上,它提供了更多类似“add”、“restore”等的词语。

直觉上,我会说恢复是“删除”的语义上最合适的反义词。那么为什么不尝试找到您所拥有的反义词的同义词呢?或者使用一些语义相似度度量(简单的向量空间语义不足以处理反义词。也许嵌入?) - CLpragmatics
@CLpragmatics 是的,我同意那确实是最佳选择。但我也想要不完美的匹配。寻找WordNet列出的反义词的同义词是个好主意,我刚试过了,但遗憾的是不够好。我对嵌入式表示不太确定。这不会是另一个需要解决的挑战吗?因为它不会太准确。 - Dogemaester
我想你可以说它是与软件相关的领域。@CLpragmatics - Dogemaester
1
那么你的意思是与软件相关的技术表达领域?例如“文件”,“保存”,“另存为”,“导出”,“打开”等? - CLpragmatics
所以,值得一试的是使用spaCy的word2vec来比较语义相似性(300维向量之间的加权余弦)在一个你从WordNet中拥有的反义词语料库上,以找到与之相似的单词。你可以再次使用WordNet检查结果,检查这些候选词是否是该反义词的下位词或上位词。请告诉我您是否尝试过并且是否更成功,否则我将进行更多头脑风暴 :) - CLpragmatics
显示剩余2条评论
1个回答

0

我是Python软件包wordhoard的作者。您可以使用wordhoard生成反义词列表。下面的示例查询单词“delete”的反义词。

from wordhoard import Antonyms

antonym = Antonyms('delete').find_antonyms()
print(antonym)
['accept', 'add', 'allow', 'build', 'construct', 'create', 'dirty', 'enter', 'fuse', 'include', 'insert', 'issue', 'keep', 'make', 'put in', 'record', 'restore', 'stet', 'tape', 'unbalance', 'validate', 'welcome']


网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接