Hi ich versuche NLTK zu lernen. Ich bin auch neu in Python. Ich versuche Folgendes.
%Vor%Ich bekomme die folgende Fehlermeldung
Traceback (letzter Aufruf zuletzt): Datei "", Zeile 1, in nltk.pos_tag (nltk.word_tokenize ("John lebte in Kalifornien")) Datei "C: \ Python34 \ lib \ Site-Pakete \ nltk \ tag__init __. py", Zeile 100, in pos_tag tagger = load (_POS_TAGGER) Datei "C: \ Python34 \ lib \ Site-Pakete \ nltk \ data.py", Zeile 779, wird geladen resource_val = pickle.load (opened_resource) UnicodeDecodeError: 'ascii' Codec kann Byte 0xcb in Position 0 nicht dekodieren: Ordinal nicht in Bereich (128)
Ich habe alle verfügbaren Modelle heruntergeladen (einschließlich der maxent_treebank_pos_tagger)
Die Standardsystemcodierung ist UTF-8
%Vor%Ich habe die Datei data.py geöffnet und dies ist der verfügbare Inhalt.
%Vor%Was mache ich hier falsch?
OK, ich habe die Lösung gefunden. Sieht aus wie ein Problem in der Quelle selbst. Hier klicken
Ich habe data.py geöffnet und die Zeile 779 wie folgt geändert
%Vor%Das grundlegende Problem besteht darin, dass NLTK 2.x für Python 3 nicht unterstützt wird und NLTK 3 eine fortlaufende Aufgabe ist, eine vollständige Python 3-kompatible Version zu veröffentlichen.
Die einfache Problemumgehung besteht darin, das neueste NLTK 3.x herunterzuladen und stattdessen zu verwenden.
Wenn Sie an der Fertigstellung des Ports in Python 3 teilnehmen möchten, benötigen Sie wahrscheinlich ein tieferes Verständnis von Unterschiede zwischen Python 2 und Python 3 ; Insbesondere ist in diesem Fall der grundlegende String-Typ in Python 3 ein Unicode-String ( u'...'
), nicht ein Byte-String (Python 3 b'...'
) wie in Python 2. Siehe auch Ссылка
FWIW, siehe auch Ссылка für eine identische Fehlerbehebung. Der Fehler, den Sie verlinkt haben, wurde bereits in NLTK 3.0 behoben (vermutlich durch eine Korrektur der eigentlichen Dateien, ich denke in 3.0a3).
Mit Python 3.4 und NLTK 3 können Sie das beheben, indem Sie:
%Vor% Beachten Sie, dass der zu öffnende Modus rb
und encoding='uft-8'
ist. Für diese Lösung muss data.py
nicht bearbeitet werden.
Ich habe alle Antworten ausprobiert, aber nichts hat funktioniert, also folgen Sie den folgenden 2 Links und dann
english.pickle
und ersetzte die Datei
english.pickle
Dateien sind bereits in meinem nltk_data
-Tags-Ordner vorhanden
- & gt; C: \ nltk_data \ taggers \ maxent_treebank_pos_tagger mit dem neuen. PS: Ich weiß nicht, was noch alles betroffen sein könnte, aber im Moment geht es mir gut.
Tags und Links python-3.x nltk