Wordnet ws4j смешивает значение lesk, повторяя все наборы

Это может быть совершенно нормально, но у меня есть ws4j для Java, и я, кажется, получаю числа типа "1.7345..." для меры lesk между двумя словами (когда я использую демонстрационный код), но на демонстрационном веб-сайте http://ws4jdemo.appspot.com/?mode=w&s1=&w1=solve&s2=&w2=determine

мера lesk - это целое число, например, "57". Я не могу найти причину для этого, но я также новичок в программировании в целом.

Я хотел написать что-то, что принимает слово 1 и перебирает остальные слова, возвращая только те слова, чьи меры Леска (по сравнению со словом 1) выше определенного значения. Что подводит меня к связанному вопросу, в Python я могу перебрать все наборы с

for x in wn.all_synsets():

Но я не знаю, как сделать то же самое с ws4j?

1 ответ

Почему вам нужно перебирать все наборы, а вам нужно только значение Lesk? Попробуй это -

private static ILexicalDatabase db = new NictWordNet();
private static RelatednessCalculator[] rcs = { new Lesk(db) };

private static double run(String word1, String word2) {
    WS4JConfiguration.getInstance().setMFS(true);
    double s = 0;
    for (RelatednessCalculator rc : rcs) {
        s = rc.calcRelatednessOfWords(word1, word2);
    }
    if (s > your_value)
    return s;
}
Другие вопросы по тегам