Wordnet ws4j混淆lesk值,迭代所有的synset

时间:2014-08-09 00:11:20

标签: java wordnet ws4j

这可能是完全正常的,但我有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做同样的事情?

1 个答案:

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