Saya mencoba melakukan klasifikasi teks menggunakan Textblob. Saya pertama kali melatih model dan membuat serial menggunakan acar seperti yang ditunjukkan di bawah ini.
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()
Dan ketika saya mencoba menjalankan file ini:
import pickle
f = open('sample_classifier.pickle', encoding="utf8")
cl = pickle.load(f)
f.close()
Saya mendapatkan kesalahan ini:
UnicodeDecodeError: 'utf-8' codec tidak dapat mendekode byte 0x80 di posisi 0: byte awal tidak valid
Berikut adalah konten sample.csv saya:
SQL saya sama sekali tidak berfungsi dengan benar. Ini adalah pilihan yang salah, SQL
Saya punya masalah. Mohon balas segera, Dukungan
Di mana kesalahan saya di sini? Tolong bantu.
Jawaban:
Dengan memilih ke
open
file dalam modewb
, Anda memilih untuk menulis dalam biner mentah. Tidak ada pengkodean karakter yang diterapkan.Jadi untuk membaca file ini, Anda cukup
open
dalam moderb
.sumber
wb
saat menyimpan acar? atau adakah mode yang dapat digunakan untuk menyimpan acar yang tidak perlu dibuka denganrb
mode?wb
karena beberapa masalah yang belum saya perbaiki mencegah saya menggunakanw
dengan acar. Ia mengeluh tentang menulis byte, bukan string.Saya pikir Anda harus membuka file sebagai
f = open('sample_classifier.pickle', 'rb') cl = pickle.load(f)
Anda tidak perlu memecahkan kode itu.
pickle.load
akan memberi Anda salinan persis dari apa pun yang Anda simpan. Pada titik ini Anda, harus dapat bekerja dengancl
seolah-olah Anda baru saja membuatnya.sumber