当前位置:  开发笔记 > 编程语言 > 正文

AttributeError:无法从nltk.book import*设置属性

如何解决《AttributeError:无法从nltk.bookimport*设置属性》经验,为你挑选了1个好方法。

安装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_pa​​ttern.pattern.groups = 1

AttributeError:无法设置属性



1> Akshay Gaur..:

我不确定你是否解决了我的问题.以防万一,这里也报道了同样的问题: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行.我不知道这样做的长期影响是什么,我只是通过跟踪代码来提出这个解决方案,我没有看到这可能导致的错误从长远来看.有人请告诉我这是否会导致问题以及是否有更好的解决方案."

到目前为止,上述工作对我没有任何问题.

推荐阅读
mobiledu2402852413
这个屌丝很懒,什么也没留下!
DevBox开发工具箱 | 专业的在线开发工具网站    京公网安备 11010802040832号  |  京ICP备19059560号-6
Copyright © 1998 - 2020 DevBox.CN. All Rights Reserved devBox.cn 开发工具箱 版权所有