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