WordNet(JWI MIT):一个单词的反义词?

时间:2014-01-21 18:34:05

标签: java dictionary wordnet jwi

我在www.wordnet.princeton.edu库中使用www.projects.csail.mit.edu/jwi/api/edu/mit/jwi开源词典?

我无法找到一个单词的反义词。人们声称这是一本非常好的词典,但我找不到我的话。我需要反义词和其他相关词。良好的描述和其他词汇信息,但我无法找到我需要的。

这是我的代码:

List<IWordID> wordIDList = indexWordList.get(0).getWordIDs();
        for(int idIndex = 0; idIndex < wordIDList.size(); idIndex++)
        {
            IWordID wordID = wordIDList.get(idIndex);
            IWord word = m_Dict.getWord(wordID);
            System.out.println("Id = " + wordID);

            System.out.println(" Lemma = " + word.getLemma());
            System.out.println(" Gloss = " + word.getSynset().getGloss());

            ISynset synset = word.getSynset();
            String LexFileName = synset.getLexicalFile().getName();
            System.out.println("Lexical Name : " + LexFileName);

            /** Finding stem for the word. */
            WordnetStemmer stem = new WordnetStemmer(m_Dict);
            //System.out.println("test" + stem.findStems(key, POS.NOUN));

            ArrayList<String> antonymsList = new ArrayList<String>();

            List<IWordID> relatedWords = word.getRelatedWords();
            Map<IPointer, List<IWordID>> map = word.getRelatedMap();
            AdjMarker marker = word.getAdjectiveMarker();

            for (IWordID antonym : word.getRelatedWords()) {
                String meaning = m_Dict.getWord(antonym).getLemma();
                antonymsList.add(meaning);
                System.out.println("Antonym: " + meaning);
                System.out.println("Antonym POS: " + m_Dict.getWord(antonym).getPOS());
            } 

        }

我真正需要什么? :::

我需要有关如何从WordNet获取相关信息的建议。此外,**I am open to accept any other API or library that will provide me the latest version of Dictionary, antonyms, Synonyms and well written description.**每个建议都表示赞赏。

1 个答案:

答案 0 :(得分:1)

使用IWord#getRelatedMap获取地图java.util.Map<IPointer,java.util.List<IWordID>>。该地图包含当前引理(单词)与其他单词的关系图。

检查此地图中是否存在Pointer#Antonym

查看wordnet接口Artha以比较字典查找结果的正确性。

没有直接的方法来列出所有单词。使用过hack:

sed 's/^\ *//' index.adj | cut -f1 -d\ 

为所有索引文件添加此点:index.adj,index.adv,index.noun,index.sense,index.verb