2

MIT Java Wordnet Interface (JWI) を介して Synset のセマンティック関係を取得する場合、派生的に関連するフォームを取得できません。ISynset クラスのメソッドを使用していgetRelatedSynsets(IPointer p)ますが、リストは単に空を返します。

簡単なテストとして、wordnet のすべての名詞 Synset を反復処理し、派生的に関連する形式を公開している Synset を見つけようとするクラスを開発しました。驚くべきことに、コードはその関係を持つ単一の synset を見つけることができません。コードは次のとおりです。

public class DerivationallyTest {

    private static IDictionary dict = null;

    public static void main(String[] args) throws IOException {
        IDictionary dict = dicitionaryFactory();
        Iterator<ISynset> it = dict.getSynsetIterator(POS.NOUN);
        while(it.hasNext()){
            ISynset synset = it.next();
            if(synset.getRelatedSynsets(Pointer.DERIVATIONALLY_RELATED).size() > 0){
                System.out.println("FOUND ONE!!!");
            }
        }
    }



    public static IDictionary dicitionaryFactory() throws IOException{
        if(dict == null){
            System.out.println("Instanciando Dicionario...");
            // construct the URL to the Wordnet dictionary directory
            String wnhome = System.getenv("WNHOME");
            String path = wnhome + File.separator + "dict"; 
            URL url = new URL("file", null, path);
            // construct the dictionary object and open it
            dict = new Dictionary(url); 
            dict.open();
        }
        return dict;
    }
}

私は何か間違ったことをしていますか、それともこれは実際の奇妙な行動ですか? 私はすでに MIT JWI を使用して多くのクラスを開発しており、多くの作業を行った後で別の API に変更する必要はありません。

Ubuntu 12 LTS で Wordnet 3.1 と MIT JWI 2.2.3 を使用しています。

更新: Wordnet 3.0 でも試してみましたが、同じことが起こります。

4

2 に答える 2