반응형
Python 피클 오류:유니코드 디코딩 오류
저는 Textblob을 이용하여 몇 가지 텍스트 분류를 하려고 합니다.저는 먼저 아래와 같이 피클을 사용하여 모델을 교육하고 시리얼화하고 있습니다.
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' 코덱이 위치 0에서 바이트 0x80을 디코딩할 수 없음: 시작 바이트가 잘못되었습니다.
다음은 샘플의 내용입니다.csv:
제 SQL이 전혀 제대로 작동하지 않습니다.이건 잘못된 선택이었어, SQL
문제가 있어요.즉시 응답해 주십시오, 지원팀
제가 어디서 잘못되고 있나요?제발 도와주세요.
을 선택함으로써open
모드 파일wb
원시 이진법으로 쓰기를 선택했습니다.적용 중인 문자 인코딩이 없습니다.
따라서 이 파일을 읽으려면 간단히open
유행하는rb
.
제 생각에 당신은 다음과 같이 파일을 열어야 합니다.
f = open('sample_classifier.pickle', 'rb')
cl = pickle.load(f)
해독할 필요가 없습니다.pickle.load
저장한 내용의 정확한 사본을 제공합니다.이 시점에서, 당신은 당신과 함께 일할 수 있어야 합니다.cl
당신이 방금 만든 것처럼.
파일이 latin1을 사용하여 인코딩되었을 수 있습니다.
f = open('sample_classifier.pickle', encoding="latin1")
제안된 답변 중 오류를 해결하는 데 도움이 되지 않았기 때문에 대신 joblib로 전환했습니다.
import joblib
clf_loaded = joblib.load('classifier_file_name.joblib')
잘했어요!
이 코드가 작동하는지 시험해 보세요.
with open('your picle file name', 'rb') as f:
classifier = pickle.load(f, encoding="latin1")
- 참고: 수정되지 않은 경우 python2를 사용하는 경우 (인코딩) 유형을 ("utf-8")로 변경할 수 있지만, python3.x 인코딩을 사용하는 경우 기본값("utf-8") ...
언급URL : https://stackoverflow.com/questions/32957708/python-pickle-error-unicodedecodeerror
반응형
'programing' 카테고리의 다른 글
$.getJ의 차액SON 및 $.get (0) | 2023.08.01 |
---|---|
SQL에서 여러 파티션을 선택하는 방법은 무엇입니까? (0) | 2023.08.01 |
AF Networking 2.0 GET 요청에 헤더 추가 (0) | 2023.07.27 |
순차적인 월별 리드를 SQL의 열로 계산하시겠습니까? (0) | 2023.07.27 |
각진 5개의 재료 - 180도에서 고착된 폼 필드 (0) | 2023.07.27 |