2016-07-20 6 views
1

Я периодически получаю AttributeError: 'Synset' object has no attribute 'lower'. Мой код, все в одном файле, генерирует ошибку:Как с помощью Python/NLTK/Wordnet можно избежать сообщения об ошибке?

Synset('book.n.01') 
[Synset('book.n.01')] 
Traceback (most recent call last): 
    File "./map", line 124, in <module> 
    print print_nodes(word) 
    File "./map", line 98, in print_nodes 
    result.append(print_nodes(synonym), indentation_level + 2 * 
    File "./map", line 88, in print_nodes 
    synonyms = wordnet.synsets(root) 
    File "/usr/local/lib/python2.7/site-packages/nltk/corpus/reader/wordnet.py", line 1416, in synsets 
    lemma = lemma.lower() 
AttributeError: 'Synset' object has no attribute 'lower' 

Начальное значение, как представляется, то, что я намеревался, Synset('book.n.01'). Когда он запускается, кажется, что он работает, как только думал, что соседи вытаскивают Wordnet, но это отдельная проблема.

В чем проблема с запуском 'Synset' object has no attribute 'lower' и как его исправить?

ответ

3

Я не уверен, что ваш код действительно выглядит или то, что вы пытаетесь сделать, но NLTK wordnet howto показывает, как создать synset, если вы уже знаете свой идентификатор:

>>> from nltk.corpus.reader import wordnet as wn 
>>> book = wn.synset("book.n.01") 
>>> book 
Synset('book.n.01') 
>>> book.examples() 
['I am reading a good book on economics'] 

Если это Безразлично Не стесняйтесь, пожалуйста, отредактируйте свой вопрос и добавьте действительный код python, который создает синхронизацию, которая дает вам проблемы.