Ich versuche, eine Textklassifizierung mit Textblob durchzuführen. Ich trainiere zuerst das Modell und serialisiere es mit Pickle, wie unten gezeigt.
import pickle
from textblob.classifiers import NaiveBayesClassifier
with open('sample.csv', 'r') as fp:
cl = NaiveBayesClassifier(fp, format="csv")
f = open('sample_classifier.pickle', 'wb')
pickle.dump(cl, f)
f.close()
Und wenn ich versuche, diese Datei auszuführen:
import pickle
f = open('sample_classifier.pickle', encoding="utf8")
cl = pickle.load(f)
f.close()
Ich erhalte diesen Fehler:
UnicodeDecodeError: Der Codec 'utf-8' kann das Byte 0x80 an Position 0 nicht dekodieren: Ungültiges Startbyte
Folgendes ist der Inhalt meiner sample.csv:
Mein SQL funktioniert überhaupt nicht richtig. Dies war eine falsche Wahl, SQL
Ich habe Probleme. Bitte antworten Sie sofort, Support
Wo gehe ich hier falsch? Bitte helfen Sie.
Antworten:
Wenn Sie
open
die Datei im Moduswb
auswählen, schreiben Sie in rohe Binärdatei. Es wird keine Zeichenkodierung angewendet.Um diese Datei zu lesen, sollten Sie einfach
open
im Modus seinrb
.quelle
wb
Aufbewahrung der Gurke? oder gibt es einen Modus, in dem man die Gurke speichern kann, ohne sie imrb
Modus öffnen zu müssen ?wb
weil ein Problem, das ich noch nicht behoben habe, mich daran hindert, esw
mit Pickle zu verwenden. Es beschwert sich über das Schreiben von Bytes anstelle von Strings.Ich denke, Sie sollten die Datei als öffnen
Sie sollten es nicht entschlüsseln müssen.
pickle.load
Sie erhalten eine genaue Kopie von allem, was Sie gespeichert haben. An diesem Punkt sollten Sie in der Lage sein, so zu arbeiten,cl
als hätten Sie es gerade erstellt.quelle