2010-07-13 72 views
3

我在Wordnet中搜索大量单词的同义词。按照我的方式完成它,当某个单词有多个同义词时,结果会按字母顺序返回。我需要的是让他们按发生的概率排序,而我将仅选取排名前1的同义词。如何根据Wordnet的出现概率排序同义词

我已经使用了序言共发现数据库,并Syns2Index将其转换为Lucene的索引类型查询同义词。有没有办法让他们以这种方式按他们的概率排序,或者我应该使用另一种方法?

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

+0

这是非常具体的。我发现这一点: http://lucene.apache.org/java/2_0_0/api/org/apache/lucene/wordnet/Syns2Index.html ,不过也许你已经意识到了这一点。 – Baltasarq 2010-07-13 07:46:24

+0

@Baltarsarq:感谢名单,是的,我已经使用这个来共发现序言数据库转换为Lucene的synonim指数 – Julia 2010-07-14 05:39:37

回答

0

我认为你应该做另一个步骤(只要速度不重要)。

从Lucene索引,你应该建立在每个字被映射到包含它的意义有外观,它的意义和外观的概率较高概率的唯一代名词的小物件另一个字典。即,给定此代码:

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

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

...你只需要从Lucene索引中填充它即可。

+0

我理解的想法,就像你之前说的,我需要的是似乎具体地说:我知道,查询网上共发现返回synonims通过它们的概率,但我不明白这个概率信息是如何存储在这个序言数据库(我转换成索引与Syns2Index你之前已链接)如何检索该概率(是否有?)信息和映射它你建议的课程?感谢名单! – Julia 2010-07-14 05:46:03

+0

你浏览过这个文件吗? http://wordnet.princeton.edu/wordnet/man/wnsearch.3WN.html – Baltasarq 2010-07-14 11:07:26

+0

的情况下,你会需要它第一天: http://lyle.smu.edu/~tspell/jaws/doc/edu/ SMU/tspell /共发现/ IMPL /文件/ ReferenceSynset.html#getTagCount%28java.lang.String%29 – Julia 2010-07-27 21:02:40

5

,以防有人绊倒在这个线程,这是去(我至少需要什么)的方式:

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

tagCount方法给出了最有可能的同义词集组的每一个字。再次的问题是,同样以更高的概率再次可以有几个词。但我猜这是没有机会避免这个

+0

链接被打破,但一个小的搜索止跌回升https://github.com/jaytaylor/jaws,更具体地说,HTTPS ://github.com/jaytaylor/jaws/blob/f194da46211863ed2cdb1428bf2e21db21541224/src/edu/smu/tspell/wordnet/impl/file/ReferenceSynset.java#L148 – lmsurprenant 2017-05-22 14:48:40