如何在java中加载预先设置好的fasttext word2vec模型?

sbtkgmzw  于 2021-07-06  发布在  Java
关注(0)|答案(0)|浏览(527)

假设我从这里下载一个经过训练的fasttext向量。
我可以用python加载模型,如下所示:

from gensim.models.keyedvectors import KeyedVectors
w2v_model_small = KeyedVectors.load_word2vec_format("/path/to/file/wiki.en.bin")

如何在java中实现这一点?我用的是 deeplearning4j 但正在努力加载文件。
这是我如何读取文件的代码。

import org.deeplearning4j.models.embeddings.loader.WordVectorSerializer;
import org.deeplearning4j.models.word2vec.Word2Vec;

String path = "path/to/file/wiki.en/wiki.en.bin";
InputStream pathInputStream = new FileInputStream(path);
Word2Vec vec = WordVectorSerializer.readBinaryModel(pathInputStream, false, false);

我得到以下错误。

java.lang.NoClassDefFoundError: org/bytedeco/javacpp/indexer/Indexer
    at org.deeplearning4j.models.embeddings.loader.WordVectorSerializer.readBinaryModel(WordVectorSerializer.java:269)
    at .(#821:1)

dl4j版本:1.0.0-beta7
---编辑---
我甚至还在为网上记录的方式而挣扎,比如这里。这不使用fasttext向量,而是使用googlenews向量。这是怎么回事?

InputStream word2vecmodelFile = new FileInputStream("path/to/file/GoogleNews-vectors-negative300.bin.gz");
WordVectorSerializer.readBinaryModel(word2vecmodelFile, false, false);

给出了错误:

java.lang.NoClassDefFoundError: org/bytedeco/javacpp/indexer/Indexer
    at org.deeplearning4j.models.embeddings.loader.WordVectorSerializer.readBinaryModel(WordVectorSerializer.java:269)
    at .(#867:1)

暂无答案!

目前还没有任何答案,快来回答吧!

相关问题