Python nltk 下载和 download_shell 在尝试 punkt 时都会冻结(挂起)

问题描述 投票:0回答:4

使用NLTK 2.0.4。为 EPD 的 Python-2.7.3 安装(不是 Canopy)。在 Ubuntu 12.10 上。在终端中输入:

In [96]: nltk.download_shell()
NLTK Downloader
---------------------------------------------------------------------------
    d) Download   l) List    u) Update   c) Config   h) Help   q) Quit
---------------------------------------------------------------------------
Downloader> d

Download which package (l=list; x=cancel)?
  Identifier> punkt
    Downloading package 'punkt' to /home/espears/nltk_data...

然后它就冻结了。相关的 punkt.zip 文件被写入指定目录,但

download
接口永远不会放弃。

这个示例使用的是 IPython,但我使用常规 Python 2.7.3 解释器进行了相同的尝试,并得到了相同的结果。

当我尝试使用

unzip
直接解压缩文件时,我看到错误,指出文件中未找到正确的中央 zip 文件代码,并且无法解压缩。见下图:

espears@computer ~/nltk_data/tokenizers $ unzip punkt.zip 
Archive:  punkt.zip
  End-of-central-directory signature not found.  Either this file is not
  a zipfile, or it constitutes one disk of a multi-part archive.  In the
  latter case the central directory and zipfile comment will be found on
  the last disk(s) of this archive.
unzip:  cannot find zipfile directory in one of punkt.zip or
        punkt.zip.zip, and cannot find punkt.zip.ZIP, period.

nltk.download()
nltk.download_shell()
都会以同样的方式发生这种情况。

我可以使用

du
检查 .zip 文件,发现它的大小最初从 0 MB 增长到大约 2.7 MB,因此它实际上正在下载某些内容并且文件不为空。但它停在 2.7 MB(这可能对应也可能不对应于文件的预期完整大小),然后 Python shell 下载器冻结。

python download nltk
4个回答
3
投票

我遇到了同样的问题,并从以下链接手动下载了必要的项目:

http://nltk.org/nltk_data/

这不是所需的解决方案,但在解决此问题之前会起作用。

更新:

我实际上能够运行 nltk.download() 来安装 cmudict。也许这个问题只影响某些软件包?


1
投票

我在 nltk 3.0.01b 上也遇到了同样的问题。我下载了“book”包并从任务管理器的网络显示监视下载,同时检查目标文件夹的大小(AppData\Roaming 我的 Windows 7 系统上的 ltk_data)。网络流量停止,文件夹大小停止增长至 379 MB。但Python shell 被锁定了。以下是显示的最后一条消息:

显示信息 http://nltk.github.com/nltk_data/

但是,如果您取消显示可用下载项目的 Tk 窗口,则

nltk.download()
命令将终止并且 shell 提示符将返回。


0
投票

很可能它没有卡住。可能正在下载。即使您有良好的互联网连接,它的下载速度也会慢得多。我使用 while 循环不断检查文件夹大小,它慢慢地不断增加,最终成功了。如果你等待的话,它就会起作用。解压缩可能会失败,因为您在下载整个文件之前尝试解压缩。


0
投票

如果仍然无法下载 ntlk 软件包,您可以访问 google colab,然后使用以下命令下载软件包:

!pip install nltk

import nltk
nltk.download('all',download_dir='/content/ntlk_data')

之后将创建一个文件夹,使用以下命令压缩该文件夹:

!zip -r /content/ntlk_data.zip /content/ntlk_data

安装谷歌驱动器:

from google.colab import drive
drive.mount('/content/gdrive')

将 zip 文件拖到您的驱动器上。然后你可以直接从你的谷歌驱动器下载它。

© www.soinside.com 2019 - 2024. All rights reserved.