将经手套训练的模型加载到Java中

时间:2019-05-22 11:14:02

标签: java nlp word2vec nd4j glove

我使用stanfords Gloves.840B.300d.txt文件在python中构建了一个nlp模型。我将模型保存为.h5格式。现在我想在Java中导入模型。我知道如何导入我训练的模型。但是我不知道如何导入手套模型来获取新案例的字向量。 我在python中加载的代码如下:

from gensim.scripts.glove2word2vec import glove2word2vec
glove_input_file = 'glove.840B.300d.txt'
word2vec_output_file = 'glove.word2vec'
glove2word2vec(glove_input_file, word2vec_output_file)
from gensim.models import KeyedVectors
glove_w2vec = KeyedVectors.load_word2vec_format('glove.word2vec', binary=False)

然后我用下面的代码为任何单词获取300d向量

 vec = glove_w2vec[word].reshape((1, 300))

我想在Java中重现类似内容。我尝试了以下代码:

WordVectors wordVectors = WordVectorSerializer.readWord2VecModel(new File("glove.840B.300d.txt"));

但是它抛出1.org.nd4j.linalg.factory.Nd4jBackend $ NoAvailableBackendException或2.org/nd4j/linalg/exception/ND4JIllegalStateException。 我是Java的初学者,现在停留在此位置。如何进一步进行操作?

0 个答案:

没有答案