0

您好,我有一些 word2vec 模型使用 DL4J 中的 Word2Vec java 实现生成通过调用保存

writeWord2VecModel(Word2Vec vectors, String path)

其输出是一个包含一堆 txt 文件的 zip 文件。我可以使用 DL4j 成功加载和使用模型

Word2Vec readWord2VecModel(String path)

我现在正在尝试在 python 中读取该模型,使用gensim

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 生成的模型,我会得到以下文件:

文件列表

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

4

1 回答 1

1

图像中显示的文件名都不是gensim可以读取为词向量的类型。

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

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

如果您成功了,请尝试将这样的单个文件提供给load_word2vec_format(),并具有适当的binary值。

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

于 2018-10-11T18:15:45.937 回答