1

これはまったく正常なことかもしれませんが、私は Java 用の ws4j を持っており、2 つの単語の間のレスク メジャーとして "1.7345..." のような数値が得られるようです (デモ コードを使用すると) が、デモ Web サイトhttp:/ /ws4jdemo.appspot.com/?mode=w&s1=&w1=解決&s2=&w2=決定

Lesk メジャーは "57" のような整数です。この理由を見つけることができないようですが、プログラミング全般も初めてです。

word1 を取り込んで残りの単語を反復処理し、Lesk の測定値 (word1 と比較した場合) が特定の値を超えている単語のみを返すものを書きたかったのです。これにより、関連する質問が表示されます.Pythonでは、すべてのsynsetを反復処理できます

for x in wn.all_synsets():

しかし、ws4j で同じことを行う方法がわかりません。

4

1 に答える 1

0

Lesk の値だけが必要なのに、なぜすべての synset を反復処理する必要があるのでしょうか? これを試して -

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 に答える