Lambda関数で使用するためにpronounceableというパッケージを正常にインストールしました。ただし、NLTKコーパスcmudict
は特定できない依存関係のようです。これは、コマンドを使用するとimport pronounceable
次のエラーが発生することを意味します。
> Resource [93mcmudict[0m not found. Please use the NLTK Downloader
> to obtain the resource:
>
> [31m>>> import nltk
> >>> nltk.download('cmudict') [0m For more information see: https://www.nltk.org/data.html
>
> Attempted to load [93mcorpora/cmudict[0m
>
> Searched in:
> - './nltk_data'
> - '/home/sbx_user1051/nltk_data'
> - '/var/lang/nltk_data'
> - '/var/lang/share/nltk_data'
> - '/var/lang/lib/nltk_data'
> - '/usr/share/nltk_data'
> - '/usr/local/share/nltk_data'
> - '/usr/lib/nltk_data'
> - '/usr/local/lib/nltk_data'
私が試したこと
1.ここでは、私は私のラムダ関数に適用するレイヤーを作成するための方法でパッケージをインストールするために使用されるコードです。
# STEP 1
mkdir folder
cd folder
virtualenv v-env
source ./v-env/bin/activate
pip install pronounceable
deactivate
# STEP 2
mkdir python
cd python
cp -r ../v-env/lib64/python3.6/dist-packages/* .
cd ..
zip -r pronounceable_layer.zip python
aws lambda publish-layer-version --layer-name pronounceable --zip-file fileb://panda_layer.zip --compatible-runtimes python3.6
次に、結果のレイヤーを選択してLambda関数に追加しました。次に、この提案に従って、cmudict
(ローカルマシンに手動でダウンロードした)の内容をnltk_data
、Lambdaルートフォルダー内のというフォルダー内のテキストファイルに配置しました。また、キー/値NLTK_DATA
&を使用して環境変数を./nltk_data
追加nltk.download('cmudict', download_dir="/var/task/nltk_data")
し、関数の先頭に追加することで問題を軽減しようとしましたが、役に立ちませんでした。
2.また、Cloud9を使用してNLTKファイルを開き、機能していない疑いがあるため、data.py
この提案に従ってパスを修正しnltk.data.path.append()
ました。
3.また、nltk.download('cmudict', download_dir='/tmp/')
この提案に従ってダウンロードパスを手動で設定しましたが、これも機能していないようです。
次に何をする必要があるのか途方に暮れています。
質問
cmudict
Lambda関数でnltkが使用できるようにするには、何をする必要がありますか?
解決済み
同様の問題が発生している人に役立つ場合に備えて、回答を投稿してください。
コーパスファイルcmudict
が見つからなかったことを示唆するエラーメッセージをもう一度確認することで、この問題を解決しました。このファイルの予想される完全なパスは次のとおりです。
/var/task/nltk_data/corpora/cmudict/cmudict
つまり、ファイルcmudict
は、というフォルダに配置する必要がありますcmudict
。このフォルダは、内部corpora
に配置する必要があり、内部に配置する必要がありますnltk_data
。
これは、次のいずれかの方法でパスを作成することで実現できます。
Lambdaコンソールで手動で(右クリックしてフォルダー/ファイルを作成し、コーパスのコンテンツをエディターに貼り付けます)
nltk_data/corpora/cmudict/cmudict
ローカルマシンでファイル構造を作成し、ファイルを圧縮して、zipファイルをLambdaエディターにアップロードします。
注-次のように、コーパスへの予想されるパスを反映するようにラムダコードを修正する必要がある場合もあります。
import nltk
from nltk.corpus import cmudict
nltk.data.path.append("/var/task/nltk_data")
data.py
上記のリンク先の回答で説明されているように、環境変数を設定してファイルを修正することもできます。
この記事はインターネットから収集されたものであり、転載の際にはソースを示してください。
侵害の場合は、連絡してください[email protected]
コメントを追加