Как я могу получить все атрибуты Synsets? - PullRequest
1 голос
/ 12 июля 2011

Пожалуйста, дайте мне пример, у которого есть все атрибуты synset слова я знаю только этот атрибут: name, lemma_names, definition

synsetsWord = ObjWn.synsets( 'Book' )
        i = 0 
        for senseWord in synsetsWord:
            synsetsWord[i] = senseWord.name
            print 'Sense Lema Name: ' , senseWord.lemma_names
            print 'Sense Definition : ' , senseWord.definition
            i = i + 1

спасибо

Ответы [ 2 ]

4 голосов
/ 12 июля 2011

Используйте встроенную функцию dir() в интерпретаторе.

Вот пример:

Python 2.6.5 (r265:79063, Apr 16 2010, 13:09:56)
[GCC 4.4.3] on linux2
Type "help", "copyright", "credits" or "license" for more information.
>>> import itertools
>>> help(itertools)

>>> dir(itertools.chain)
['__class__', '__delattr__', '__doc__', '__format__', '__getattribute__', '__hash__', '__init__', '__iter__', '__new__', '__reduce__', '__reduce_ex__', '__repr__', '__setattr__', '__sizeof__', '__str__', '__subclasshook__', 'from_iterable', 'next']

Вы можете предоставить любой объект dir(), чтобы получить list его атрибутов.

2 голосов
/ 10 июля 2014

Вы можете проверить глоссарий WordNet для терминов - они перечисляют довольно много атрибутов там.Его можно найти здесь: Глоссарий WordNet

Если я правильно понимаю ваш вопрос, что-то подобное может также сработать.Здесь 'nyms' перечисляет все атрибуты, которые может иметь синтаксис, и try-catch будет обрабатывать любые случаи, когда у синтаксиса нет таких атрибутов.

Некоторые атрибуты применимы только к леммам, но не к синтаксисам, поэтому вы можете использовать один и тот же код, но заменить синтаксисы на леммы, чтобы получить такие атрибуты, как антонимы, производные_related_forms и pertainyms.

for synset in (wn.synsets('dog')):
        print synset
        nyms = ['hypernyms', 'hyponyms', 'meronyms', 'holonyms', 'part_meronyms', 'sisterm_terms', 'troponyms', 'inherited_hypernyms']
        for i in nyms:
            try:
                print getattr(synset, i)()
            except AttributeError as e: 
                print e
                pass
...