我在Wordnet中搜索大量单词的同义词。我这样做的方式,当某个单词有多个同义词时,结果按字母顺序返回。我需要的是按照发生概率对它们进行排序,我只选择前1个同义词。
我使用prolog wordnet数据库和Syns2Index将其转换为Lucene类型索引以查询同义词。有没有办法以这种方式按照概率对它们进行排序,或者我应该使用另一种方法?
速度并不重要,此同义词查找不会在线完成。
答案 0 :(得分:5)
万一有人偶然发现这个帖子,这就是要走的路(至少我需要的):
tagCount方法为每个单词提供最可能的synset组。问题再次是具有高概率的synset可以有几个单词。但我想这是没有机会避免这个
答案 1 :(得分:0)
我认为你应该再做一步(假设速度不重要)。
从Lucene索引中,您应该构建另一个字典,其中每个单词都映射到一个小对象,该对象包含唯一的同义词,其含义具有更高的出现概率,其含义和出现概率。即,给出此代码:
class Synonym {
public:
String name;
double probability;
String meaning;
}
Map<String, Synonym> m = new HashMap<String, Synonym>();
...你只需要从Lucene索引中填写它。