安装nltk后我导入nltk然后使用nltk.download(),但当我尝试使用这个"来自nltk.book import*"时,它显示属性错误.从nltk.corpus import*和nltk import*工作正常
我是自然语言处理的新手,所以我不太了解这个请帮助
来自nltk.book import* *NLTK Book的介绍示例*
加载text1,...,text9和sent1,...,sent9
键入要查看的文本或句子的名称.
键入:'texts()'或'sents()'列出材料.
Traceback(最近一次调用最后一次):
文件"",第1行,in
from nltk.book import *
文件"C:\ Program Files(x86)\ Python 3.5\lib\site-packages \nltk\book.py",第19行,in
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中自我._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中返回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
AttributeError:无法设置属性
我不确定你是否解决了我的问题.以防万一,这里也报道了同样的问题: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
作为一个属性返回(我不太熟悉属性,但这就是我所认为的)subpattern
列表的长度.我正在谈论的代码约会在第75行.我不知道这样做的长期影响是什么,我只是通过跟踪代码来提出这个解决方案,我没有看到这可能导致的错误从长远来看.有人请告诉我这是否会导致问题以及是否有更好的解决方案."
到目前为止,上述工作对我没有任何问题.