2016-03-17 2 views
3

J'ai repéré quelques problèmes avec la hiérarchie de WordNet pour les verbes. Par exemple, a.lowest_common_hypernyms(wn.synset('love.v.02')) renvoie [].Hiérarchie des verbes NLTK WordNet

N'y a-t-il pas un ancêtre commun comme entity pour les verbes aussi?

Les verbes sont-ils même connectés à des noms dans la même hiérarchie?

+0

Belle question !! – alvas

Répondre

1

Pour trouver le haut hypernym de toute synset, utilisez la fonction Synset.root_hypernyms(), par exemple:

>>> from nltk.corpus import wordnet as wn 
>>> wn.synsets('car')[0].root_hypernyms() 
[Synset('entity.n.01')] 
>>> wn.synsets('love')[0].root_hypernyms() 
[Synset('entity.n.01')] 
>>> wn.synsets('love', 'v')[0].root_hypernyms() 
[Synset('love.v.01')] 

Il semble qu'il n'y a pas hypernym global/parapluie qui couvre tous les verbs, contrairement à nouns qui a couvert par entity.n.01:

>>> root_hypernyms_of_nouns = Counter(chain(*[ss.root_hypernyms() for ss in wn.all_synsets(pos='n')])) 
>>> len(root_hypernyms_of_nouns) 
1 
>>> root_hypernyms_of_nouns.items() 
[(Synset('entity.n.01'), 82115)] 

Mais vous pouvez essayer de parcourir tous les verbes, par exemple:

wn.all_synsets(pos='v') 

et essayer de trouver les plus haut hyperonymes pour les verbes (ce sera une liste assez importante):

>>> from collections import Counter 
>>> from itertools import chain 
>>> from collections import Counter 
>>> root_hypernyms_of_verbs = Counter(chain(*[ss.root_hypernyms() for ss in wn.all_synsets(pos='v')])) 
>>> root_hypernyms_of_verbs.most_common(10) 
[(Synset('change.v.01'), 1704), (Synset('change.v.02'), 1295), (Synset('act.v.01'), 1083), (Synset('move.v.02'), 1027), (Synset('make.v.03'), 659), (Synset('travel.v.01'), 526), (Synset('think.v.03'), 451), (Synset('transfer.v.05'), 420), (Synset('move.v.03'), 329), (Synset('connect.v.01'), 262)] 
>>> root_hypernyms_of_verbs.keys() # This will return all root_hypernyms. 

Visuwords a un graphique très joli interactif que vous pouvez utiliser pour regarder à travers la hiérarchie WordNet manuellement, http://visuwords.com/entity

+0

Merci pour la réponse! Cela me semblait vraiment bizarre, car il n'y a rien sur le sujet sur Internet, sauf dans certains articles académiques sur WordNet – yonilx

+1

Si nous regardons les définitions méta-physiques d'Aristote: http://plato.stanford.edu/entries/aristotle -métaphysique /, cela pourrait expliquer pourquoi le verbe n'a pas de «sens» parapluie – alvas

+0

Eventuellement, la différence est de savoir comment wordnet voit «choses» (c'est-à-dire arguments) vs «événements/actions» (ie prédicats) vs «descripteurs» (ie adjonctions/modificateurs) comme différents. Les arguments étant subsumables hiérarchiquement alors que les prédicats et les adjonctions sont hiérarchiques mais non subsumables. Il fait un peu suite à la métaphysique d'Aristote – alvas