cs224n の課題 1 を完了するときは、nltk ライブラリのロイター コーパスを使用する必要がありますが、コード内で nltk.download("reuters") を実行すると、ネットワークの問題によりエラーが表示され、ダウンロードできません。
[nltk_data] Error loading reuters: <urlopen error [Errno 11004]
[nltk_data] getaddrinfo
オンラインチュートリアルに従って長い間悩んだ結果、効果的で最小限の解決策を見つけるために多くの落とし穴を踏みました。ntlk パッケージ全体 (700 M 以上) をダウンロードする必要はなく、必要に応じて対応するファイルをダウンロードするだけで済みます。
失敗方法 1: HOST を変更する
この方法では、グローバル マジックを使用してプロキシを追加する必要があります。ブログ投稿「NLTK 異常問題」に従ってHOSTS に IP アドレスを追加すると、199.232.68.133 raw.githubusercontent.com
この IP の有効期限が切れているため無効になります。
ブラウザ側のラダーしかないのでグローバルラダーがないのでこのままPASS
失敗方法 2: NLTK パッケージをダウンロードしたが使用できない
通常の方法は、Gitee リンクに移動して NLTK パッケージをダウンロードすることですが、ほとんどのブロガーはパッケージ全体 (700 M 以上) を直接ダウンロードするため、大量のメモリを消費します。ここでは、オンデマンドでファイルをリクエストする方法と、特に注意が必要な詳細を説明します。(ピットを踏んだ)
1. まず自分の NLTK ディレクトリを確認し、ない場合は作成します。
Python インタープリターを入力します
import nltk
nltk.download(".")
次の戻り値が表示されます。
Searched in:
- 'C:\\Users\\YayingLuo/nltk_data'
- 'C:\\Users\\ghost\\anaconda3\\envs\\cs224n\\nltk_data'
- 'C:\\Users\\ghost\\anaconda3\\envs\\cs224n\\share\\nltk_data'
- 'C:\\Users\\ghost\\anaconda3\\envs\\cs224n\\lib\\nltk_data'
- 'C:\\Users\\YayingLuo\\AppData\\Roaming\\nltk_data'
- 'C:\\nltk_data'
- 'D:\\nltk_data'
- 'E:\\nltk_data'
これらのパスは、それぞれのユーザー名によって異なります。このような戻りは、関連する nltk_data パスが見つからないことが原因で発生します。これらのパスのいずれかを選択し、その下に
C:\Users\ghost\anaconda3\envs\cs224n\nltk_dataなどの nltk_data フォルダーを作成します。
2. 必要なコーパス ファイルをダウンロードします。
たとえば、元のコードでダウンロードする必要があるのは、金融ニュース データセットであるロイター コーパスです。
nltk.corpus('reuters')
上記の gitee リンクのパスの下にファイルをpacages/corpora
ダウンロードします。 gitee でダウンロードされるため、圧縮パッケージ内には多くのパス接頭辞名があり、実際の reuters フォルダーはまだこのレイヤーの下にあります。変更する必要があります。変更しないと正しく使用できません。reuters.zip
3. 【重要】該当ファイルのパス名を変更し、ダウンロードしたファイルを正しく配置してください
- 以前に作成したパスの下に
/nltk_data
新しいcorpora
サブフォルダー (コーパスを意味します)を作成します。 - ダウンロードした圧縮パッケージの名前を次のように変更します。
reuters.zip
- この
reuters.zip
フォルダーを再圧縮し、/nltk_data/corpora` のパスに移動します。 - Pro テストは解凍する必要がなく、zip を直接使用するだけです
このように、普通に使えるようになります。それでも問題が解決しない場合は、jupyter Notebook を再起動し、tarball の名前とパスを確認してください。
述べる
anaconda が新しい環境を作成しても、jupyter Notebook がカーネルに接続できない場合、
解決策は、まず anaconda をアクティブにして対応する環境に入り、それから jupyter Notebook を開くことです。(ベース) 環境で開く代わりに。