如何在 python 中获取 WordNet 中的近义词

How to get the close words in WordNet in python

我按如下方式使用 WordNet 以使用 python 获取同义词集。

import nltk 
from nltk.corpus import wordnet
synonyms = []
for syn in wordnet.synsets("alzheimer"): 
    for l in syn.lemmas(): 
        synonyms.append(l.name())
print(set(synonyms))

但是,alzheimer 一词似乎不在 WordNet 中,因为我得到一个空的同义词集列表。然后,我尝试了不同的其他变体,例如 alzheimer diseasealzheimer's diseasealzheimersalzheimer'salzhemimers disease.

我的问题是;是否有可能在 WordNet 中得到接近单词 alzheimer 的单词,这样我就不需要手动验证 WordNet 中的术语来获取同义词集。

如果需要,我很乐意提供更多详细信息。

您可以从 wordnet 词汇表中的给定单词中找到相似的单词。

from nltk.corpus import wordnet as wn
wordnet_vocab = list(wn.all_lemma_names())

similar_string = 'alzheimer'
[word for word in wordnet_vocab if similar_string in word]
#op if exact word is not present,  you can get similar word which are present in wordnet vocab
["alzheimer's", "alzheimer's_disease", 'alzheimers']