我已经更新了downloader.py中的DEFAULT_URL,我仍然收到以下错误消息。我最初只尝试了nltk.downloader()并更新了文件浏览器,但是当我尝试下载时,它仍然恢复到github网站。
DEFAULT_URL = 'http://nltk.org/nltk_data/'
import nltk
nltk.set_proxy('proxyaddress',user=None)
dl = nltk.downloader.Downloader("http://nltk.org/nltk_data/")
dl.download('all')
[nltk_data] Downloading collection 'all'
[nltk_data] |
[nltk_data] | Downloading package abc to C:\nltk_data...
[nltk_data] | Error downloading 'abc' from
[nltk_data] | <https://raw.githubusercontent.com/nltk/nltk_data
[nltk_data] | /gh-pages/packages/corpora/abc.zip>: <urlopen
[nltk_data] | error [Errno 11004] getaddrinfo failed>
为什么这仍然是默认为raw.githubusercontent.com/nltk/nltk_data?
答案 0 :(得分:1)
问题来自您的代理。我无法说出您的代理配置有什么问题,但使用自定义下载网址初始化下载程序可以按预期工作(无需修改nltk/downloader.py
中的nltk源代码):
dl = nltk.downloader.Downloader("http://example.com/my_corpus_data/index.xml")
请注意,自定义网址必须以nltk
所需的格式解析为描述可下载资源的XML文档;您问题中的代码指向http://nltk.org/nltk_data
处的人类可读列表,这只会导致错误。 (据推测,您的真实代码使用不同的URL,并围绕代理设置使用不同的代码。)
无论如何,问题必须在您的代理中,或者您使用它的方式。 nltk的set_proxy
函数只调用urllib.request
中的几个函数来声明代理。它永远不会出现在nltk的downloader
模块附近,因此它无法影响下载程序的默认值。