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