2012-12-11 24 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默認情況下會返回排序,所以我使用我在問題中編寫的代碼已經按照估計的頻率排序!

我希望這將有助於某人在未來:)

相關問題