这可能是完全正常的,但是我有Java的ws4j,我似乎得到像"1.7345…"这样的数字,用于两个单词之间的长度(当我使用演示代码时),但是在演示网站http://ws4jdemo.appspot.com/?mode=w&s1=&w1=solve&s2=&w2=determine
是一个整数,如"57"。我似乎找不到这样做的原因,但我对编程也很陌生。
我想写一些东西,它接受一个word1并迭代其余的单词,只返回Lesk测量值(与word1相比)高于某个值的单词。这给我带来了一个相关的问题,在Python中,我可以用
遍历所有的synsetfor x in wn.all_synsets():
但是我不知道如何用ws4j做同样的事情?
为什么需要遍历所有的同义词集,而只需要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;
}