Ressource u'tokenizers / punkt / english.pickle 'nicht gefunden

96

Mein Code:

import nltk.data
tokenizer = nltk.data.load('nltk:tokenizers/punkt/english.pickle')

Fehlermeldung:

[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''

Ich versuche, dieses Programm auf einem Unix-Computer auszuführen:

Gemäß der Fehlermeldung habe ich mich von meinem Unix-Computer aus bei der Python-Shell angemeldet und dann die folgenden Befehle verwendet:

import nltk
nltk.download()

und dann habe ich alle verfügbaren Dinge mit D-Downloader- und L-List-Optionen heruntergeladen, aber das Problem bleibt bestehen.

Ich habe mein Bestes versucht, um die Lösung im Internet zu finden, aber ich habe die gleiche Lösung erhalten, die ich in den obigen Schritten erwähnt habe.

Supreeth Meka
quelle

Antworten:

170

Um die Antwort von alvas zu ergänzen , können Sie nur den punktKorpus herunterladen :

nltk.download('punkt')

Das Herunterladen allklingt für mich nach Overkill. Es sei denn, das ist was du willst.

yprez
quelle
Danke für den Namen des nltk-Korpus.
Austin A
Ich musste auf die neueste nltk-Version 3.2.5 aktualisieren, damit nltk.download ('punkt') funktioniert.
Charles Gomes
Folgendes erhalte ich, nachdem ich den obigen Code ausgeführt habe: [nltk_data] Fehler beim Laden des Punktes: <urlopen error [Errno 111] Verbindung [nltk_data] abgelehnt>
Paul
In Bezug auf meine vorherige Ausgabe musste ich lediglich mein VPN ausschalten.
Paul
59

Wenn Sie nur das punktModell herunterladen möchten:

import nltk
nltk.download('punkt')

Wenn Sie sich nicht sicher sind, welche Daten / Modelle Sie benötigen, können Sie die gängigen Datensätze, Modelle und Tagger von NLTK installieren :

import nltk
nltk.download('popular')

Mit dem obigen Befehl muss die GUI nicht zum Herunterladen der Datensätze verwendet werden.

Alvas
quelle
34

Ich habe die Lösung:

import nltk
nltk.download()

Sobald der NLTK Downloader startet

d) Download l) Liste u) Update c) Konfiguration h) Hilfe q) Beenden

Downloader> d

Welches Paket herunterladen (l = Liste; x = Abbrechen)? Kennung> Punkt

Supreeth Meka
quelle
25

Über die Shell können Sie Folgendes ausführen:

sudo python -m nltk.downloader punkt 

Wenn Sie die beliebten NLTK-Korpora / -Modelle installieren möchten:

sudo python -m nltk.downloader popular

Wenn Sie alle NLTK-Korpora / -Modelle installieren möchten :

sudo python -m nltk.downloader all

So listen Sie die heruntergeladenen Ressourcen auf:

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"))'
Franck Dernoncourt
quelle
10
import nltk
nltk.download('punkt')

Öffnen Sie die Python-Eingabeaufforderung und führen Sie die obigen Anweisungen aus.

Die Funktion sent_tokenize verwendet eine Instanz von PunktSentenceTokenizer aus dem Modul nltk.tokenize.punkt . Diese Instanz wurde bereits geschult und funktioniert gut für viele europäische Sprachen. Es weiß also, welche Satzzeichen und Zeichen das Ende eines Satzes und den Anfang eines neuen Satzes markieren.

Ramineni Ravi Teja
quelle
9

Das gleiche ist mir kürzlich passiert, Sie müssen nur das "punkt" -Paket herunterladen und es sollte funktionieren.

Wenn Sie "Liste" (l) ausführen, nachdem Sie "alle verfügbaren Dinge heruntergeladen" haben, wird alles wie in der folgenden Zeile markiert?:

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

Wenn Sie diese Linie mit dem Stern sehen, bedeutet dies, dass Sie sie haben und nltk sie laden kann.

