Python 在wordnet中为所有孙子孙女获取祖父母的全名

Python 在wordnet中为所有孙子孙女获取祖父母的全名,python,nltk,wordnet,Python,Nltk,Wordnet,我想为一个单词创建一组备选单词。另一个词必须有适当的不同,所以用“dalmatian”代替“dog”太相似了——我想用“cat”代替“dog”。虽然不是绝对正确的,但我想我可以通过获取一个单词的超音词和该超音词的十个超音词(即祖父母的超音词集)并最终获取该祖父母的所有孙辈的单词来做到这一点 希望这是有道理的。在伪代码中,它应该是 for each i as hypernym (synset) for each j as i.hypernym get all the h

我想为一个单词创建一组备选单词。另一个词必须有适当的不同,所以用“dalmatian”代替“dog”太相似了——我想用“cat”代替“dog”。虽然不是绝对正确的,但我想我可以通过获取一个单词的超音词和该超音词的十个超音词(即祖父母的超音词集)并最终获取该祖父母的所有孙辈的单词来做到这一点

希望这是有道理的。在伪代码中,它应该是

for each i as hypernym (synset)
     for each j as i.hypernym
         get all the holonyms for j as s
              for each s get all the holonyms as x
                 print x

这可行吗?

您可以使用以太列表或字典来实现这一点(字典更像python)。 例如,对于字典,您有如下内容:

dictionnary={"dog": {"dalmatian","stuff"}, "singer": {"rihanna","eminem"}, "country": {"United states","England"}} 
print(dictionnary['dog'])
[out]:

set([u'black_hickory', u'black_walnut', u'Juglans_nigra', u'black_walnut_tree'])

set([u'battlefield', u'fair', u'infield', u'field_of_honor', u'field_of_battle', u'battleground', u'city', u'bowl', u'field', u'stadium', u'funfair', u'outfield', u'diamond', u'urban_area', u'populated_area', u'desert', u'arena', u'carnival', u'baseball_diamond', u'sports_stadium', u'ball_field', u'baseball_field'])

请注意wordnet的库存是有限的。特别是当你在寻找相距甚远的概念/引理关系时(即从synset的祖父到synset的全名)

OK。我想我没有正确地解释我自己。我想从wordnet语料库中做这件事,所以我想从这个语料库中得到替代词。这可行吗?
set([u'black_hickory', u'black_walnut', u'Juglans_nigra', u'black_walnut_tree'])

set([u'battlefield', u'fair', u'infield', u'field_of_honor', u'field_of_battle', u'battleground', u'city', u'bowl', u'field', u'stadium', u'funfair', u'outfield', u'diamond', u'urban_area', u'populated_area', u'desert', u'arena', u'carnival', u'baseball_diamond', u'sports_stadium', u'ball_field', u'baseball_field'])