如何使用 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'},
.
.
.
]
我们看到,recieve
是get
的同义词,但是get
不是recieve
的同义词。
那我搜索recieve
怎么才能得到get
呢?有没有办法将两者映射在一起?
你的功能是正确的。
你有词汇错误来写接收。
收到有误请重新核对一下
Get_Syn('receive')
[
{'receive': 'have'},
{'receive': 'get'}, <===
{'receive': 'find'},
{'receive': 'obtain'},
...
所以我使用这段代码来获取同义词。
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'},
.
.
.
]
我们看到,recieve
是get
的同义词,但是get
不是recieve
的同义词。
那我搜索recieve
怎么才能得到get
呢?有没有办法将两者映射在一起?
你的功能是正确的。 你有词汇错误来写接收。 收到有误请重新核对一下
Get_Syn('receive')
[
{'receive': 'have'},
{'receive': 'get'}, <===
{'receive': 'find'},
{'receive': 'obtain'},
...