我正在阅读DL4J的基本教程。我打算比较两个看不见的句子之间的相似性。
我使用一个简单的例子来比较使用GoogleNews-vectors-negative300.bin.gz
完成W2V后的两个单词。
当我尝试使用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 demo code中的建议:
非常感谢提前!
答案 0 :(得分:0)
更简单的方法是计算句子中所有单词的平均向量(将向量除以n)并计算它们的余弦相似度。