安装 nltk 支持包时出错:nltk.download()

error installing nltk supporting packages : nltk.download()

我已经安装了 nltk 包。之后,我尝试使用 nltk.download() 下载支持包,但出现错误:

[错误号 11001] 获取地址信息

我的机器/软件详细信息是:

OS: Windows 8.1 Python:3.3.4 NLTK 包:3.0

下面是 python 中的命令 运行:

Python 3.3.4 (v3.3.4:7ff62415e426, Feb 10 2014, 18:13:51) [MSC v.1600 64 bit (AMD64)] on win32
Type "copyright", "credits" or "license()" for more information.

import nltk

nltk.download()
showing info http://nltk.github.com/nltk_data/
True

nltk.download("all")
[nltk_data] Error loading all: <urlopen error [Errno 11001]
[nltk_data]     getaddrinfo failed>
False

看来要http://nltk.github.com/nltk_data/ whereas it should Ideally try to get the data from http://www.nltk.org/nltk_data/了。

当我们输入 http://nltk.github.com/nltk_data/ in the browser, it redirects to http://www.nltk.org/nltk_data/ 时在另一台机器上。我不明白为什么我的笔记本电脑上没有重定向。

我觉得这可能是问题所在。

请帮忙。

我添加了命令提示符屏幕截图。需要帮助..

此致, 邦森

得到解决方案。我的问题是,当 NLTK 下载器启动时,它的服务器索引为 - http://nltk.github.com/nltk_data/

这里需要改成- http://nltk.org/nltk_data/

您可以通过进入 NLTK 下载器 window 和文件 -> 更改服务器索引来更改它。

此致, 邦森

它通过 "setting http & https proxy in environment variables"

为我解决了问题
set http_proxy=http://IPN:PWD@ipaddress:port
set https_proxy=https://IPN:PWD@ipaddress:port

向您的网络或管理团队询问此代理 IP 地址

错误可能出在系统的代理服务器上。参考以下link的答案,已将答案发布在那里:

Error in downloading NLTK data: [Errno 11004] getaddrinfo failed

由于网络限制,我收到此错误。这是我解决的方法

已浏览 http://www.nltk.org/nltk_data/ 并从相应的 link 下载所需的语料库。

然后将下载的文件放在 windows 中的 C:/ 文件夹路径中(或任何其他相关目录,如 C:/ProgramData/Anaconda3),与 https://github.com/nltk/nltk_data/tree/gh-pages/packages 中提到的相同文件夹结构

试试下面的代码。它已按预期下载包

import nltk
import ssl

try:
    _create_unverified_https_context = ssl._create_unverified_context
except AttributeError:
    pass
else:
    ssl._create_default_https_context = _create_unverified_https_context

nltk.download()

看起来 link 被 ssl 修复后被破坏了。

注意:- MAC 已被使用

我的 Jupyter notebook 也遇到了这个问题。来自另一个 Whosebug 答案的以下代码片段有所帮助。以防万一它可能对其他人有帮助 -

import socket
socket.getaddrinfo('localhost', 8080)

参考:"getaddrinfo failed", what does that mean?