eeelnico
quelle
1
Hey @ supreeth-meka, ich bin froh, dass du die Lösung gefunden hast. Ich habe dir vorgeschlagen, kannst du meine Antwort bitte als "Akzeptiert" markieren?
Eeelnico
5

Gehen Sie zur Python-Konsole, indem Sie Folgendes eingeben

$ python

in Ihrem Terminal. Geben Sie dann die folgenden 2 Befehle in Ihre Python-Shell ein, um die entsprechenden Pakete zu installieren:

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

Dies löste das Problem für mich.

Dharani Manne
quelle
2

Mein Problem war, dass ich angerufen habe nltk.download('all') als Root-Benutzer , aber der Prozess, der schließlich nltk verwendete, war ein anderer Benutzer, der keinen Zugriff auf / root / nltk_data hatte, wo der Inhalt heruntergeladen wurde.

Also habe ich einfach alles rekursiv vom Download-Speicherort auf einen der Pfade kopiert, auf denen NLTK danach gesucht hat:

cp -R /root/nltk_data/ /home/ubuntu/nltk_data
Raj
quelle
2
  1. Führen Sie den folgenden Code aus:

    import nltk
    nltk.download()
  2. Danach wird der NLTK-Downloader angezeigt.

  3. Wählen Sie Alle Pakete.
  4. Laden Sie punkt herunter.
Mayank Kumar
quelle
2

Ich habe eine Fehlermeldung erhalten, obwohl ich Folgendes importiert habe:

import nltk
nltk.download()

Aber für Google Colab löste dies mein Problem.

   !python3 -c "import nltk; nltk.download('all')"
Kripalu Sar
quelle
1

Simple nltk.download () löst dieses Problem nicht. Ich habe Folgendes versucht und es hat bei mir funktioniert:

Erstellen Sie im Ordner nltk einen Tokenizer-Ordner und kopieren Sie Ihren Punkt-Ordner in den Tokenizer-Ordner.

Das wird funktionieren.! Die Ordnerstruktur muss der Abbildung entsprechen

Deepthi Karnam
quelle
1

Sie müssen Ihre Ordner neu anordnen. Verschieben Sie Ihren tokenizersOrdner in einen nltk_dataOrdner. Das funktioniert nicht , wenn Sie nltk_dataOrdner mit corporaOrdnern mit tokenizersOrdnern

Verbündeter
quelle
1

Für mich hat nichts davon funktioniert, also habe ich einfach alle Dateien von Hand von der Website http://www.nltk.org/nltk_data/ heruntergeladen und sie auch von Hand in eine Datei "Tokenizer" innerhalb von "nltk_data" eingefügt " Ordner. Keine schöne Lösung, aber dennoch eine Lösung.

Camille
quelle
1

Nach dem Hinzufügen dieser Codezeile wird das Problem behoben:

nltk.download('punkt')
Ankit Rai
quelle
0

Ich stand vor dem gleichen Problem. Nach dem Herunterladen war immer noch ein Punktfehler vorhanden. Ich habe das Paket auf meinem Windows-Computer unter C: \ Users \ vaibhav \ AppData \ Roaming \ nltk_data \ tokenizers durchsucht und sehe dort "punkt.zip". Ich habe festgestellt, dass die Zip-Datei irgendwie nicht in C: \ Users \ vaibhav \ AppData \ Roaming \ nltk_data \ tokenizers \ punk extrahiert wurde. Nachdem ich den Reißverschluss herausgezogen hatte, funktionierte es wie Musik.

Vaibhav Singh
quelle
0

Stellen Sie einfach sicher, dass Sie JupyterNotebook verwenden, und gehen Sie in einem Notebook wie folgt vor:

import nltk

nltk.download()

Dann erscheint ein Popup-Fenster (mit Informationen https://raw.githubusercontent.com/nltk/nltk_data/gh-pages/index.xml ). Von diesem müssen Sie alles herunterladen.

Führen Sie dann Ihren Code erneut aus.

Divyanshu Parkhe
quelle