3

我正在 Wordnet 中搜索大量单词的同义词。我这样做的方式是,当某个单词有多个同义词时,结果按字母顺序返回。我需要的是让它们按发生概率排序,我只取前 1 个同义词。

我使用 prolog wordnet 数据库和 Syns2Index 将其转换为 Lucene 类型索引以查询同义词。有没有办法让它们以这种方式按概率排序,或者我应该使用另一种方法?

速度并不重要,这个同义词查找不会在线完成。

4

2 回答 2

5

万一有人偶然发现这个线程,这是要走的路(至少我需要的):

http://lyle.smu.edu/~tspell/jaws/doc/edu/smu/tspell/wordnet/impl/file/ReferenceSynset.html#getTagCount%28java.lang.String%29

tagCount 方法为每个单词提供最可能的同义词组。问题再次是具有高概率的同义词集可以有多个单词。但我想没有机会避免这种情况

于 2010-07-27T21:01:23.807 回答
0

我认为你应该再做一步(前提是速度不重要)。

从 Lucene 索引中,您应该构建另一个字典,其中每个单词都映射到一个小对象,该对象包含其含义具有较高出现概率、其含义和出现概率的唯一同义词。即,给定以下代码:

class Synonym {
public:
    String name;
    double probability;
    String meaning;
}

Map<String, Synonym> m = new HashMap<String, Synonym>();

...您只需从 Lucene 索引中填充它。

于 2010-07-13T07:53:32.943 回答