2

単語の語彙的意味を取得する必要があるプロジェクトがあります。WordNetには、スーパーセンスとも呼ばれる独自の辞書編集者クラスがあるため、WordNetの使用を考えています。MIT JWIをダウンロードして、このJWIがサポートしているかどうかを確認しようとしています。マニュアルには、単語に添付されている語彙情報を返すことについては何も書かれていません。

import java.io.File;
import java.io.IOException;
import java.io.ObjectInputStream.GetField;
import java.net.URL;
import edu.mit.jwi.*;
import edu.mit.jwi.item.IIndexWord;
import edu.mit.jwi.item.ILexFile;
import edu.mit.jwi.item.ISenseKey;
import edu.mit.jwi.item.IWord;
import edu.mit.jwi.item.IWordID;
import edu.mit.jwi.item.POS;

public class MITJavaWordNetInterface {

    public static void main(String[] args) throws IOException{

        //construct URL to WordNet Dictionary directory on the computer
        String wordNetDirectory = "WordNet-3.0";
        String path = wordNetDirectory + File.separator + "dict";
        URL url = new URL("file", null, path);      

        //construct the Dictionary object and open it
        IDictionary dict = new Dictionary(url);
        dict.open();

        // look up first sense of the word "dog "
        IIndexWord idxWord = dict.getIndexWord ("dog", POS.NOUN );
        IWordID wordID = idxWord.getWordIDs().get(0) ;
        IWord word = dict.getWord (wordID);         
        System.out.println("Id = " + wordID);
        System.out.println(" Lemma = " + word.getLemma());
        System.out.println(" Gloss = " + word.getSynset().getGloss());      
    }    
}

MITから提供されたサンプルをなんとか実行できました。MITJWIまたは他のツールを使用して送信された単語の語彙情報を取得する方法に関する手がかりや提案は素晴らしいでしょう。メソッドの呼び出し方法の例も大歓迎です。

An example word: dog
Desired results: noun.animal
4

1 に答える 1

3

上記と同じコードを使用して、さらに数行追加できるはずです。

    IIndexWord idxWord = dict.getIndexWord("dog", POS.NOUN);
    IWordID wordID = idxWord.getWordIDs().get(0);
    IWord word = dict.getWord(wordID);
    ISynset synset = word.getSynset();
    String LexFileName = synset.getLexicalFile().getName();
    System.out.println("Lexical Name : "+ LexFileName);
于 2013-03-06T03:37:16.730 に答える