2015-10-04 3 views
4

после установки nltk i import nltk, а затем использовать nltk.download(), но когда я пытаюсь использовать это «из nltk.book import», он показывает ошибку атрибута. от nltk.corpus импорта * и от NLTK импорта * отлично работаетAttributeError: невозможно установить атрибут из nltk.book import *

Я новичок в обработке естественного языка, так что я не знаю много об этом, пожалуйста, помогите

от импорта nltk.book * * Вводные Примеры NLTK Книга *

Загрузка text1, ..., text9 и sent1, ..., sent9

Введите название текста или предложения для его просмотра.

Тип: 'text()' или 'sents()', чтобы перечислить материалы.

Обратное прослеживание (самый последний вызов последнего):

Файл "", линия 1, в

from nltk.book import * 

Файл «C: \ Program Files (x86) \ Python 3,5 \ Lib \ сайт-пакеты \ NLTK \ book.py», линия 19, в

text1 = Text(gutenberg.words('melville-moby_dick.txt')) 

Файл "C: \ Program Files (x86) \ Python 3.5 \ Lib \ сайта-пакеты \ NLTK \ text.py", строка 295, в init

tokens = list(tokens) 

Файл "C: \ Program Files (x86) \ Python 3.5 \ Lib \

сайт-

пакеты \ NLTK \ мозолистого \ читатель \ util.py", строка 233, в Len

for tok in self.iterate_from(self._toknum[-1]): pass 

Файл "C: \ Program Files (x86) \ Python 3,5 \ Lib \ сайт-пакеты \ NLTK \ мозолистого \ читатель \ util.py", строка 291, в iterate_from

tokens = self.read_block(self._stream) 

Файл «C: \ Program Files (x86) \ Python 3.5 \ lib \ site-packages \ nltk \ corpus \ reader \ plaintext.py", строка 117, в _read_word_block words.extend (self._word_tokenizer.tokenize (поток .readline()))

Файл "C: \ Program Files (x86) \ Python 3,5 \ Lib \ сайт-пакеты \ NLTK \ разметить \ regexp.py", строка 126, в разметить self._check_regexp()

Файл "C: \ Program Files (x86) \ Python 3,5 \ Lib \ сайт-пакеты \ NLTK \ разметить \ regexp.py", строка 121, в _check_regexp self._regexp = compile_regexp_to_noncapturing (self._pattern, само ._flags)

Fil e "C: \ Program Files (x86) \ Python 3.5 \ lib \ site-packages \ nltk \ internals.py", строка 56, в compile_regexp_to_noncapturing return sre_compile.compile (convert_regexp_to_noncapturing_parsed (sre_parse.parse (pattern)), flags = флаги)

Файл "C: \ Program Files (x86) \ Python 3.5 \ Lib \ сайт-пакеты \ NLTK \ internals.py", строка 52, в convert_regexp_to_noncapturing_parsed parsed_pattern.pattern.группы = 1

AttributeError: Невозможно установить атрибут

ответ

3

Я не уверен, если вы работали наш ваш вопрос. Только в случае, тот же вопрос также сообщил здесь: https://github.com/nltk/nltk/issues/1135

Решение. https://github.com/nltk/nltk/issues/1106

«Я был в состоянии решить эту проблему, перейдя в файл internals.py в каталоге nltk и удаление строки parsed_pattern.pattern.groups = 1 Мои Обоснование этого заключалось в том, что после выполнения небольшого кода чтения из sre_parse.py NLTK был предназначен для работы с сохраненным groups как атрибут экземпляра класса sre_parse.Pattern. Версия, поставляемая с Python 3.5, хранит groups как свойство, которое retu rns (я не слишком хорошо знаком со свойствами, но это то, что я предполагаю, что это делает) длина списка subpattern. The code I'm talking about is here at about line 75. То, что я не знаю, - это то, что долгосрочные эффекты от этого будут, я придумал это решение, просто проверив код, я не смотрел, какие ошибки могут возникнуть в конечном итоге. Кто-то, пожалуйста, сообщите мне, если это вызовет проблемы, и если будет лучшее решение ».

Вышеупомянутые работы для меня без каких-либо проблем.