属性错误: 'CountVectorizer'对象没有属性'_load_specials'



我正在使用以下命令转储预训练的doc2vec模型

model.train(labeled_data,total_examples=model.corpus_count, epochs=model.epochs)    
print("Model Training Done")
#Saving the created model
model.save(project_name + '_doc2vec_vectorizer.npz')
vectorizer=CountVectorizer()
vectorizer.fit(df[0])
vec_file = project_name + '_doc2vec_vectorizer.npz'
**pickle.dump(vectorizer, open(vec_file, 'wb'))**

vdb = db['vectorizers']

然后我在另一个功能中使用以下命令加载Doc2vec模型

loaded_vectorizer = pickle.load(open(vectorizer, 'rb')) 

然后得到错误CountVectorizer在下面的行上没有属性_load_specials,即model2

model2= gensim.models.doc2vec.Doc2Vec.load(vectorizer)

我使用的gensim版本是3.8.3,因为我使用的是Labeled Sentence类

Gensim模型类上的.load()方法只能与使用Gensim.save()方法保存到文件*的同一类的对象一起使用。

您的代码显示您试图将Doc2Vec.load()vectorizer对象本身一起使用(而不是以前保存的model的文件路径(,因此会出现错误。

如果你真的想榨菜保存&然后pickle加载vectorizer对象,确保:

  • 使用与model不同的文件路径,否则将覆盖model文件
  • 使用pickle方法(而不是Gensim方法(重新加载pickle保存的任何内容

最新更新