Beim Versuch, den punkt
Tokenizer zu laden ...
import nltk.data
tokenizer = nltk.data.load('nltk:tokenizers/punkt/english.pickle')
... a LookupError
wurde angehoben:
> LookupError:
> *********************************************************************
> Resource 'tokenizers/punkt/english.pickle' not found. Please use the NLTK Downloader to obtain the resource: nltk.download(). Searched in:
> - 'C:\\Users\\Martinos/nltk_data'
> - 'C:\\nltk_data'
> - 'D:\\nltk_data'
> - 'E:\\nltk_data'
> - 'E:\\Python26\\nltk_data'
> - 'E:\\Python26\\lib\\nltk_data'
> - 'C:\\Users\\Martinos\\AppData\\Roaming\\nltk_data'
> **********************************************************************
>>> nltk.download()
Antworten:
Ich hatte das gleiche Problem. Gehen Sie in eine Python-Shell und geben Sie Folgendes ein:
Dann erscheint ein Installationsfenster. Gehen Sie zur Registerkarte "Modelle" und wählen Sie "Punkt" in der Spalte "Kennung" aus. Klicken Sie dann auf Herunterladen und die erforderlichen Dateien werden installiert. Dann sollte es funktionieren!
quelle
tokenizer = nltk.data.load('nltk:tokenizers/punkt/english.pickle')
sollte dann funktionieren und Sie können Tokenizer wie folgt verwenden :tokenizer.tokenize('The cat. The mat. It Sat.')
. Hier versucht nltk, den relativen Pfadtokenizers/punkt/english.pickle
für mehrere Positionen aufzulösen . ZB unter Windows sieht es in%APPDATA%\nltk_data\tokenizers\punkt\english.pickle
oder ausC:\nltk_data\tokenizers\punkt\english.pickle
(gleich für D: und E :). Wenn Sie also sicherstellen, dass die Datei punkt.zip so entpackt ist, dass einer dieser Speicherorte vorhanden ist, sollte sie ihn finden können.NLTK_DATA
Umgebungsvariable so einstellen, dass sie auf den Ordner nltk_data verweist, der%NLTK_DATA%\tokenizers\punkt\english.pickle
vorhanden ist.ssh
Verbindung), gibt es kein GUI-Fenster und daher keine Registerkarte "Modelle".Sie können das so machen.
Sie können die Tokenizer herunterladen, indem Sie sie
punkt
als Argument an diedownload
Funktion übergeben. Die Wort- und Satz-Tokenizer sind dann auf verfügbarnltk
.Wenn Sie herunterladen wollen alles heißt
chunkers
,grammars
,misc
,sentiment
,taggers
,corpora
,help
,models
,stemmers
,tokenizers
, gehen nicht alle Argumente wie diese.Weitere Informationen finden Sie hier. https://www.nltk.org/data.html
quelle
python -c "import nltk; nltk.download('punkt')" [nltk_data] Downloading package punkt to /home/my_user/nltk_data... [nltk_data] Error downloading 'punkt' from [nltk_data] <https://raw.githubusercontent.com/nltk/nltk_data/gh- [nltk_data] pages/packages/tokenizers/punkt.zip>: HTTP Error [nltk_data] 503: first byte timeout
Das hat gerade für mich funktioniert:
Sätze_Tokenisiert ist eine Liste einer Liste von Token:
Die Sätze stammen aus dem Beispiel- Ipython-Notizbuch zum Buch "Mining the Social Web, 2. Auflage".
quelle
Führen Sie in der Bash-Befehlszeile Folgendes aus:
quelle
nltk_data
in meinem Home-Verzeichnis und speichert punkt darin. Ich habe Fedora 27, Py3.6.Das funktioniert bei mir:
In Windows erhalten Sie auch nltk Downloader
quelle
Einfach
nltk.download()
wird dieses Problem nicht lösen. Ich habe Folgendes versucht und es hat bei mir funktioniert:nltk
Erstellen Sie im Ordner einentokenizers
Ordner und kopieren Sie Ihrenpunkt
Ordner in einentokenizers
Ordner.Das wird funktionieren.! Die Ordnerstruktur muss wie im Bild gezeigt sein! 1
quelle
nltk hat seine vorgefertigten Tokenizer-Modelle. Das Modell wird von intern vordefinierten Webquellen heruntergeladen und im Pfad des installierten nltk-Pakets gespeichert, während die folgenden möglichen Funktionsaufrufe ausgeführt werden.
ZB 1 tokenizer = nltk.data.load ('nltk: tokenizers / punkt / english.pickle')
ZB 2 nltk.download ('punkt')
Wenn Sie den obigen Satz in Ihrem Code aufrufen, stellen Sie sicher, dass Sie über eine Internetverbindung ohne Firewall-Schutz verfügen.
Ich möchte einen besseren Weg zur Lösung des oben genannten Problems mit einem tieferen Verständnis vorstellen.
Bitte befolgen Sie die folgenden Schritte und genießen Sie die Tokenisierung von englischen Wörtern mit nltk.
Schritt 1: Laden Sie zuerst das Modell "english.pickle" über den folgenden Webpfad herunter.
Gehen Sie zum Link " http://www.nltk.org/nltk_data/ " und klicken Sie auf "Download" bei Option "107. Punkt Tokenizer Models"
Schritt 2: Extrahieren Sie die heruntergeladene Datei "punkt.zip" und suchen Sie die Datei "english.pickle" daraus und legen Sie sie in Laufwerk C ab.
Schritt 3: Kopieren, Einfügen des folgenden Codes und Ausführen.
Lassen Sie mich wissen, wenn Sie auf ein Problem stoßen
quelle
Unter Jenkins kann dies behoben werden, indem Virtualenv Builder auf der Registerkarte " Erstellen" folgenden Code hinzugefügt wird :
python -m nltk.downloader punkt
quelle
Ich bin auf dieses Problem gestoßen, als ich versucht habe, Pos-Tagging in nltk durchzuführen. Ich habe es richtig verstanden, indem ich ein neues Verzeichnis zusammen mit dem Korpora-Verzeichnis mit dem Namen "taggers" erstellt und max_pos_tagger in Verzeichnis-Tagger kopiert habe.
hoffe es funktioniert auch bei dir. Viel Glück damit !!!.
quelle
Gehen Sie in Spyder zu Ihrer aktiven Shell und laden Sie nltk mit den folgenden 2 Befehlen herunter. import nltk nltk.download () Dann sollte das NLTK-Downloader-Fenster wie folgt geöffnet sein. Gehen Sie in diesem Fenster zur Registerkarte 'Models' und klicken Sie auf 'punkt' und laden Sie 'punkt' herunter.
quelle
Überprüfen Sie, ob Sie alle NLTK-Bibliotheken haben.
quelle
Die Daten der Punkt-Tokenizer sind mit über 35 MB ziemlich groß. Dies kann eine große Sache sein, wenn Sie wie ich nltk in einer Umgebung wie Lambda ausführen, die nur über begrenzte Ressourcen verfügt.
Wenn Sie nur einen oder möglicherweise einige Sprach-Tokenizer benötigen, können Sie die Größe der Daten drastisch reduzieren, indem Sie nur diese
.pickle
Sprachdateien einbeziehen.Wenn Sie nur Englisch unterstützen müssen, kann Ihre nltk-Datengröße auf 407 KB reduziert werden (für die Python 3-Version).
Schritte
nltk_data/tokenizers/punkt
Wenn Sie Python 3 verwenden, fügen Sie einen weiteren Ordner hinzu,PY3
damit Ihre neue Verzeichnisstruktur aussiehtnltk_data/tokenizers/punkt/PY3
. In meinem Fall habe ich diese Ordner im Stammverzeichnis meines Projekts erstellt..pickle
Datei und verschieben Sie die Dateien für die zu unterstützenden Sprachen in denpunkt
soeben erstellten Ordner. Hinweis: Python 3-Benutzer sollten die Pickles aus demPY3
Ordner verwenden. Wenn Ihre Sprachdateien geladen sind, sollte es ungefähr so aussehen: Beispiel-Ordner-Strukturnltk_data
Ordner zu den Suchpfaden hinzufügen , vorausgesetzt, Ihre Daten befinden sich nicht in einem der vordefinierten Suchpfade . Sie können Ihre Daten entweder mit der Umgebungsvariablen hinzufügenNLTK_DATA='path/to/your/nltk_data'
. Sie können zur Laufzeit in Python auch einen benutzerdefinierten Pfad hinzufügen, indem Sie Folgendes tun:ANMERKUNG: Wenn Sie die Daten zur Laufzeit nicht laden oder mit Ihrem Code bündeln müssen, erstellen Sie Ihre
nltk_data
Ordner am besten an den integrierten Speicherorten, nach denen nltk sucht .quelle
nltk.download()
wird dieses Problem nicht lösen. Ich habe Folgendes versucht und es hat bei mir funktioniert:im
'...AppData\Roaming\nltk_data\tokenizers'
Ordner heruntergeladen Extraktpunkt.zip
Ordner an der gleichen Stelle.quelle
In
Python-3.6
kann ich den Vorschlag im Traceback sehen. Das ist sehr hilfreich. Daher werde ich euch sagen, dass ihr auf den Fehler achten sollt, die ihr habt. Die meisten Antworten liegen in diesem Problem;).Und dann, wie von anderen Leuten hier vorgeschlagen, entweder mit dem Python-Terminal oder mit einem Befehl, wie
python -c "import nltk; nltk.download('wordnet')"
wir sie im laufenden Betrieb installieren können. Sie müssen diesen Befehl nur einmal ausführen und dann werden die Daten lokal in Ihrem Home-Verzeichnis gespeichert.quelle
Ich hatte ein ähnliches Problem bei der Verwendung eines zugewiesenen Ordners für mehrere Downloads und musste den Datenpfad manuell anhängen:
Einzel-Download, kann wie folgt erreicht werden (funktioniert)
Dieser Code funktioniert, dh nltk merkt sich den in der Download-Funktion übergebenen Download-Pfad. Auf den anderen Nads erhalte ich beim Herunterladen eines nachfolgenden Pakets einen ähnlichen Fehler wie vom Benutzer beschrieben:
Mehrere Downloads führen zu einem Fehler:
Error:
Ressourcenpunkt nicht gefunden. Bitte benutzen Sie den NLTK Downloader, um die Ressource zu erhalten:
import nltk nltk.download ('punkt')
Wenn ich nun den ntlk-Datenpfad an meinen Download-Pfad anhänge, funktioniert dies:
Dies funktioniert ... Ich bin mir nicht sicher, warum es in einem Fall funktioniert, aber nicht in dem anderen, aber die Fehlermeldung scheint zu implizieren, dass es beim zweiten Mal nicht in den Download-Ordner eingecheckt wird. NB: Verwenden von Windows 8.1 / Python3.7 / nltk3.5
quelle