如何下载NLTK数据?

时间:2014-03-05 23:19:32

标签: python nltk

更新的答案: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

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

15 个答案:

答案 0 :(得分:68)

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>

EDITED

如果有人避免从nltk下载较大数据集时出错,请https://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')

更新

找不到nltk_data资源时

From v3.2.5, NLTK has a more informative error message,例如:

>>> 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'
    - ''
**********************************************************************

相关

答案 1 :(得分:9)

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

答案 2 :(得分:9)

尝试

nltk.download('all')

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

答案 3 :(得分:7)

安装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

答案 4 :(得分:4)

请尝试

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 全部完成下载收藏

答案 5 :(得分:3)

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

试试这个:

import nltk
print(nltk.__version__)

根据参考文献,0.9.5之后的任何内容都应该没问题

答案 6 :(得分:3)

你不能拥有一个名为nltk.py的已保存的python文件,因为解释器正在从中读取而不是从实际文件中读取。

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

import nltk然后nltk.download()

答案 7 :(得分:3)

这很简单......

  1. 打开pyScripter或任何编辑器
  2. 创建一个python文件,例如:install.py
  3. 在其中写下以下代码。
  4. import nltk
    nltk.download()
    
    1. 弹出窗口将显示并点击下载。
    2. The download window]

答案 8 :(得分:3)

这对我有用:

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

答案 9 :(得分:2)

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

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

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

答案 10 :(得分:2)

你应该在安装python期间将python添加到你的PATH ...安装后...打开cmd提示符类型命令 - pip install nltk 然后转到IDLE并打开一个新文件。将其保存为file.py ..然后打开file.py 输入以下内容: import nltk

nltk.download()

答案 11 :(得分:0)

我认为您必须将文件命名为nltk.py(或文件夹由具有该名称的文件组成),因此请将其更改为任何其他名称并尝试执行....

答案 12 :(得分:0)

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

答案 13 :(得分:0)

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

答案 14 :(得分:-3)

您可以尝试:

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

快乐的nlp'ing。