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 でも試してみましたが、同じことが起こります。