RiWordnet wordnet = new RiWordnet();
String word = "apple";
String[] poss = wordnet.getPos(word);
boolean check = false;
String[] synonyms = null;
for (int j = 0; j < poss.length; j++) {
synonyms = wordnet.getAllSynonyms(word, poss[j], 50);
for (int i = 0; i < synonyms.length; i++) {
System.out.println(synonyms[i]);
}
}
for(int i= 0; i<synonyms.length;i++){
if(input.contains(synonyms[i])){
check=true;
}
} //end of synonym method
if(synonyms.check(true))
String syn ="that is the synonym of apple.";
所以我正在使用Wordnet API进行同义词识别。上面的代码片段完全正常,但该方法仅适用于单词“apple”。我仍然必须将该方法用于许多其他单词,所以不是为了不同的单词一遍又一遍地复制和粘贴方法,有没有办法让我把方法放在不同的类中并在我调用它时需要用吗?如果是这样,怎么样?
(p.s:我试过把它放在一个类中,但我不知道如何调用方法和“if”语句的布尔值。以下是我的尝试)
public class synonyms {
public static String syn(String word){
RiWordnet wordnet = new RiWordnet();
String input = null;
String[] poss = wordnet.getPos(word);
boolean check = false;
String[] synonyms = null;
for (int j = 0; j < poss.length; j++) {
synonyms = wordnet.getAllSynonyms(word, poss[j], 50);
for (int i = 0; i < synonyms.length; i++) {
System.out.println(synonyms[i]);
}
}
for(int i= 0; i<synonyms.length;i++){
if(input.contains(synonyms[i])){
check=true;
}
}
}
}
答案 0 :(得分:1)
也许你想要的是:
public class MySynonyms {
public static boolean syn(String input, String word){
RiWordnet wordnet = new RiWordnet();
String[] poss = wordnet.getPos(word);
boolean check = false;
String[] synonyms = null;
for (int j = 0; j < poss.length; j++) {
synonyms = wordnet.getAllSynonyms(word, poss[j], 50);
for (int i = 0; i < synonyms.length; i++) {
//System.out.println(synonyms[i]);
}
}
for(int i= 0; i<synonyms.length;i++){
if(input.contains(synonyms[i])){
check=true;
}
}
return check;
}
}
并从您的主要班级:
if(MySynonyms.syn("apel","apple"))
{
//...do something
}
else{
//...do something
}
答案 1 :(得分:0)
使用类总是一个好主意,但是我不确定代码结构和设计实现的其余部分是什么。要创建对象(使用类),您可以执行以下操作:
首先创建一个Synonym类,其中包含一个名为syn的方法,如下所示:
public class Synonym{
public static String syn(String word){
// put your syn checking codes here
}
}
在此之后,在您的主类(或您需要的任何地方),您可以创建一个新对象,如下所示
Synonym synonym_obj = new Synonym();
对象是类的实例,只要类方法是公共的,您就可以通过synonym_obj使用它们。例如,您可以将以下代码放在需要检查两个单词是否是同义词的位置:
Synonym synonym_obj = new Synonym();
String word = "apple";
if(synonym_obj(word)){
System.out.println("This is a synonym.");
} else {
System.out.println("This is not a synonym.");
}
希望能为你澄清事情!