属性错误:无法从nltk.book导入*设置属性。

7
安装nltk之后,我导入了nltk并使用nltk.download()。但是当我尝试使用"from nltk.book import *"时,它显示属性错误。从nltk.corpus导入*和从nltk导入*都可以正常工作。
我是自然语言处理方面的新手,对此不太了解,请帮忙。
从nltk.book导入* * NLTK书籍的介绍性示例 *
正在加载text1、...、text9和sent1、...、sent9
输入文本或句子的名称以查看它。
输入"texts()"或"sents()"以列出材料。
Traceback (most recent call last): File "", line 1, in
from nltk.book import *

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

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

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

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 行,迭代自:

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_pattern.pattern.groups = 1

属性错误:无法设置属性

1个回答

5

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

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

"我能够通过进入nltk目录中的internals.py文件并删除parsed_pattern.pattern.groups = 1行来解决这个问题。我的理由是,在进行了一些代码阅读后,NLTK设计要使用的sre_parse.py原始版本groups存储为sre_parse.Pattern类实例的属性。Python 3.5附带的版本将groups存储为返回(我对属性不太熟悉,但这是我假设它所做的)subpattern列表的长度的属性。我说的代码在这里大约是第75行。我不知道这样做的长期影响是什么,我只是通过跟踪代码想出了这个解决方案,我没有看看这可能会在长期内引起什么错误。如果有更好的解决方法,请告诉我。"

以上对我来说都没有任何问题。


网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接