java - 如何使用 JWNL(Wordnet 库)以估计的频率顺序查找同义词?

标签 java wordnet synonym

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

最佳答案

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

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

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

我希望这对以后的人有所帮助:)

关于java - 如何使用 JWNL(Wordnet 库)以估计的频率顺序查找同义词?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/13822141/

相关文章:

java - 更改焦点 JTextField 的文本

python - 将 Wordnet 语义映射到 Verbnet

python - 检索与一个 WordNet 相关的所有单词

search - 同义词样式文本查找和解析

java - java HashMap 如何进行链接?如何访问所有碰撞值?

java - 使用maven访问项目依赖的MANIFEST.MF文件

nlp - 通过NLTK在Wordnet中 `r`或 `s`的pos是什么

analytics - 数据科学中同义词和同义词的区别举例

java - Java中的闹钟