【问题标题】:How do I download NLTK data?如何下载 NLTK 数据?
【发布时间】:2014-04-08 07:46:25
【问题描述】:

更新的答案:NLTK 适用于 2.7。我有3.2。我卸载了 3.2 并安装了 2.7。现在可以了!!

我已安装 NLTK 并尝试下载 NLTK 数据。我所做的是按照该网站上的说明进行操作:http://www.nltk.org/data.html

我下载了 NLTK,安装了它,然后尝试运行以下代码:

>>> import nltk
>>> nltk.download()

它给了我如下错误消息:

Traceback (most recent call last):
  File "<pyshell#6>", line 1, in <module>
    nltk.download()
AttributeError: 'module' object has no attribute 'download'
 Directory of C:\Python32\Lib\site-packages

尝试了nltk.download()nltk.downloader(),都给了我错误消息。

然后我用help(nltk)拉出包,显示如下信息:

NAME
    nltk

PACKAGE CONTENTS
    align
    app (package)
    book
    ccg (package)
    chat (package)
    chunk (package)
    classify (package)
    cluster (package)
    collocations
    corpus (package)
    data
    decorators
    downloader
    draw (package)
    examples (package)
    featstruct
    grammar
    help
    inference (package)
    internals
    lazyimport
    metrics (package)
    misc (package)
    model (package)
    parse (package)
    probability
    sem (package)
    sourcedstring
    stem (package)
    tag (package)
    test (package)
    text
    tokenize (package)
    toolbox
    tree
    treetransforms
    util
    yamltags

FILE
    c:\python32\lib\site-packages\nltk

我确实在那里看到了下载器,但不知道为什么它不起作用。 Python 3.2.2,系统Windows vista。

【问题讨论】:

  • 简短说明:我不知道问题出在哪里,但你所做的是正确的,应该给你一个 GUI 来选择下载什么(即你没有做错,但是错)
  • 您从哪里安装了 NLTK?我强烈建议您通过像 pip 这样的包管理器来安装它,以便为您处理所有依赖项。
  • 我不知道该怎么做。你的意思是我应该先安装pip,然后用它来安装NLTK?
  • 正确的是@MichaelAquilina 的意思。
  • 从终端安装python3 -m nltk.downloader all

标签: python nltk


【解决方案1】:

喜欢就好

import nltk
nltk.download()

然后您将显示一个弹出窗口,询问要下载什么,选择“全部”。由于它的大小,这需要一些时间,但最终我们会得到它。

如果您使用的是 Google Colab,则可以使用

nltk.download(download_dir='/content/nltkdata')

运行后会要求你从列表中选择

NLTK Downloader
----------------------------------------------------------------- 
----------
d) Download   l) List    u) Update   c) Config   h) Help   q) 
Quit
----------------------------------------------------------------- 
----------
Downloader> d

在这里您必须输入 d 才能下载。 之后,您将被要求输入您要下载的标识符。您可以使用 l 命令查看可用标识符列表,或者如果您想要所有标识符,只需在输入框中输入“全部”。 然后你会看到类似 -

Downloading collection 'all'
       | 
       | Downloading package abc to /content/nltkdata...
       |   Unzipping corpora/abc.zip.
       | Downloading package alpino to /content/nltkdata...
       |   Unzipping corpora/alpino.zip.
       | Downloading package biocreative_ppi to /content/nltkdata...
       |   Unzipping corpora/biocreative_ppi.zip.
       | Downloading package brown to /content/nltkdata...
       |   Unzipping corpora/brown.zip.
       | Downloading package brown_tei to /content/nltkdata...
       |   Unzipping corpora/brown_tei.zip.
       | Downloading package cess_cat to /content/nltkdata...
       |   Unzipping corpora/cess_cat.zip.
.
.
. 
 |   Unzipping models/wmt15_eval.zip.
       | Downloading package mwa_ppdb to /content/nltkdata...
       |   Unzipping misc/mwa_ppdb.zip.
       | 
     Done downloading collection all

---------------------------------------------------------------------------
    d) Download   l) List    u) Update   c) Config   h) Help   q) Quit
---------------------------------------------------------------------------
Downloader> q
True

最后你可以输入q退出了。

