我用 Python2 训练了一个 doc2vec 模型,我想在 Python3 中使用它。
当我尝试在 Python 3 中加载它时,我得到:
Doc2Vec.load('my_doc2vec.pkl')
UnicodeDecodeError: 'ascii' codec can't decode byte 0xb0 in position 0: ordinal not in range(128)
这似乎与泡菜兼容性问题有关,我试图通过以下方式解决:
with open('my_doc2vec.pkl', 'rb') as inf:
data = pickle.load(inf)
data.save('my_doc2vec_python3.pkl')
Gensim 保存了我重命名的其他文件,以便在调用时可以找到它们
de = Doc2Vec.load('my_doc2vec_python3.pkl')
load() 不会因 UnicodeDecodeError 而失败,但在推理之后会提供毫无意义的结果。
我无法在 Python 3 中使用 Gensim 轻松重新训练它,因为我使用此模型从中创建派生数据,因此我必须重新运行一个漫长而复杂的管道。
如何使 doc2vec 模型与 Python 3 兼容?