1

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

4

1 回答 1

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;
}
于 2014-09-18T14:59:50.733 回答