Python pickle错误:UnicodeDecodeError

90a*_*yss 69 python pickle textblob

我正在尝试使用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()
Run Code Online (Sandbox Code Playgroud)

当我尝试运行此文件时:

import pickle
f = open('sample_classifier.pickle', encoding="utf8")
cl = pickle.load(f)    
f.close()
Run Code Online (Sandbox Code Playgroud)

我收到此错误:

UnicodeDecodeError:'utf-8'编解码器无法解码位置0的字节0x80:无效的起始字节

以下是我的sample.csv的内容:

我的SQL根本无法正常工作.这是一个错误的选择,SQL

我有问题.请立即回复,支持

我在哪里错了?请帮忙.

don*_*mus 115

通过选择open模式下的文件wb,您选择使用原始二进制文件.没有应用字符编码.

因此,要读取此文件,您应该只是open在模式下rb.


sau*_*atz 23

我认为你应该打开文件

f = open('sample_classifier.pickle', 'rb')
cl = pickle.load(f)   
Run Code Online (Sandbox Code Playgroud)

你不应该解码它. pickle.load将为您提供所保存的任何内容的精确副本.此时,您应该能够cl像创建它一样工作.