首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >Python泡菜错误: UnicodeDecodeError

Python泡菜错误: UnicodeDecodeError
EN

Stack Overflow用户
提问于 2015-10-05 20:53:53
回答 5查看 93.9K关注 0票数 124

我正在尝试使用Textblob进行文本分类。我首先训练模型并使用泡菜序列化它,如下所示。

代码语言:javascript
运行
复制
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()

当我试图运行这个文件时:

代码语言:javascript
运行
复制
import pickle
f = open('sample_classifier.pickle', encoding="utf8")
cl = pickle.load(f)    
f.close()

我知道这个错误:

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

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

我的SQL根本无法正常工作。这是一个错误的选择,SQL 我有问题。请立即回复,支持

我哪里出问题了?请帮帮忙。

EN

回答 5

Stack Overflow用户

回答已采纳

发布于 2015-10-05 21:03:51

通过选择open模式下的wb文件,您将选择用原始二进制文件进行写入。没有应用字符编码。

因此,要读取该文件,只需在模式open中使用rb

票数 217
EN

Stack Overflow用户

发布于 2015-10-05 21:09:48

我想你应该把文件打开

代码语言:javascript
运行
复制
f = open('sample_classifier.pickle', 'rb')
cl = pickle.load(f)   

你不应该破译它。pickle.load会给你一份你保存的任何东西的精确副本。此时,您应该能够像刚刚创建它一样使用cl

票数 40
EN

Stack Overflow用户

发布于 2021-04-16 17:10:01

也许该文件是使用latin1编码的:

代码语言:javascript
运行
复制
f = open('sample_classifier.pickle', encoding="latin1")
票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/32957708

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档