【问题标题】:Is it possible to use gensim word2vec model in deeplearning4j.word2vec?是否可以在 deeplearning4j.word2vec 中使用 gensim word2vec 模型?
【发布时间】:2017-09-23 18:59:37
【问题描述】:
我是 deeplearning4j 的新手,我想使用词向量作为分类器的输入来制作句子分类器。
我之前使用的是 python,其中向量模型是使用 gensim 生成的,我想将该模型用于这个新的分类器。
是否可以在 deeplearning4j.word2vec 中使用 gensim 的 word2vec 模型,我该怎么做?
【问题讨论】:
标签:
java
gensim
word2vec
deeplearning4j
【解决方案1】:
是的,这是可能的,因为 Word2Vec 实现定义了一个标准来构建其模型。
为此:
-
使用gensim,保存模型与Word2Vec实现兼容:
w2v_model.wv.save_word2vec_format("path/to/w2v_model.bin", binary=True)
-
从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"));