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;
}