【问题标题】:nltk.word_tokenize() giving AttributeError: 'module' object has no attribute 'defaultdict'nltk.word_tokenize() 给出 AttributeError: 'module' object has no attribute 'defaultdict'
【发布时间】:2015-09-26 13:23:09
【问题描述】:

我是 nltk 的新手。 我正在尝试一些基础知识。

import nltk
nltk.word_tokenize("Tokenize me")

给我以下错误

Traceback (most recent call last):
File "<pyshell#27>", line 1, in <module>
nltk.word_tokenize("hi im no onee")
File "C:\Python27\lib\site-packages\nltk\tokenize\__init__.py", line 101, in word_tokenize
return [token for sent in sent_tokenize(text, language)
File "C:\Python27\lib\site-packages\nltk\tokenize\__init__.py", line 85, in sent_tokenize
tokenizer = load('tokenizers/punkt/{0}.pickle'.format(language))
File "C:\Python27\lib\site-packages\nltk\data.py", line 786, in load
resource_val = pickle.load(opened_resource)
AttributeError: 'module' object has no attribute 'defaultdict'

请人帮忙。请告诉我如何解决此错误。

【问题讨论】:

    标签: nltk attributeerror defaultdict


    【解决方案1】:

    我刚刚在我的系统上检查过。

    修复:

    >> import nltk
    >> nltk.download('all')
    

    然后一切正常。

    >> import nltk
    >> nltk.word_tokenize("Tokenize me")
    ['Tokenize', 'me']
    

    【讨论】:

      【解决方案2】:

      我遇到了同样的错误,然后我意识到我已将文件保存为 tokenize.py,这就是为什么当我用另一个名称更改我的 python 文件的名称时出现此错误,它工作正常。希望这会有所帮助。

      【讨论】:

        【解决方案3】:

        后来我发现我使用的是回溯的 nltk 数据。我更新数据后,程序就开始正常工作了。

        【讨论】:

          【解决方案4】:

          您需要更新您的 nltk 版本。如果您使用的是 anaconda,请在终端中执行以下操作:

          >> conda update nltk
          

          它将更新 nltk。然后重新启动ipython,它应该可以工作了!

          【讨论】:

            猜你喜欢
            • 2013-07-26
            • 2017-02-20
            • 2021-07-25
            • 2014-12-20
            • 1970-01-01
            • 2022-12-01
            • 2022-12-01
            • 2017-03-08
            • 1970-01-01
            相关资源
            最近更新 更多