gpt4 book ai didi

java - 在 WordNet 中搜索 Synonym 只给出一个结果

转载 作者:搜寻专家 更新时间:2023-11-01 02:25:59 25 4
gpt4 key购买 nike

我正在使用 java jwi API 搜索 wordnet 以获取单词的同义词。问题是它只给我一个结果,即找到它的同义词本身。请指导我。是否有可能获得给定单词所有可能同义词的列表?我的代码是:

  public void searcher() {
try {

url = new URL("file", null, path);


dict = new Dictionary(url);
try {
dict.open();
} catch (IOException ex) {
JOptionPane.showMessageDialog(null, "Dictionary directory does not exist\n" + ex + "\nClass:Meaning Thread", "Dictionary Not Found Error", JOptionPane.ERROR_MESSAGE);

}

IIndexWord idxWord = dict.getIndexWord("capacity", POS.NOUN);
IWordID wordID = idxWord.getWordIDs().get(0);
IWord word = dict.getWord(wordID);


//Adding Related Words to List of Realted Words
ISynset synset = word.getSynset();
for (IWord w : synset.getWords()) {
System.out.println(w.getLemma());
}


} catch (Exception e) {
}

}

输出只有:

capacity

本身!实际的同义词必须是:

  capability
capacitance
content
electrical capacitance
mental ability...(so on)

那么我在代码中遗漏了什么吗?或者有人可以告诉我真正的问题是什么吗?

提前致谢

最佳答案

所以,我使用 Java JAWS 进行 wordnet 搜索的答案来了!步骤是:

    1- Download WordNet Dictionary from 

Here

    2- Install WordNet
3- Go to Installed Directory and copied the WordNet Directory (in my case C:\Program Files (x86) was the Directory for WordNet Folder)
4- Pasted it into my Java Project (under MyProject>WordNet)
5- Making Path to the directory as:
File f=new File("WordNet\\2.1\\dict");
System.setProperty("wordnet.database.dir", f.toString());
6- Got Synonyms as:

public class TestJAWS{
public static void main(String[] args){
String wordForm = "capacity";
// Get the synsets containing the word form=capicity

File f=new File("WordNet\\2.1\\dict");
System.setProperty("wordnet.database.dir", f.toString());
//setting path for the WordNet Directory

WordNetDatabase database = WordNetDatabase.getFileInstance();
Synset[] synsets = database.getSynsets(wordForm);
// Display the word forms and definitions for synsets retrieved

if (synsets.length > 0){
ArrayList<String> al = new ArrayList<String>();
// add elements to al, including duplicates
HashSet hs = new HashSet();
for (int i = 0; i < synsets.length; i++){
String[] wordForms = synsets[i].getWordForms();
for (int j = 0; j < wordForms.length; j++)
{
al.add(wordForms[j]);
}


//removing duplicates
hs.addAll(al);
al.clear();
al.addAll(hs);

//showing all synsets
for (int i = 0; i < al.size(); i++) {
System.out.println(al.get(i));
}
}
}
}
else
{
System.err.println("No synsets exist that contain the word form '" + wordForm + "'");
}
}

问题是您必须拥有 jaws-bin.jar

关于java - 在 WordNet 中搜索 Synonym 只给出一个结果,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/22589700/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com