AttributeError:无法从nltk.book import *

时间:2015-10-04 06:06:56

标签: python nltk python-3.5

安装nltk后我导入nltk然后使用nltk.download()但是当我尝试使用这个"来自nltk.book import *"它显示属性错误。 从nltk.corpus import *和nltk import *工作正常

我是自然语言处理的新手,所以我对此不太了解,请帮忙

来自nltk.book import * * NLTK Book的介绍性示例*

加载text1,...,text9和sent1,...,sent9

键入要查看的文本或句子的名称。

输入:'短信()'或者' sents()'列出材料。

追踪(最近一次呼叫最后一次):

文件"",第1行,

from nltk.book import *

文件" C:\ Program Files(x86)\ Python 3.5 \ lib \ site-packages \ nltk \ book.py",line 19,在

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

文件" C:\ Program Files(x86)\ Python 3.5 \ lib \ site-packages \ nltk \ text.py",第295行, init

tokens = list(tokens)

文件" C:\ Program Files(x86)\ Python 3.5 \ lib \ site -

packages \ nltk \ corpus \ reader \ util.py",第233行, len

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

文件" C:\ Program Files(x86)\ Python 3.5 \ lib \ site-packages \ nltk \ corpus \ reader \ 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(stream.readline()))

文件" C:\ Program Files(x86)\ Python 3.5 \ lib \ site-packages \ nltk \ tokenize \ regexp.py",第126行,在tokenize中     self._check_regexp()

文件" C:\ Program Files(x86)\ Python 3.5 \ lib \ site-packages \ nltk \ tokenize \ regexp.py",第121行,_check_regexp     self._regexp = compile_regexp_to_noncapturing(self._pattern,self._flags)

文件" 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 = flags)

文件" C:\ Program Files(x86)\ Python 3.5 \ lib \ site-packages \ nltk \ internals.py",第52行,在convert_regexp_to_noncapturing_parsed中     parsed_pa​​ttern.pattern.groups = 1

AttributeError:无法设置属性

1 个答案:

答案 0 :(得分:5)

我不确定你是否解决了我们的问题。 以防万一,此处也报道了同样的问题: https://github.com/nltk/nltk/issues/1135

解决方案: https://github.com/nltk/nltk/issues/1106

“我能够通过进入internals.py目录中的nltk文件并删除行parsed_pattern.pattern.groups = 1来解决此问题。我的理由是,在做了一些代码读取,NLTK设计用于sre_parse.py的{​​{3}}存储groups作为sre_parse.Pattern类实例的属性.Python 3.5商店附带的版本groups作为一个返回的属性(我不太熟悉属性,但这是我认为的确实)subpattern列表的长度。original version我不知道知道这样做的长期影响是什么,我只是通过跟踪代码来提出这个解决方案,我没有看到这可能会导致长期的错误。有人请告诉我这是否会导致问题,如果有更好的解决方案。“

到目前为止,上述内容对我没有任何问题。