如何使用 NLTK Wordnet 获取更多同义词?

How to get more synonyms using NLTK Wordnet?

所以我使用这段代码来获取同义词。

from nltk.corpus import wordnet 

def Get_Syn(text):
    xx = []
    sentence1 = text.split(" ")
    for i in sentence1:
        if i not in stopwords:
            for syn in wordnet.synsets(i):
                for name in syn.lemma_names():
                      if name != i.lower():
                               xx.append({i:name}) 
                      else: 
                        pass
    return xx

现在,如果我使用 Get_Syn('recieve'),我会收到一个空列表(没有同义词)。但是,如果我使用 Get_Syn('get'),这是我得到的列表:

[{'get': 'acquire'},
 {'get': 'become'},
 {'get': 'go'},
 {'get': 'let'},
 {'get': 'have'},
 {'get': 'receive'},
 {'get': 'find'},
 {'get': 'obtain'},
     .
     .
     .
]

我们看到,recieveget的同义词,但是get不是recieve的同义词。

那我搜索recieve怎么才能得到get呢?有没有办法将两者映射在一起?

你的功能是正确的。 你有词汇错误来写接收。 收到有误请重新核对一下

Get_Syn('receive')

[
 {'receive': 'have'},
 {'receive': 'get'}, <===
 {'receive': 'find'},
 {'receive': 'obtain'},
 ...