【讨论】:

    【解决方案2】:

    如果您已经保存了文件名 nltk.py 并再次重命名为 my_nltk_script.py。检查您是否还有文件 nltk.py 存在。如果是,则删除它们并运行文件 my_nltk.scripts.py 它应该可以工作!

    【讨论】:

      【解决方案3】:

      很简单....

      1. 打开 pyScripter 或任何编辑器
      2. 创建一个python文件,例如:install.py
      3. 在里面写下下面的代码。
      import nltk
      nltk.download()
      
      1. 将出现一个弹出窗口并点击下载。

      【讨论】:

      • 弹窗打不开。我已经试过很多次了。 nltk 的版本也是新版本,即 3.4.1 。现在告诉应该是什么问题?
      • @HamzaTahir 我也发生了同样的事情,我重新启动了我的内核
      【解决方案4】:

      试试

      nltk.download('all')

      这将下载所有数据,无需单独下载。

      【讨论】:

      • 在我的情况下,它没有加载 UI.. 不知道为什么......但这对我有帮助。谢谢。
      • 仅供参考 - 截至 2019 年 12 月 15 日,整个文件夹大约 3.2 GB,包括 zip 文件。
      • 非常感谢@FlorinAndrei 提供的信息。
      【解决方案5】:

      安装 Pip:在终端中运行:sudo easy_install pip

      安装 Numpy(可选):运行:sudo pip install -U numpy

      安装 NLTK:运行:sudo pip install -U nltk

      测试安装:运行:python

      然后输入:import nltk

      下载语料库

      运行:python -m nltk.downloader all

      【讨论】:

        【解决方案6】:

        尝试从http://www.nltk.org/nltk_data/下载zip文件然后解压,保存在你的Python文件夹中,例如C:\ProgramData\Anaconda3\nltk_data

        【讨论】:

        • 这是我必须为未连接到 Internet 的 Linux 服务器使用的方法(修改后的形式)。我将其解压缩到我创建的目录 /usr/share/nltk_data/tokenizers/
        【解决方案7】:

        请尝试

        import nltk
        
        nltk.download()
        

        运行后你会得到类似这样的东西

        NLTK Downloader
        ---------------------------------------------------------------------------
           d) Download   l) List    u) Update   c) Config   h) Help   q) Quit
        ---------------------------------------------------------------------------
        

        那么,Press d

        如下操作:

        Downloader> d all
        

        完成后您将收到以下消息,然后提示Press q 全部下载完毕

        【讨论】:

          【解决方案8】:

          这对我有用:

          nltk.set_proxy('http://user:password@proxy.example.com:8080')
          nltk.download()
          

          【讨论】:

            【解决方案9】:

            您无法保存名为nltk.py 的python 文件,因为解释器正在从该文件中读取,而不是从实际文件中读取。

            更改 python shell 正在读取的文件的名称并尝试您最初的操作:

            import nltk 然后nltk.download()

            【讨论】:

              【解决方案10】:

              如果您运行的是非常旧的 nltk 版本,那么确实没有可用的下载模块 (reference)

              试试这个:

              import nltk
              print(nltk.__version__)
              

              根据参考,0.9.5 之后的任何东西都应该没问题

              【讨论】:

              • 这实际上是我怀疑的,这就是为什么我建议 OP 使用 pip 来安装 NLTK。
              • 它甚至不会打印出版本信息。版本为 2.0.4。这是我从 Natural Language Processing with Python 一书中所遵循的链接。这是[链接]nltk.org/install.html
              • 好的,这是最新的。我想那时不是这样。让我们把它留在这里以供将来参考
              • nltk 是否适合您?尝试运行:nltk.word_tokenize("hello world") 看看是否有任何输出
              【解决方案11】:

              TL;DR

              要下载特定的数据集/模型,请使用 nltk.download() 函数,例如如果您要下载punkt 句子标记器,请使用:

              $ python3
              >>> import nltk
              >>> nltk.download('punkt')
              

              如果您不确定自己需要哪种数据/模型,您可以从基本的数据和模型列表开始:

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

              它将下载“流行”资源列表,其中包括:

              <collection id="popular" name="Popular packages">
                    <item ref="cmudict" />
                    <item ref="gazetteers" />
                    <item ref="genesis" />
                    <item ref="gutenberg" />
                    <item ref="inaugural" />
                    <item ref="movie_reviews" />
                    <item ref="names" />
                    <item ref="shakespeare" />
                    <item ref="stopwords" />
                    <item ref="treebank" />
                    <item ref="twitter_samples" />
                    <item ref="omw" />
                    <item ref="wordnet" />
                    <item ref="wordnet_ic" />
                    <item ref="words" />
                    <item ref="maxent_ne_chunker" />
                    <item ref="punkt" />
                    <item ref="snowball_data" />
                    <item ref="averaged_perceptron_tagger" />
                  </collection>
              

              已编辑

              如果有人在从nltkhttps://stackoverflow.com/a/38135306/610569 下载更大的数据集时避免出错

              $ rm /Users/<your_username>/nltk_data/corpora/panlex_lite.zip
              $ rm -r /Users/<your_username>/nltk_data/corpora/panlex_lite
              $ python
              
              >>> import nltk
              >>> dler = nltk.downloader.Downloader()
              >>> dler._update_index()
              >>> dler._status_cache['panlex_lite'] = 'installed' # Trick the index to treat panlex_lite as it's already installed.
              >>> dler.download('popular')
              

              更新

              From v3.2.5, NLTK has a more informative error messagenltk_data 资源未找到时,例如:

              >>> from nltk import word_tokenize
              >>> word_tokenize('x')
              Traceback (most recent call last):
                File "<stdin>", line 1, in <module>
                File "/Users/l/alvas/git/nltk/nltk/tokenize/__init__.py", line 128, in word_tokenize
                  sentences = [text] if preserve_line else sent_tokenize(text, language)
                File "/Users//alvas/git/nltk/nltk/tokenize/__init__.py", line 94, in sent_tokenize
                  tokenizer = load('tokenizers/punkt/{0}.pickle'.format(language))
                File "/Users/alvas/git/nltk/nltk/data.py", line 820, in load
                  opened_resource = _open(resource_url)
                File "/Users/alvas/git/nltk/nltk/data.py", line 938, in _open
                  return find(path_, path + ['']).open()
                File "/Users/alvas/git/nltk/nltk/data.py", line 659, in find
                  raise LookupError(resource_not_found)
              LookupError: 
              **********************************************************************
                Resource punkt not found.
                Please use the NLTK Downloader to obtain the resource:
              
                >>> import nltk
                >>> nltk.download('punkt')
              
                Searched in:
                  - '/Users/alvas/nltk_data'
                  - '/usr/share/nltk_data'
                  - '/usr/local/share/nltk_data'
                  - '/usr/lib/nltk_data'
                  - '/usr/local/lib/nltk_data'
                  - ''
              **********************************************************************
              

              相关

              【讨论】:

              【解决方案12】:

              你可以试试:

              >> $ import nltk
              >> $ nltk.download_shell()
              >> $ d
              >> $ *name of the package*
              

              祝你好运。

              【讨论】:

                【解决方案13】:

                不要将你的文件命名为 nltk.py 我使用相同的代码并将其命名为 nltk,并得到与你相同的错误,我更改了文件名并且运行良好。

                【讨论】:

                • 它节省了我的时间。
                【解决方案14】:

                你应该在安装python的过程中将python添加到你的PATH中……安装后……打开cmd提示符输入command-pip install nltk 然后转到 IDLE 并打开一个新文件..将其保存为 file.py..然后打开 file.py 键入以下内容: 导入nltk

                nltk.download()
                

                【讨论】:

                  【解决方案15】:

                  我有类似的问题。可能检查您是否使用代理。

                  如果是,请在下载前设置代理:

                  nltk.set_proxy('http://proxy.example.com:3128', ('USERNAME', 'PASSWORD'))
                  

                  【讨论】:

                    猜你喜欢
                    • 1970-01-01
                    • 2017-05-11
                    • 1970-01-01
                    • 2021-11-25
                    • 1970-01-01
                    • 1970-01-01
                    • 2016-10-28
                    • 2018-01-16
                    • 1970-01-01
                    相关资源
                    最近更新 更多