Калькулятор родства Ву-Палмера возвращает 1,33333 балла

Я использую WS4j, чтобы найти сходство между двумя словами. Также я использую калькулятор родства Ву-Палмера. Он хорошо работает для многих слов, но когда я попытался найти сходство между "игрой" и "игрой", он дал оценку 1.3333, что невозможно, поскольку он должен возвращаться между 0 и 1 или -1. Я не могу понять причину. Когда я использовал его веб-интерфейс " http://ws4jdemo.appspot.com/?mode=w&s1=&w1=play&s2=&w2=playing", он вернул 0.875. Вот мой код:

 private static void findSimilarity(String word1, String word2) {
    WS4JConfiguration.getInstance().setMFS(true);
    List<POS[]> posPairs = wup.getPOSPairs();
    double maxScore = -1D;

    for(POS[] posPair: posPairs) {
        List<Concept> synsets1 = 
          (List<Concept>)db.getAllConcepts(word1, posPair[0].toString());

        List<Concept> synsets2 = 
          (List<Concept>)db.getAllConcepts(word2, posPair[1].toString());

        for(Concept synset1: synsets1) {
            for (Concept synset2: synsets2) {
                Relatedness relatedness = wup.calcRelatednessOfSynset(synset1, synset2);
                double score = relatedness.getScore();

                if (score > maxScore) { 
                    maxScore = score;
                }
            }
        }
    }

    if (maxScore == -1D) {
        maxScore = 0.0;
    }

    System.out.println("sim('" + word1 + "', '" + word2 + "') =  " + maxScore);
}

0 ответов

Другие вопросы по тегам