2015-12-17 2 views
2

Je veux obtenir tous les mots liés à la « nourriture » avec WordNetRécupérer tous les mots liés à une WordNet

import nltk 
from nltk.corpus import wordnet as wn 
food = wn.synsets('food') 

for synset in food: 
    for lemma in synset.lemmas(): 
     print lemma.name() 

Avec ce code, je suis arrivé ceci:

food 
nutrient 
food 
solid_food 
food 
food_for_thought 
intellectual_nourishment 

Ce que je suis en train pour atteindre est quelque chose comme ça

nourriture
-> solid_food
-> liquid_food
-> powder_food

Et quelque chose qui se passe et récursive comme
solid_food
-> Légumes
-> viande ...

En bref, je suis en train d'accéder à la hiérarchie des Wordnet d'un mot: «nourriture».
Comment puis-je faire cela, une idée?

Répondre

1

Vous pouvez explorer la hiérarchie en suivant la relation Hyponymy que vous prenez du terme général au terme spécifique:

hyponymie montre la relation entre les termes plus généraux (hyperonymes) et les instances plus spécifiques de celui-ci (hyponymes).

ref

>>> food[1].hyponyms() 
[Synset('fish.n.02'), Synset('slop.n.04'), Synset('coconut.n.01'), 
Synset('baked_goods.n.01'), Synset('yogurt.n.01'), Synset('breakfast_food.n.01'), Synset('seafood.n.01'), Synset('cheese.n.01'), Synset('pasta.n.02'), Synset('meat.n.01'), Synset('leftovers.n.01'), Synset('butter.n.01'), Synset('produce.n.01'), Synset('convenience_food.n.01'), Synset('fresh_food.n.01'), Synset('junk_food.n.01'), Synset('dika_bread.n.01'), Synset('loaf.n.02'), Synset('chocolate.n.02'), Synset('health_food.n.01')] 

continuer à utiliser des synonymes aussi.

+0

ce n'est pas exactement la hiérarchie que j'espérais trouver mais ce n'est pas votre faute;) – dooms