Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/python/348.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/4/fsharp/3.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Python 如何获得与一个单词相关的相似单词?_Python_Nlp_Nltk_Gensim_Spacy - Fatal编程技术网

Python 如何获得与一个单词相关的相似单词?

Python 如何获得与一个单词相关的相似单词?,python,nlp,nltk,gensim,spacy,Python,Nlp,Nltk,Gensim,Spacy,我试图解决一个nlp问题,其中我有一个单词的dict,如: list_1={'phone':'android','chair':'netflit','charger':'macbook','laptop','sony'} 现在,如果输入是“phone”,我可以很容易地使用“in”操作符按键获取电话描述及其数据,但问题是输入是否类似于“phones”或“phones” 我想如果我输入'phone',我会得到这样的词 'phone' ==> 'Phones','phones','Phone'

我试图解决一个nlp问题,其中我有一个单词的dict,如:

list_1={'phone':'android','chair':'netflit','charger':'macbook','laptop','sony'}
现在,如果输入是“phone”,我可以很容易地使用“in”操作符按键获取电话描述及其数据,但问题是输入是否类似于“phones”或“phones”

我想如果我输入'phone',我会得到这样的词

'phone' ==> 'Phones','phones','Phone','Phone's','phone's' 
我不知道我可以使用哪个word2vec,哪个nlp模块可以提供这样的解决方案

第二个问题是,如果我给一个单词“Dog”,我能得到像“Puppy”、“Kitty”、“Dog”、“Dog”这样的单词吗

我试过类似的方法,但它的同义词是:

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')
相反,我想要:

'phone' ==> 'Phones','phones','Phone','Phone's','phone's' 
WordNet索引的是概念(即语法集),而不是单词

使用
lemma\u 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含义不完全相同

WordNet索引的是概念(即语法集),而不是单词

使用
lemma\u 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含义不完全相同


这个答案没有回答第二个问题,是吗?第二个问题是什么;P“第二个问题是,如果我给一个单词‘Dog’,我能得到像‘Puppy’、‘Kitty’、‘Dog’、‘Dog’等这样的单词吗?”基本上是如何得到一个最相似的单词的列表,提供初始单词作为输入-根据标题的问题。这个答案没有解决第二个问题,是吗?第二个问题是什么;P“第二个问题是,如果我给一个单词‘Dog’,我能得到像‘Puppy’、‘Kitty’、‘Dog’、‘Dog’等这样的单词吗?”基本上是如何得到一个最相似的单词的列表,提供初始单词作为输入-根据标题的问题。