Успешно установил объект TfidfVectorizer
и сохранил его без ошибки как объект pickle
. У меня проблемы с загрузкой для последующего использования.
Я пытался использовать joblib
, pickle
и разные версии Python.Ни один из них не работал.
Сохранение кода:
import pickle
vectorizer = TfidfVectorizer(...)
doc_mat = vectorizer.fit_transform(corpus)
with open("vectorizer.pickle", "wb") as f:
pickle.dump(vectorizer, f)
with open("docmat.pickle", "wb") as f:
pickle.dump(doc_mat, f)
Загрузка кода в другом месте:
import pickle
# This load generates the error below
with open("vectorizer.pickle", 'rb') as f:
vectorizer = pickle.load(f)
# This load works:
with open("docmat.pickle", 'rb') as f:
doc_mat = pickle.load(f)
Сообщение об ошибке:
/usr/lib/python3.5/pickle.py in load(self)
1041 raise EOFError
1042 assert isinstance(key, bytes_types)
-> 1043 dispatch[key[0]](self)
1044 except _Stop as stopinst:
1045 return stopinst.value
/usr/lib/python3.5/pickle.py in load_global(self)
1340 module = self.readline()[:-1].decode("utf-8")
1341 name = self.readline()[:-1].decode("utf-8")
-> 1342 klass = self.find_class(module, name)
1343 self.append(klass)
1344 dispatch[GLOBAL[0]] = load_global
/usr/lib/python3.5/pickle.py in find_class(self, module, name)
1394 return _getattribute(sys.modules[module], name)[0]
1395 else:
-> 1396 return getattr(sys.modules[module], name)
1397
1398 def load_reduce(self):
AttributeError: module '__main__' has no attribute 'decode'