Пожалуйста, дайте мне пример. У меня есть атрибут 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
благодаря
Используйте встроенную функцию 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
его атрибутов.
Вы можете проверить глоссарий 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