2016-07-07 6 views
0

私は、単語間の意味的類似度を計算するためWS4JのAPIを使用しています:依存(200MBの)

ILexicalDatabase db = new NictWordNet(); 
RelatednessCalculator lin = new Lin(db); 
RelatednessCalculator wup = new WuPalmer(db); 

String w1 = "science"; 
String w2 = "university"; 
System.out.println(lin.calcRelatednessOfWords(w1, w2)); 
System.out.println(wup.calcRelatednessOfWords(w1, w2)); 

問題はこのAPIを配置する必要があり、次の構成ファイルに依存していることですプロジェクトのディレクトリに(私は、この目的のために/resourcesを使用):

jaw.jaw.conf 
similarity.conf 
wordnet folder 

また、このライブラリは、Mavenのリポジトリで利用できないことを残念です。

ローカルプロジェクトのフォルダに上記のファイルを置かないようにする方法はありますか?これらのファイルは100Mbを超えています....

ライブラリDISCOもチェックしましたが、WS4Jほど強力ではありません。

答えて

0

どうやら、WS4Jを変更する必要があります。

例えばは、similarity.confファイルは、InputStreamを使用して、クラスのWS4JConfigurationによってロードされます。

final public class WS4JConfiguration { 

    private final static String CONF = "/similarity.conf"; 

    ... 

    private WS4JConfiguration(){ 
     InputStream stream = null; 
     try { 
      stream = WS4JConfiguration.class.getResourceAsStream(CONF); 

だから、あなたのアプリケーションをロードし、それがリソースへのアクセスを持っている必要があり、同じクラスローダを使用してWS4JConfigurationロードのリソースあなたのJARで