2015-10-05 28 views
27

Textblob kullanarak metin sınıflandırması yapmaya çalışıyorum. İlk önce modeli eğitiyorum ve aşağıda gösterildiği gibi turşu kullanarak serileştiriyorum.Python turşu hatası: UnicodeDecodeError

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() 

Ve bu dosyayı çalıştırmayı denediğinizde:

import pickle 
f = open('sample_classifier.pickle', encoding="utf8") 
cl = pickle.load(f)  
f.close() 

bu hatayı alıyorum:

My SQL is not working correctly at all. This was a wrong choice, SQL

I've issues. Please respond immediately, Support

:

UnicodeDecodeError: 'utf-8' codec can't decode byte 0x80 in position 0: invalid start byte

ardından benim sample.csv içeriği olan

Burada neyi yanlış yapıyorum? Lütfen yardım et.

cevap

44

modundaki dosyayı open seçerek, ham ikili yazmayı seçiyorsunuz. Uygulanan karakter kodlaması yoktur.

Bu dosyayı okumak için rb numaralı telefondan open'u seçmelisiniz.

+0

Çok teşekkürler! Tamamen çalıştı! – 90abyss

11

Sana Bunu çözmek için olmamalıdır

f = open('sample_classifier.pickle', 'rb') 
cl = pickle.load(f) 

olarak dosyayı açmak gerektiğini düşünüyorum. pickle.load, kaydettiğiniz her şeyin tam bir kopyasını verecektir. Bu noktada, cl ile yeni oluşturmuşsunuz gibi çalışabilmeniz gerekir.