3

我开始学习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 shirt是 a biword(我可以将其视为搜索索引中的一个词)所以我想使用 wordNet 来检查 wordNet 中是否(T 恤)

if True那么它是一个双字并且有同义词,例如 jersey, T-shirt, tee shirt

if false那么它不是

有什么方法Jaws可以检查这个词是否在 wordnet 中?或者我应该看看这个词是否有同义词,那么默认情况下它是其中的(作为我想到的解决方案)

4

1 回答 1

3

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

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

于 2015-12-02T19:48:16.197 回答