पायथन अचार त्रुटि: यूनिकोडडबलप्रोअर


95

मैं 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()

मुझे यह त्रुटि मिली:

यूनिकोडडॉफॉर्सेट: 'utf-8' कोडेक 0x80 को बाइट नहीं कर सकता 0 स्थिति में 0: अमान्य शुरुआत बाइट

निम्नलिखित मेरे नमूने की सामग्री हैं।

मेरी SQL सही तरीके से काम नहीं कर रही है। यह एक गलत विकल्प था, SQL

मेरे पास मुद्दे हैं। कृपया तुरंत प्रतिक्रिया दें, समर्थन करें

मैं यहाँ गलत कहाँ जा रहा हूँ? कृपया मदद करे।


जवाबों:


157

करने का विकल्प चुनकर openमोड में फ़ाइल wb, आप कच्चे बाइनरी में लिखने के लिए चुन रहे हैं। कोई वर्ण एन्कोडिंग लागू नहीं किया जा रहा है।

इस प्रकार इस फ़ाइल को पढ़ने के लिए, आपको बस openमोड में होना चाहिए rb


wbअचार को बचाते समय उपयोग करने का कोई कारण है ? या वहाँ एक मोड है जो अचार को बचाने के लिए उपयोग कर सकता है जिसे इसे rbमोड के साथ खोलने की आवश्यकता नहीं है?
tsando

1
@tsando मैं उपयोग करता हूं wbक्योंकि मुझे अभी तक ठीक करने के लिए कुछ मुद्दे wअचार के साथ उपयोग करने से रोकते हैं । यह तार के बजाय बाइट्स लिखने के बारे में शिकायत करता है।
गिगाफ्लॉप

धन्यवाद ... आपने मेरा दिन बचा लिया
कुमार केएस

27

मुझे लगता है कि आपको फ़ाइल को खोलना चाहिए

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

आपको इसे डिकोड नहीं करना चाहिए। pickle.loadआपको जो कुछ भी बचाना है उसकी एक सटीक प्रति आपको देगा। इस बिंदु पर, आप के साथ काम करने में सक्षम होना चाहिए clजैसे कि आपने अभी इसे बनाया है।

हमारी साइट का प्रयोग करके, आप स्वीकार करते हैं कि आपने हमारी Cookie Policy और निजता नीति को पढ़ और समझा लिया है।
Licensed under cc by-sa 3.0 with attribution required.