【问题标题】:How can I find synonyms in estimated frequency order using JWNL(Wordnet Library)?如何使用 JWNL(Wordnet 库)按估计的频率顺序查找同义词?
【发布时间】:2012-12-11 14:45:51
【问题描述】:

有谁知道我如何使用按估计频率排序的 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]); }
                }
           }
     }

【问题讨论】:

  • 从您的代码中获得灵感

标签: java wordnet synonym


【解决方案1】:

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

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

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

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

【讨论】:

    猜你喜欢
    • 2023-03-09
    • 1970-01-01
    • 2023-03-11
    • 2015-05-20
    • 1970-01-01
    • 1970-01-01
    • 2013-03-11
    • 2011-03-15
    • 1970-01-01
    相关资源
    最近更新 更多