2016-10-04 6 views
0

downloader.pyでDEFAULT_URLを更新しましたが、次のエラーが表示されます。私はもともとnltk.downloader()とファイルブラウザを更新しようとしましたが、ダウンロードしようとするとgithubサイトに戻りました。Python 3.5:NLTKダウンロードの既定のURLは変更されません

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

「DEFAULT_URL」を再定義する必要はありません。それはあなたがそうするのと同じようにあなた自身のURLでDownloaderを初期化するときに無視されます。とにかく私はあなたの問題を再現することはできません:それは私のために期待どおりに動作します。プロキシが問題を引き起こしている可能性がありますか? – alexis

+0

@alexisそれは私のプロキシです。私は私のオフィスを去ったときにもう一度やってみました。私は他の多くの状況で同じプロキシを使用していますので、今は "set_proxy"関数がうまく動作しないのが不思議です。 – njfrazie

+0

'set_proxy'はURL処理を変更する' urllib.request.build_opener'と 'install_opener'を呼び出します。問題はあなたのプロキシから来なければなりません。 – alexis

答えて

1

問題はプロキシから発生します。

dl = nltk.downloader.Downloader("http://example.com/my_corpus_data/index.xml") 

注カスタムURLは、その:私は(nltk/downloader.pyにNLTKソースを変更する必要はありません)あなたのプロキシ設定で間違っているものを言うことはできませんが、カスタムのダウンロードURLとダウンローダを初期化することは意図した作品として、 nltkによって予期される形式で、ダウンロード可能なリソースを記述するXMLドキュメントに解決する必要があります。あなたの質問のコードは、人間が読めるリスト(http://nltk.org/nltk_data)を指しています。これはエラーになります。 (実際のコードでは、別のURLを使用し、プロキシ設定には異なるコードを使用している可能性があります)。

とにかく、問題はプロキシまたは使用方法にある必要があります。 nltkのset_proxy関数は、urllib.requestからの2つの関数を呼び出して、プロキシを宣言します。 nltkのdownloaderモジュールの近くには決して来ないので、ダウンローダのデフォルトに影響することはありません。

+0

私はその環境を残すとすぐに私の代理人であることに同意します。しかし、私はR、CPANクライアント、pipなどの他のユーティリティが同じproxy addr:portを使ってどのように動作するのか混乱しています。 – njfrazie

関連する問題