13

Heroku サーバーに NLTK pos_tag をインストールしたいのですが。どうすればそうできますか。Heroku サーバー システムを初めて使用するので、手順を教えてください。

4

4 に答える 4

7

アップデート

Kenneth Reitz が指摘したように、はるかに単純なソリューションが heroku-python-buildpack に追加されました。nltk.txtルート ディレクトリにファイルを追加し、その中のコーパスを一覧表示します。詳細については、 https://devcenter.heroku.com/articles/python-nltkを参照してください。


元の回答

NLTK データを Git リポジトリに追加せずに Heroku に直接インストールできるソリューションを次に示します。

同様の手順を使用して、NLTK を依存関係として使用する Heroku にTextblobをインストールしました。手順 3 と 4 で、NLTK のみのインストールで機能するはずの元のコードに若干の調整を加えました。

デフォルトの heroku ビルドパックには、デフォルトのビルド ステップがすべて完了した後に実行されるpost_compileステップが含まれています。

# post_compile
#!/usr/bin/env bash

if [ -f bin/post_compile ]; then
    echo "-----> Running post-compile hook"
    chmod +x bin/post_compile
    sub-env bin/post_compile
fi

ご覧のとおり、プロジェクト ディレクトリpost_compile内に独自のファイルがbinあるかどうかを調べ、存在する場合はそれを実行します。このフックを使用して、nltk データをインストールできます。

  1. binローカル プロジェクトのルートにディレクトリを作成します。

  2. post_compile独自のファイルをディレクトリに追加しますbin

    # bin/post_compile
    #!/usr/bin/env bash
    
    if [ -f bin/install_nltk_data ]; then
        echo "-----> Running install_nltk_data"
        chmod +x bin/install_nltk_data
        bin/install_nltk_data
    fi
    
    echo "-----> Post-compile done"
    
  3. install_nltk_data独自のファイルをディレクトリに追加しますbin

    # bin/install_nltk_data
    #!/usr/bin/env bash
    
    source $BIN_DIR/utils
    
    echo "-----> Starting nltk data installation"
    
    # Assumes NLTK_DATA environment variable is already set
    # $ heroku config:set NLTK_DATA='/app/nltk_data'
    
    # Install the nltk data
    # NOTE: The following command installs the averaged_perceptron_tagger corpora, 
    # so you may want to change for your specific needs.  
    # See http://www.nltk.org/data.html
    python -m nltk.downloader averaged_perceptron_tagger
    
    # If using Textblob, use this instead:
    # python -m textblob.download_corpora lite
    
    # Open the NLTK_DATA directory
    cd ${NLTK_DATA}
    
    # Delete all of the zip files
    find . -name "*.zip" -type f -delete
    
    echo "-----> Finished nltk data installation"
    
  4. ファイルに追加nltkしますrequirements.txt(またはtextblob、Textblob を使用している場合)。

  5. これらすべての変更をリポジトリにコミットします。

  6. heroku アプリで NLTK_DATA 環境変数を設定します。

    $ heroku config:set NLTK_DATA='/app/nltk_data'
    
  7. Heroku にデプロイします。デプロイの最後にステップ トリガーが表示post_compileされ、その後に nltk ダウンロードが続きます。

これがお役に立てば幸いです。楽しみ!

于 2016-06-01T16:42:08.187 に答える
2

pos_tag、トークナイザー、ステミングなどの単純な機能を使用する場合は、次の手順を実行できます。

  1. requirements.txt で nltk に言及する
  2. nltk.txt で次のモジュールについて言及する
    • ワードネット
    • 長所短所
    • ロイター
    • hmm_treebank_pos_tagger
    • maxent_treebank_pos_tagger
    • ユニバーサルタグセット
    • パンク
    • averaged_perceptron_tagger_ru
    • averaged_perceptron_tagger
    • snowball_data
    • rslp
    • porter_test
    • vader_lexicon
    • 木の堤防
    • 依存関係ツリーバンク
于 2017-06-28T13:29:44.483 に答える