JavaのWordnetの類似性:JAWS、JWNL、またはJava WN ::類似性?
-
12-11-2019 - |
質問
JavaベースのアプリでWordnetを使用する必要があります。
-
検索シーケセット
-
シンセセットの間に類似/継続性を見つける
私のアプリはRDFグラフを使用しています。
次の瓶を見つけました:
- 一般図書館 - JAWS http:// lyle。 smu.edu / ~tspell/jaws/index.html
- 一般図書館 - jwnl > http://sourceforge.net/projects/jwordnets/ a>
- 類似性図書館(Perl) - Wordnet ::類似度 http:// wn-類似度。SourceForge.net/
- WordNet ::類似度 http://www.cogs.susx。 ac.uk/users/drh21/
私のアプリに何をお勧めしますか?
いくつかのバインディングを介してJavaアプリケーションからPerlライブラリを使用することは可能ですか?
ありがとう! ムーロン
解決
私はそれが使いやすいので、私は通常のWordnetのものにJAWSを使います。ただし、類似性メトリックの場合は、こちら。また、このフォルダ、前処理されたWordNetとコーパスデータを含む。このフォルダをプロジェクトフォルダにある "lib"に "lib"という名前の "lib"に配置すると仮定して、このようにコードを使用できます。
.
JWS ws = new JWS("./lib", "3.0");
Resnik res = ws.getResnik();
TreeMap<String, Double> scores1 = res.res(word1, word2, partOfSpeech);
for(Entry<String, Double> e: scores1.entrySet())
System.out.println(e.getKey() + "\t" + e.getValue());
System.out.println("\nhighest score\t=\t" + res.max(word1, word2, partOfSpeech) + "\n\n\n");
どちらの単語のどちらかの意味を指定できるようにする方法もあります。ソースはダウンロードできます。
利用可能なアルゴリズムは次のとおりです。
JWSRandom(ws.getDictionary(), true, 16.0);//random number for baseline
Resnik res = ws.getResnik();
LeacockAndChodorowlch = ws.getLeacockAndChodorow();
AdaptedLesk adLesk = ws.getAdaptedLesk();
AdaptedLeskTanimoto alt = ws.getAdaptedLeskTanimoto();
AdaptedLeskTanimotoNoHyponyms altnh = ws.getAdaptedLeskTanimotoNoHyponyms();
HirstAndStOnge hso = ws.getHirstAndStOnge();
JiangAndConrath jcn = ws.getJiangAndConrath();
Lin lin = ws.getLin();
WuAndPalmer wup = ws.getWuAndPalmer();
.
また、MITのjarファイルを使用する必要があります。 jwi
他のヒント
似たようなワードフォームを見つけるためにジョーには機能があります 詳細は詳細です:
public adjectiveSynset [] getimarilar()はWordnetExceptionをスローし、ここにチェックアウトできるリンクです。 http://jaws/doc/edu/smu/tspell/wordnet/adjectiveSynset.html このリンクは、使用できる詳細を汚染します。
ジョーまたはjwnlがシンセセット間の類似性を計算する方法を提供するかどうかがわかりませんが、シンジセットを検索するための両方を試してみましたが、JAWSが使いやすくなりました。具体的には、シンプル:
// Specifying the Database Directory
System.setProperty("wordnet.database.dir", "C:/WordNet/2.1/dict/");
.
は、JWNLのfile_properties.xml要件よりも理解できなくなりました。