使用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 下载器冻结。
我遇到了同样的问题,并从以下链接手动下载了必要的项目:
这不是所需的解决方案,但在解决此问题之前会起作用。
更新:
我实际上能够运行 nltk.download() 来安装 cmudict。也许这个问题只影响某些软件包?
我在 nltk 3.0.01b 上也遇到了同样的问题。我下载了“book”包并从任务管理器的网络显示监视下载,同时检查目标文件夹的大小(AppData\Roaming 我的 Windows 7 系统上的 ltk_data)。网络流量停止,文件夹大小停止增长至 379 MB。但Python shell 被锁定了。以下是显示的最后一条消息:
但是,如果您取消显示可用下载项目的 Tk 窗口,则
nltk.download()
命令将终止并且 shell 提示符将返回。
很可能它没有卡住。可能正在下载。即使您有良好的互联网连接,它的下载速度也会慢得多。我使用 while 循环不断检查文件夹大小,它慢慢地不断增加,最终成功了。如果你等待的话,它就会起作用。解压缩可能会失败,因为您在下载整个文件之前尝试解压缩。
如果仍然无法下载 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 文件拖到您的驱动器上。然后你可以直接从你的谷歌驱动器下载它。