1

我只是在浏览 DL4J 的基本教程。我打算比较两个看不见的句子之间的相似性。在 W2V 完成后,我使用了一个简单的示例来比较 2 个单词GoogleNews-vectors-negative300.bin.gz。当我尝试使用 GoogleNews-vectors-negative300.bin.gz 进行句子比较时,如下所示:

File gModel = new File("GoogleNews-vectors-negative300.bin.gz");
Word2Vec vecGoogle = WordVectorSerializer.readWord2VecModel(gModel);

ParagraphVectors vecGoogleForSentences = new ParagraphVectors.Builder()
.useExistingWordVectors(vecGoogle)
.build();

System.out.println(Transforms.cosineSim(vecGoogleForSentences.inferVector("I like bananas and mangoes"), vecGoogleForSentences.inferVector("I like mangoes")));

我得到错误:

org.nd4j.linalg.exception.ND4JIllegalStateException:作为现有模型传递的模型没有可用的 syn1/syn1Neg

有人可以解释一下我在这里打的是什么,或者我如何使用向量 GoogleNews-vectors-negative300.bin.gz 在语义上比较 2 个看不见的句子?我正在尝试的是基于DL4J 演示代码中给出的建议:

非常感谢提前!

4

1 回答 1

0

一种更简单的方法是计算句子中所有单词的平均向量(向量总和除以 n)并计算它们的余弦相似度。

于 2018-02-01T06:18:40.510 回答