Как я могу получить все атрибуты Synsets?

1

Пожалуйста, дайте мне пример. У меня есть атрибут synset слова, lemma_names я знаю только этот атрибут: 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

благодаря

Теги:
nltk
wordnet
stemming

2 ответа

4
Лучший ответ

Используйте встроенную функцию 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 его атрибутов.

  • 0
    Спасибо за Ваш ответ
  • 0
    Пожалуйста.
1

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

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

Некоторые атрибуты применимы только к леммам, а не к synsets, поэтому вы можете использовать один и тот же код, но заменять synsets с помощью лемм, чтобы получить атрибуты, такие как антонимы, деривационно-зависимые_формы и перрантимы.

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

Ещё вопросы

Сообщество Overcoder
Наверх
Меню