私のコード:
import nltk.data
tokenizer = nltk.data.load('nltk:tokenizers/punkt/english.pickle')
エラーメッセージ:
[ec2-user@ip-172-31-31-31 sentiment]$ python mapper_local_v1.0.py
Traceback (most recent call last):
File "mapper_local_v1.0.py", line 16, in <module>
tokenizer = nltk.data.load('nltk:tokenizers/punkt/english.pickle')
File "/usr/lib/python2.6/site-packages/nltk/data.py", line 774, in load
opened_resource = _open(resource_url)
File "/usr/lib/python2.6/site-packages/nltk/data.py", line 888, in _open
return find(path_, path + ['']).open()
File "/usr/lib/python2.6/site-packages/nltk/data.py", line 618, in find
raise LookupError(resource_not_found)
LookupError:
Resource u'tokenizers/punkt/english.pickle' not found. Please
use the NLTK Downloader to obtain the resource:
>>>nltk.download()
Searched in:
- '/home/ec2-user/nltk_data'
- '/usr/share/nltk_data'
- '/usr/local/share/nltk_data'
- '/usr/lib/nltk_data'
- '/usr/local/lib/nltk_data'
- u''
このプログラムをUnixマシンで実行しようとしています。
エラーメッセージに従って、UNIXマシンからpython Shellにログインしてから、以下のコマンドを使用しました。
import nltk
nltk.download()
そして、d- down loaderおよびl- listオプションを使用して利用可能なものをすべてダウンロードしましたが、それでも問題は解決しません。
インターネットで解決策を見つけるために最善を尽くしましたが、上記の手順で述べたのと同じ解決策を得ました。
私は解決策を得ました:
import nltk
nltk.download()
ダウンローダー> d
どのパッケージをダウンロードしますか(l = list; x = cancel)?識別子> punkt
alvas 'answer に追加するには、punkt
コーパスのみをダウンロードできます。
nltk.download('punkt')
all
をダウンロードするのはやり過ぎのように思えます。それがあなたの望むものでない限り。
punkt
モデルのみをダウンロードする場合:
import nltk
nltk.download('punkt')
必要なデータ/モデルがわからない場合は、NLTKからpopularデータセット、モデル、タガーをインストールできます。
import nltk
nltk.download('popular')
上記のコマンドでは、GUIを使用してデータセットをダウンロードする必要はありません。
シェルから次を実行できます。
Sudo python -m nltk.downloader punkt
人気のNLTKコーパス/モデルをインストールする場合:
Sudo python -m nltk.downloader popular
all NLTK corpora/modelsをインストールする場合:
Sudo python -m nltk.downloader all
ダウンロードしたリソースを一覧表示するには:
python -c 'import os; import nltk; print os.listdir(nltk.data.find("corpora"))'
python -c 'import os; import nltk; print os.listdir(nltk.data.find("tokenizers"))'
最近私に同じことが起こりました。「punkt」パッケージをダウンロードするだけで動作します。
「利用可能なものをすべてダウンロード」した後に「リスト」(l)を実行すると、すべてが次の行のようにマークされますか?:
[*] punkt............... Punkt Tokenizer Models
この行に星が付いている場合、それはあなたがそれを持っていることを意味し、nltkはそれをロードできるはずです。
import nltk
nltk.download('punkt')
Pythonプロンプトを開き、上記のステートメントを実行します。
sent_tokenize関数はPunktSentenceTokenizernltk.tokenize.punktモジュールから。このインスタンスはすでにトレーニングされており、多くのヨーロッパ言語でうまく機能します。したがって、句読点と文字が文の終わりと新しい文の始まりをマークすることを知っています。
入力してpythonコンソールに移動します
$ python
ターミナルで。次に、pythonシェルに次の2つのコマンドを入力して、それぞれのパッケージをインストールします。
>> nltk.download( 'punkt')>> nltk.download( 'averaged_perceptron_tagger')
これで問題は解決しました。
次のコードを実行します。
import nltk
nltk.download()
この後、NLTKダウンローダーが表示されます。
私の問題は、ルートユーザーとしてnltk.download('all')
を呼び出しましたが、最終的にnltkを使用したプロセスは、コンテンツがダウンロードされた/ root/nltk_dataにアクセスできない別のユーザーでした。
そのため、ダウンロード場所からNLTKが次のように検索しようとしていたパスの1つにすべてを単純にコピーしました。
cp -R /root/nltk_data/ /home/ubuntu/nltk_data
単純なnltk.download()はこの問題を解決しません。私は以下を試してみましたが、うまくいきました:
nltkフォルダーにトークナイザーフォルダーを作成し、punktフォルダーをトークナイザーフォルダーにコピーします。
これでうまくいきます! フォルダ構造は図に示すとおりである必要があります
私にとっては上記のどれもうまくいきませんでしたので、私はすべてのファイルをウェブサイトから手でダウンロードしました http://www.nltk.org/nltk_data/ 「nltk_data」フォルダー内の「tokenizers」。きれいな解決策ではありませんが、それでも解決策です。
フォルダーを再配置する必要がありますtokenizers
フォルダーをnltk_data
フォルダーに移動します。 corpora
フォルダーを含むtokenizers
フォルダーを含むnltk_data
フォルダーがある場合、これは機能しません。
同じ問題に直面しました。すべてをダウンロードした後、まだ「パンク」エラーがありました。 WindowsマシンでC:\ Users\vaibhav\AppData\Roaming\nltk_data\tokenizersでパッケージを検索したところ、「punkt.Zip」が表示されています。どういうわけか、ZipがC:\ Users\vaibhav\AppData\Roaming\nltk_data\tokenizers\punkに抽出されていないことに気付きました。 Zipを抽出すると、音楽のように機能しました。