我有一个项目,我需要获得一个单词的词汇含义。我正在考虑使用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 JWI或任何其他工具提交关于单词的词汇信息的任何线索或建议都会很棒。关于如何调用该方法的示例也将非常感激。
An example word: dog
Desired results: noun.animal
答案 0 :(得分: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);