1

我想使用extjwnl 库向 Wordnet 添加一个新的同义词集。为此,我编写了以下示例代码。保存后,我观察到确实添加了新的同义词和单词,但创建的语义指针(标识下义关系)没有保存。如何将指针与字典相关联?

        JWNL.initialize(new FileInputStream(propsFile));
        Dictionary dictionary = Dictionary.getInstance();
        Iterator<Synset> synsets = dictionary.getSynsetIterator(POS.NOUN);

        dictionary.edit();
        Synset newSynset = new Synset(dictionary, POS.NOUN);
        IndexWord newWord = new IndexWord(dictionary, "hublabooboo", POS.NOUN, newSynset);
        Synset topmostSynset = synsets.next();
        Pointer newPointer = new Pointer(PointerType.HYPONYM, topmostSynset, newSynset);
        dictionary.save();
4

1 回答 1

2

我建议您将指针添加到同义词集的指针列表:

  topmostSynset.getPointers().add(newPointer);

如果指针是对称的(如上位词,它有一个镜像:下位词),并且 dictionary.getManageSymmetricPointers() 则自动添加反向指针(例如下位词)。

顺便说一句,通过这段代码 Synset topmostSynset = synsets.next(); 看起来您推断从同义词集迭代器返回的第一个同义词集是“实体”。但这在任何地方都不能保证。这是依赖于字典的:可能适用于基于文件的,但很可能不适用于基于地图和不可预测的基于数据库的。

来源:SourceForge

于 2012-09-18T15:55:16.023 回答