如何得到与一个词相关的相似词?

2024-09-30 16:22:16 发布

您现在位置:Python中文网/ 问答频道 /正文

我要解决的问题是:

list_1={'phone':'android','chair':'netflit','charger':'macbook','laptop','sony'}

现在,如果输入是“phone”,我可以很容易地使用“in”操作符通过键来获取电话及其数据的描述,但问题是输入是否类似于“phones”或“phones”。在

我想如果我输入'phone'然后我会得到像

^{pr2}$

我不知道我可以使用哪个word2vec,哪个nlp模块可以提供这样的解决方案。在

第二个问题是,如果我给一个词'狗',我能得到'小狗','小猫','狗','狗'等词吗?在

我试过类似的方法,但它给出了同义词:

from nltk.corpus import wordnet as wn
for ss in wn.synsets('phone'): # Each synset represents a diff concept.
    print(ss)

但它的回归:

Synset('telephone.n.01')
Synset('phone.n.02')
Synset('earphone.n.01')
Synset('call.v.03')

相反,我想要:

^{pr2}$

Tags: inphonesslistandroidmacbooklaptopsynset
1条回答
网友
1楼 · 发布于 2024-09-30 16:22:16

WordNet索引概念(又称Synsets)而不是单词。在

使用lemma_names()访问WordNet中的根单词(又称Lemma)。在

>>> from nltk.corpus import wordnet as wn
>>> for ss in wn.synsets('phone'): # Each synset represents a diff concept.
...     print(ss.lemma_names())
... 
['telephone', 'phone', 'telephone_set']
['phone', 'speech_sound', 'sound']
['earphone', 'earpiece', 'headphone', 'phone']
['call', 'telephone', 'call_up', 'phone', 'ring']

引理作为词根形式或单词不应该有额外的词缀,这样你就不会在你想要的单词列表中找到单词的复数形式或不同形式。

另请参见:

此外,单词是模棱两可的,可能需要通过上下文或词类(POS)来消除歧义,然后才能得到“相似”的单词,例如,你看到动词意义中的“phone”与“名词”中的phone的含义不完全相同。在

^{pr2}$

相关问题 更多 >