如何检查wordNet中是否有单词

时间:2015-11-26 20:25:38

标签: java jaws-wordnet

我开始了解wordNet,直到知道我找到了synonymous的特定字词 现在我有一个文件,我想使用n-gram例如

来标记此文本
String s="I like to wear tee shirt";
使用n-gram

将是

I
like
to 
wear 
tee 
shirt
.
.
.
wear tee
tee shirt

等等 然后我想知道tee shirtbiword(我可以将其视为搜索索引中的一个单词) 所以我想用wordNet来检查wordNet中是否(T恤)

if True那么这是一个双字谜,并且有一个代名词,例如球衣,T恤,T恤

if false然后它不是

Jaws中是否有任何方法检查wordnet中的这个单词是否? 或者我应该看看这个词是否有同义词,然后它默认为它(作为我想到的解决方案)

1 个答案:

答案 0 :(得分:2)

我找到了解决问题的方法,因为没有人回答这个问题 我将发布具有相同问题的未来访问者的答案 我希望这会有用:)

public static boolean is_Missing_WordNet(String r,String posTag){
   // System.out.println("inside is_missing_Wordnet "+r);
          boolean flag=true;
              configureJWordNet();
              Dictionary dictionary = Dictionary.getInstance();
              IndexWord word;
        try {
            if(posTag.equals("VBG"))//Verb
                 { word = dictionary.lookupIndexWord(POS.VERB, r);}
            else {word = dictionary.lookupIndexWord(POS.NOUN, r);}

            Synset[] senses = word.getSenses();

                if(senses!=null && senses.length>0){
                 if(senses[0].toString().toLowerCase().contains(r)|| senses[0].toString().contains(r.replace(" ","_")))
                 { System.out.println("sense;;;; "+senses[0].toString());flag=false;}
                  }                                       
                else{System.out.println("wordnet has no sense of "+r );return true; }


                }
        catch(NullPointerException ex){return true;}
         catch (JWNLException ex) {return true;
                    }
        return flag; 
    } 

如果WordNet词典中缺少

,则此函数返回true