Я пытаюсь провести классификацию текста с помощью Textblob. Сначала я обучаю модель и сериализую ее с помощью pickle, как показано ниже.
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()
И когда я пытаюсь запустить этот файл:
import pickle
f = open('sample_classifier.pickle', encoding="utf8")
cl = pickle.load(f)
f.close()
Я получаю такую ошибку:
UnicodeDecodeError: кодек utf-8 не может декодировать байт 0x80 в позиции 0: недопустимый начальный байт
Ниже приводится содержимое моего файла sample.csv:
Мой SQL вообще не работает правильно. Это был неправильный выбор, SQL
У меня проблемы. Пожалуйста, ответьте немедленно, Поддержка
Где я здесь ошибаюсь? Пожалуйста помоги.
Ответы:
Выбирая
open
файл в режимеwb
, вы выбираете запись в необработанном двоичном формате. Кодировка символов не применяется.Таким образом, чтобы прочитать этот файл, вы должны просто
open
в режимеrb
.источник
wb
при сохранении рассола? или есть режим, который можно использовать для сохранения рассола, который не требует его открытия с помощьюrb
режима?wb
потому что некоторая проблема, которую я еще не исправил, мешает мне использоватьw
с pickle. Он жалуется на запись байтов вместо строк.Я думаю, вам следует открыть файл как
f = open('sample_classifier.pickle', 'rb') cl = pickle.load(f)
Вам не нужно его декодировать.
pickle.load
даст вам точную копию того, что вы сохранили. На этом этапе вы должны иметь возможность работать с ним,cl
как если бы вы только что создали его.источник