【问题标题】:Loading DL4J trained Word2Vec Model into gensim将 DL4J 训练的 Word2Vec 模型加载到 gensim
【发布时间】:2018-10-12 02:15:45
【问题描述】:

您好,我有一些 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 中读取该模型?

【问题讨论】:

    标签: python gensim word2vec dl4j


    【解决方案1】:

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

    您向load_word2vec_format() 提供什么文件路径和文件名? (gensim 的任何加载方法都不能获取 .zip 存档。)

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

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

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

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2021-03-31
      • 1970-01-01
      • 1970-01-01
      • 2017-09-01
      • 1970-01-01
      • 1970-01-01
      • 2017-06-26
      • 2019-09-05
      相关资源
      最近更新 更多