পাইথন আচার ত্রুটি: ইউনিকোডডেকোডেরর


93

আমি টেক্সটব্লব ব্যবহার করে কিছু পাঠ্য শ্রেণিবদ্ধকরণ করার চেষ্টা করছি। আমি প্রথমে মডেলটিকে প্রশিক্ষণ দিচ্ছি এবং নীচের মতো আচার ব্যবহার করে এটি সিরিয়াল করছি।

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 পজিশনে ডিকোড করতে পারে না: অবৈধ শুরু বাইট

নিম্নলিখিতটি আমার নমুনা। সিএসভি এর সামগ্রী রয়েছে:

আমার এসকিউএল মোটেও সঠিকভাবে কাজ করছে না। এটি একটি ভুল পছন্দ ছিল, এসকিউএল

আমি সমস্যা আছে। সমর্থন করুন, সঙ্গে সঙ্গে প্রতিক্রিয়া

আমি এখানে কোথায় ভুল করছি? সাহায্য করুন.


উত্তর:


153

openমোডে ফাইলটি চয়ন করে wb, আপনি কাঁচা বাইনারি লিখতে বেছে নিচ্ছেন। কোনও অক্ষর এনকোডিং প্রয়োগ হচ্ছে না।

এই ফাইলটি পড়ার জন্য, আপনার কেবল openমোডে থাকা উচিত rb


wbআচার সংরক্ষণের সময় কি ব্যবহার করার কোনও কারণ আছে ? বা আচার সংরক্ষণের জন্য এমন কোনও মোড ব্যবহার করা যেতে পারে যার জন্য rbমোড দিয়ে এটি খোলার প্রয়োজন হয় না ?
tsando

4
@tsando আমি ব্যবহার করি wbকারণ আমি এখনও কিছু সমস্যার সমাধান করতে পারিনি কারণ wআচার ব্যবহারে আমাকে বাধা দেয় । এটি স্ট্রিংয়ের পরিবর্তে বাইট লেখার বিষয়ে অভিযোগ করে।
গিগাফ্লপ

ধন্যবাদ ... আপনি আমার দিনটি রক্ষা করেছেন
কুমার কেএস

27

আমার মনে হয় আপনার ফাইলটি ওপেন করা উচিত

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

আপনি এটি ডিকোড করতে হবে না। pickle.loadআপনি যা কিছু সঞ্চয় করেছেন তার একটি অনুলিপি আপনাকে দিবে। এই মুহুর্তে আপনার সাথে কাজ করতে সক্ষম হওয়া উচিত clযদি আপনি এটি স্রেফ তৈরি করেছেন।

আমাদের সাইট ব্যবহার করে, আপনি স্বীকার করেছেন যে আপনি আমাদের কুকি নীতি এবং গোপনীয়তা নীতিটি পড়েছেন এবং বুঝতে পেরেছেন ।
Licensed under cc by-sa 3.0 with attribution required.