是否可以在deeplearning4j.word2vec中使用gensim word2vec模型?

时间:2017-04-26 11:37:02

标签: java gensim word2vec deeplearning4j

我是deeplearning4j的新手,我想使用单词vector作为分类器的输入来创建句子分类器。 之前我正在使用python,其中使用gensim生成矢量模型,我想将该模型用于这个新的分类器。 是否可以在deeplearning4j.word2vec中使用gensim的word2vec模型以及我如何做到这一点?

1 个答案:

答案 0 :(得分:4)

是的,因为Word2Vec的实现定义了一种用于构建其模型的标准,所以是可能的。

为此:

  1. 使用 gensim ,保存模型与Word2Vec实现兼容

    w2v_model.wv.save_word2vec_format("path/to/w2v_model.bin", binary=True)
    
  2. DL4J 中加载相同的预训练模型:

    Word2Vec w2vModel = WordVectorSerializer.readWord2VecModel("path/to/w2v_model.bin");
    

实际上,您可以在两个代码中测试模型,并且应该看到相同的结果,例如:

使用gensim:

print(w2v_model.most_similar("love"))
print(w2v_model.n_similarity(["man"], ["king"]))

对于DL4J:

System.out.println(w2vModel.wordsNearest("love", 10));
System.out.println(w2vModel.similarity("man", "king"));