我已经更新了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?
问题来自您的代理。我不能说你的代理配置出了什么问题,但是用自定义下载url初始化一个下载程序可以正常工作(不需要修改nltk/downloader.py
中的nltk源):
dl = nltk.downloader.Downloader("http://example.com/my_corpus_data/index.xml")
注意,自定义url必须解析为描述可下载资源的XML文档,格式为nltk
所期望的;你的问题中的代码指向http://nltk.org/nltk_data
的人类可读列表,这只会导致错误。(假设您的实际代码使用不同的URL,以及代理设置周围的不同代码。)
无论如何,问题一定出在你的代理上,或者你使用它的方式上。nltk的set_proxy
函数只调用urllib.request
中的几个函数来声明代理。它永远不会接近nltk的downloader
模块,所以它不可能影响下载器的默认值。