3

Wordnet で、膨大な数の単語の同義語を検索しています。私が行った方法では、いくつかの単語に複数の同義語がある場合、結果はアルファベット順に返されます。私が必要とするのは、それらを発生確率で並べ替えることです。上位 1 つの類義語だけを使用します。

Prolog ワードネット データベースと Syns2Index を使用して、同義語をクエリするための Lucene タイプ インデックスに変換しました。このように確率で並べ替える方法はありますか、それとも別のアプローチを使用する必要がありますか?

速度は重要ではありません。この同義語の検索はオンラインでは行われません。

4

2 に答える 2

5

誰かがこのスレッドに出くわした場合、これが進むべき道でした(少なくとも私が必要としていたもの):

http://lyle.smu.edu/~tspell/jaws/doc/edu/smu/tspell/wordnet/impl/file/ReferenceSynset.html#getTagCount%28java.lang.String%29

tagCount メソッドは、すべての単語に対して最も可能性の高い synset グループを提供します。ここでも問題は、確率が高い synset が複数の単語を持つ可能性があることです。しかし、これを回避する機会はないと思います

于 2010-07-27T21:01:23.807 に答える
0

別のステップを実行する必要があると思います (ただし、速度は重要ではありません)。

Lucene インデックスから、各単語が小さなオブジェクトにマップされる別の辞書を作成する必要があります。このオブジェクトには、その意味がより高い出現確率、その意味、および出現確率を持つ唯一の同義語が含まれています。つまり、次のコードが与えられます。

class Synonym {
public:
    String name;
    double probability;
    String meaning;
}

Map<String, Synonym> m = new HashMap<String, Synonym>();

... Lucene インデックスから入力するだけです。

于 2010-07-13T07:53:32.943 に答える