Используйте калькулятор wu-palmer в WS4J, чтобы найти сходство между словами
Я использую 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); }
Что я уже пробовал:
java - Wu-Palmer relatedness calculator возвращает 1.33333 балла - переполнение стека[^]
Richard MacCutchan
Вам нужно разместить этот вопрос на веб-сайте WS4j, это не проблема программирования.
Member 12199969
Я не нашел там места для вопросов. Я написал здесь, что, возможно, кто-то еще столкнулся с той же проблемой.
Member 12199969
Я не нашел там места для вопросов. Я написал здесь, что, возможно, кто-то еще столкнулся с той же проблемой.