Estoy tratando de hacer una clasificación de texto usando Textblob. Primero estoy entrenando el modelo y serializándolo usando pickle como se muestra a continuación.
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()
Y cuando intento ejecutar este archivo:
import pickle
f = open('sample_classifier.pickle', encoding="utf8")
cl = pickle.load(f)
f.close()
Me sale este error:
UnicodeDecodeError: el códec 'utf-8' no puede decodificar el byte 0x80 en la posición 0: byte de inicio no válido
A continuación se muestra el contenido de mi sample.csv:
Mi SQL no funciona correctamente en absoluto. Esta fue una elección incorrecta, SQL
Tengo problemas. Responda de inmediato, soporte
¿Dónde voy mal aquí? Por favor ayuda.

Respuestas:
Al elegir
openel modo de archivowb, está eligiendo escribir en binario sin formato. No se aplica ninguna codificación de caracteres.Por lo tanto, para leer este archivo, simplemente debe estar
openen modorb.fuente
wbal guardar el pepinillo? ¿O hay un modo que se pueda usar para guardar el pepinillo que no requiera abrirlo con elrbmodo?wbporque un problema que aún tengo que solucionar me impide usarwcon pickle. Se queja de escribir bytes en lugar de cadenas.Creo que deberías abrir el archivo como
f = open('sample_classifier.pickle', 'rb') cl = pickle.load(f)No debería tener que decodificarlo.
pickle.loadle dará una copia exacta de lo que haya guardado. En este punto, debería poder trabajar con élclcomo si lo acabara de crear.fuente