I have been trying very long but unable to fix the below error
Error
File "C:\amnpawar\AIenv\lib\site-packages\gensim\models\deprecated\doc2vec.py", line 91, in load_old_doc2vec
old_model = Doc2Vec.load(*args, **kwargs)
File "C:\amnpawar\AIenv\lib\site-packages\gensim\models\deprecated\word2vec.py", line 1617, in load
model = super(Word2Vec, cls).load(*args, **kwargs)
File "C:\amnpawar\AIenv\lib\site-packages\gensim\models\deprecated\old_saveload.py", line 88, in load obj._load_specials(fname, mmap, compress, subname)
AttributeError: 'CountVectorizer' object has no attribute '_load_specials'
1条答案
按热度按时间q8l4jmvw1#
事实上,你已经为此挣扎了很长一段时间,但答案基本上是一样的,当你问它的一个版本在9月,我回答说:https://stackoverflow.com/a/73660204/130288
请勿尝试使用任何Gensim
.load()
方法加载非Gensim保存的对象。CountVectorizer
不是Gensim类。此错误表明您试图在此处加载的文件是CountVectorizer
对象的pickle-serialization,而不是GensimDoc2Vec
对象。查看上一个问题中的代码,很可能最初的错误是使用
pickle.dump()
将CountVectorizer
写入与之前的Doc2Vec
model.save()
相同的文件名。因此,该文件不再包含Doc2Vec
对象。最初保存的内容都被覆盖了。如果你想加载这个文件,请使用与初始问题代码中相同的
pickle.load()
,但是你得到的加载对象将不是Doc2Vec
模型,而是CountVectorizer
。要加载一个
Doc2Vec
模型,您需要使用一个实际包含Doc2Vec
模型的不同文件(如果您没有这样的文件,因为在保存CountVectorizer
时原始模型文件被覆盖了,您需要训练另一个Doc2Vec
模型)。