2012-12-11 27 views
8

有谁知道如何使用按估计频率排序的JWNL(Java Wordnet Library)来获取单词的同义词?我知道这可以以某种方式完成,因为Wordnet的应用程序可以做到这一点。 (我不知道它是否重要,但我使用的是Wordnet 2.1)如何使用JWNL(Wordnet Library)在估计频率顺序中查找同义词?

这里是我如何获得同义词的代码,任何人都可以告诉我应该添加什么... (完全不同的做法它也欢迎!)

ArrayList<String> synonyms=new ArrayList<String>(); 
    System.setProperty("wordnet.database.dir", filepath); 
    String wordForm = "make"; 
    Synset[] synsets = database.getSynsets(wordForm,SynsetType.VERB); 
    if (synsets.length > 0) { 
     for (int i = 0; i < synsets.length; i++) { 
    String[] wordForms = synsets[i].getWordForms(); 
    for (int j = 0; j < wordForms.length; j++) { 
      if(!synonyms.contains(wordForms[j])){ 
     synonyms.add(wordForms[j]); } 
       } 
      } 
    } 
+0

GOt从您的代码的想法 –

回答

10

由于没有人回答,我想必须有更多的人想知道同样的想法,不知道答案。

嗯,我发现有函数Synset.getTagCount(String),它返回与单词(String)有关的每个同义词的估计频率的值。所以,我所要做的就是根据这个将ArrayList与同义词进行排序。

但是事实证明,synsets默认情况下会返回排序,所以我使用我在问题中编写的代码已经按照估计的频率排序!

我希望这将有助于某人在未来:)

相关问题