J'essaie de faire une classification de texte en utilisant Textblob. Je commence par former le modèle et à le sérialiser à l'aide de cornichons, comme indiqué ci-dessous.
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()
Et quand j'essaye de lancer ce fichier:
import pickle
f = open('sample_classifier.pickle', encoding="utf8")
cl = pickle.load(f)
f.close()
Je reçois cette erreur:
UnicodeDecodeError: le codec 'utf-8' ne peut pas décoder l'octet 0x80 en position 0: octet de début non valide
Voici le contenu de mon sample.csv:
Mon SQL ne fonctionne pas du tout correctement. C'était un mauvais choix, SQL
J'ai des problèmes. S'il vous plaît répondre immédiatement, Support
Où est-ce que je vais mal ici? S'il vous plaît aider.
En choisissant de open
le fichier en mode wb
, vous choisissez d'écrire en binaire brut. Aucun codage de caractères n'est appliqué.
Ainsi, pour lire ce fichier, vous devriez simplement open
en mode rb
.
Je pense que vous devriez ouvrir le fichier en tant que
f = open('sample_classifier.pickle', 'rb')
cl = pickle.load(f)
Vous ne devriez pas avoir à le décoder. pickle.load
vous donnera une copie exacte de tout ce que vous avez sauvegardé. À ce stade, vous devriez pouvoir travailler avec cl
comme si vous veniez de le créer.