コンピューティングサーバーでpython nltk
パッケージをダウンロード/更新しようとして、この[Errno 122] Disk quota exceeded:
エラー。
具体的には:
[nltk_data] Downloading package stop words to /home/sh2264/nltk_data...
[nltk_data] Error downloading u'stopwords' from
[nltk_data] <https://raw.githubusercontent.com/nltk/nltk_data/gh-
[nltk_data] pages/packages/corpora/stopwords.Zip>: [Errno 122]
[nltk_data] Disk quota exceeded:
[nltk_data] u'/home/sh2264/nltk_data/corpora/stopwords.Zip
False
nltk
パッケージのパス全体をどのように変更できますか。また、nltk
をエラーなしでロードするには、他にどのような変更が必要ですか。
これはコマンドライン(nltk.download(..., download_dir=)
またはGUIの両方で設定できます。奇妙なことに、nltkは独自の環境変数NLTK_DATA
を完全に無視し、ダウンロードディレクトリをデフォルトの5つのパスのセットにデフォルト設定しますNLTK_DATA
が定義されているかどうか、ポイントされている場所、およびnltkの5つのデフォルトディレクトリがマシンまたはアーキテクチャ上に存在するかどうかに関係なく(!)。その一部は NLTKデータのインストール 不完全で、やや埋もれています;はるかに明確なフォーマットで以下に再現します:
コマンドラインインストール
ダウンローダーは、既存の
nltk_data
ディレクトリを検索して、NLTKデータをインストールします。存在しない場合は、中央の場所(管理者アカウントを使用している場合)またはユーザーのファイルスペースに作成しようとします。必要に応じて、管理者アカウントからダウンロードコマンドを実行するか、Sudoを使用します。推奨されるシステムの場所は次のとおりです。
C:\nltk_data
(Windows);/usr/local/share/nltk_data
(Mac)および/usr/share/nltk_data
(Unix)。-dフラグを使用して別の場所を指定できます(ただし、これを行う場合は、NLTK_DATA環境変数を必ず設定してください)。
コマンド
python -m nltk.downloader all
を実行します中央インストールを確実にするには、次のコマンドを実行します:
Sudo python -m nltk.downloader -d /usr/local/share/nltk_data all
しかし、彼らは本当に言うべきです:
Sudo python -m nltk.downloader -d $NLTK_DATA all
NLTK_DATAが使用する推奨パスについては、nltkは実際には適切なガイダンスを提供しませんが、インストールされていない一般的なスタンドアロンパスでなければなりませんツリー(<python-install-directory>/lib/site-packages
の下ではない)またはユーザーディレクトリ。したがって、/usr/local/share
、/opt/share
、または同様のもの。 MacOS 10.7+では、/usr
、したがって/usr/local/
がデフォルトで非表示になっているため、/opt/share
の方が適切な選択になる可能性があります。または、chflags nohidden /usr/local/share
を実行します。
ドキュメント によると:
デフォルトでは、パッケージはシステム全体のディレクトリ(Pythonに書き込むための十分なアクセス権がある場合);または現在のユーザーのホームディレクトリにインストールされます。ただし、download_dir引数は使用できます。必要に応じて、異なるインストールターゲットを指定します。
ダウンロードディレクトリを指定するには、たとえば次を使用します。
nltk.download('treebank', download_dir='/mnt/data/treebank')