web-dev-qa-db-ja.com

リソースu'tokenizers / punkt / english.pickle 'が見つかりません

私のコード:

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オプションを使用して利用可能なものをすべてダウンロードしましたが、それでも問題は解決しません。

インターネットで解決策を見つけるために最善を尽くしましたが、上記の手順で述べたのと同じ解決策を得ました。

89
Supreeth Meka

私は解決策を得ました:

import nltk
nltk.download()

nLTKダウンローダーが起動したら

d)ダウンロードl)リストu)更新c)構成h)ヘルプq)終了

ダウンローダー> d

どのパッケージをダウンロードしますか(l = list; x = cancel)?識別子> punkt

30
Supreeth Meka

alvas 'answer に追加するには、punktコーパスのみをダウンロードできます。

nltk.download('punkt')

allをダウンロードするのはやり過ぎのように思えます。それがあなたの望むものでない限り。

162
yprez

punktモデルのみをダウンロードする場合:

import nltk
nltk.download('punkt')

必要なデータ/モデルがわからない場合は、NLTKからpopularデータセット、モデル、タガーをインストールできます。

import nltk
nltk.download('popular')

上記のコマンドでは、GUIを使用してデータセットをダウンロードする必要はありません。

53
alvas

シェルから次を実行できます。

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"))'
24

最近私に同じことが起こりました。「punkt」パッケージをダウンロードするだけで動作します。

「利用可能なものをすべてダウンロード」した後に「リスト」(l)を実行すると、すべてが次の行のようにマークされますか?:

[*] punkt............... Punkt Tokenizer Models

この行に星が付いている場合、それはあなたがそれを持っていることを意味し、nltkはそれをロードできるはずです。

9
eeelnico
import nltk
nltk.download('punkt')

Pythonプロンプトを開き、上記のステートメントを実行します。

sent_tokenize関数はPunktSentenceTokenizernltk.tokenize.punktモジュールから。このインスタンスはすでにトレーニングされており、多くのヨーロッパ言語でうまく機能します。したがって、句読点と文字が文の終わりと新しい文の始まりをマークすることを知っています。

7

入力してpythonコンソールに移動します

$ python

ターミナルで。次に、pythonシェルに次の2つのコマンドを入力して、それぞれのパッケージをインストールします。

>> nltk.download( 'punkt')>> nltk.download( 'averaged_perceptron_tagger')

これで問題は解決しました。

5
Dharani Manne
  1. 次のコードを実行します。

    import nltk
    nltk.download()
    
  2. この後、NLTKダウンローダーが表示されます。

  3. すべてのパッケージを選択します。
  4. Punktをダウンロードします。
2
Mayank Kumar

私の問題は、ルートユーザーとしてnltk.download('all')を呼び出しましたが、最終的にnltkを使用したプロセスは、コンテンツがダウンロードされた/ root/nltk_dataにアクセスできない別のユーザーでした。

そのため、ダウンロード場所からNLTKが次のように検索しようとしていたパスの1つにすべてを単純にコピーしました。

cp -R /root/nltk_data/ /home/ubuntu/nltk_data
2
Raj

単純なnltk.download()はこの問題を解決しません。私は以下を試してみましたが、うまくいきました:

nltkフォルダーにトークナイザーフォルダーを作成し、punktフォルダーをトークナイザーフォルダーにコピーします。

これでうまくいきます! フォルダ構造は図に示すとおりである必要があります

1
Deepthi Karnam

私にとっては上記のどれもうまくいきませんでしたので、私はすべてのファイルをウェブサイトから手でダウンロードしました http://www.nltk.org/nltk_data/ 「nltk_data」フォルダー内の「tokenizers」。きれいな解決策ではありませんが、それでも解決策です。

1
Camille

フォルダーを再配置する必要がありますtokenizersフォルダーをnltk_dataフォルダーに移動します。 corporaフォルダーを含むtokenizersフォルダーを含むnltk_dataフォルダーがある場合、これは機能しません。

1
alily

同じ問題に直面しました。すべてをダウンロードした後、まだ「パンク」エラーがありました。 WindowsマシンでC:\ Users\vaibhav\AppData\Roaming\nltk_data\tokenizersでパッケージを検索したところ、「punkt.Zip」が表示されています。どういうわけか、ZipがC:\ Users\vaibhav\AppData\Roaming\nltk_data\tokenizers\punkに抽出されていないことに気付きました。 Zipを抽出すると、音楽のように機能しました。

0
vaibhav singh