【问题标题】:DL4J: How to calculate Cosine Similarity between INDArray obtained from getWordVectorsMeanDL4J:如何计算从 getWordVectorsMean 获得的 INDArray 之间的余弦相似度
【发布时间】:2018-07-16 03:01:24
【问题描述】:

我已经计算出两个句子的 VectorMean 如下:

String demoString1 = "Enter first label";
String demoString2 = "Enter first name";
        Collection<String> label1 = Splitter.on(' ').splitToList(demoString1);
        Collection<String> label2 = Splitter.on(' ').splitToList(demoString2);

        System.out.println("label1:==>"+label1);
        System.out.println("getWordVectorMatrix->INDArray------------------"+vectors.getWordVectorsMean(label1));

        System.out.println("label2:==>"+label2);
        System.out.println("getWordVectorMatrix->INDArray------------------"+vectors.getWordVectorsMean(label2));

输出:

label1:==>[Enter, first, label]
getWordVectorMatrix->INDArray------------------[0.02,  -0.14,  0.07,  -0.10,.............100 dimension vector]
label2:==>[Enter, first, name]
getWordVectorMatrix->INDArray------------------[-0.00,  -0.15,  0.07,  -0.13,............100 dimension vector]

现在我如何使用它们的均值计算两个句子之间的相似度(余弦相似度)? 我进行了搜索,但在 DL4J 中找不到任何可用的 API。

【问题讨论】:

    标签: java nlp cosine-similarity dl4j


    【解决方案1】:

    方法:

    public static double cosineSimForSentence(Word2Vec vector, String sentence1, String sentence2){
            Collection<String> label1 = Splitter.on(' ').splitToList(sentence1);
            Collection<String> label2 = Splitter.on(' ').splitToList(sentence2);
            try{
                return Transforms.cosineSim(vector.getWordVectorsMean(label1), vector.getWordVectorsMean(label2));
            }catch(Exception e){
                exceptionMessage = e.getMessage();
            }
            return Transforms.cosineSim(vector.getWordVectorsMean(label1), vector.getWordVectorsMean(label2));
    
        }
    

    方法调用:

    System.out.println("Similarity Score between: "+demoString1+" --vs-- "+ demoString2 +":==>"+ cosineSimForSentence(vectors, demoString1, demoString2));
    

    【讨论】:

      猜你喜欢
      • 2018-10-17
      • 2017-03-19
      • 1970-01-01
      • 2017-01-18
      • 2015-05-24
      • 2017-09-07
      • 2022-06-14
      • 2015-07-21
      相关资源
      最近更新 更多