8

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

这是我如何获得同义词的代码,谁能告诉我我应该添加什么......(也欢迎完全不同的方式!)

  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]); }
                }
           }
     }
4

1 回答 1

11

既然没有人回答,我想肯定有更多的人想知道同样的想法并且不知道答案。

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

但事实证明,默认情况下,同义词是按排序返回的,所以我使用我在问题中编写的代码得到的结果已经按估计频率排序!

我希望这对将来的人有所帮助:)

于 2012-12-11T16:04:04.127 回答