将DL4J训练过的Word2Vec模型加载到gensim中

时间:2018-10-11 10:20:40

标签: python gensim word2vec dl4j

您好,我有一些{2}中使用Word2Vec Java实现生成的word2vec模型,并通过调用

保存
writeWord2VecModel(Word2Vec vectors, String path)

该文件的输出是一个zip文件,其中包含一堆txt文件。 我可以使用

在DL4j中成功加载和使用模型
Word2Vec readWord2VecModel(String path)

我现在正尝试使用gensim

在python中读取该模型
import gensim

model = gensim.models.KeyedVectors.load_word2vec_format('file_path, binary=False)

但是出现以下错误:

UnicodeDecodeError: 'utf-8' codec can't decode byte 0xe0 in position 10: invalid continuation byte

我还尝试使用binary = True并获得相同的结果。

如果我提取由DL4J生成的模型,则会得到以下文件:

DL4J

有没有办法在python genism中读取该模型?

1 个答案:

答案 0 :(得分:0)

图像中显示的所有文件名都不是gensim类型的文件名。

您要为load_word2vec_format()提供什么文件路径和文件名? (gensim的所有加载方法都无法保存.zip存档。)

可能还有另一种将DL4J中的向量导出为word2vec.c格式(文本或二进制,单个文件)而不是完整模型ZIP存档的方法。

如果成功完成此操作,请尝试将具有适当的load_word2vec_format()值的单个文件提供给binary

(如果那时您有一个格式正确的文件,但是您仍然遇到Unicode错误-也许在文件的后面-有一个可选的unicode_errors='ignore'参数可以提供给load_word2vec_format() Unicode错误收费的问题–但是我认为这不是您的主要问题,如果DL4J可以正确地导出字向量,这也不是您的问题。)