2014-01-13 69 views
1

我正在使用斯坦福分析器進行POS標記,並使用魔杖爲tagger所做的標記獲取名詞,形容詞動詞,副詞的單獨synset。 例如如何分別獲取名詞,動詞,形容詞synset?

如果我輸入查詢

恆河是印度用來考慮它作爲一個神最大的河流和人民」

輸出惡搞的是:

恆河/ NNP是/ VBZ印度/ NNP's/POS最大/ JJS河/ NN和/ CC人/使用NNS/VBN至/ TO考慮/ VB it/PRP as/IN a/DT God/NNP

從此我想分開反動名詞,動詞,副詞和形容詞,並希望分別獲得相應的同義詞。

如何使用JAVA編程來做到這一點?

+0

如果兩個字母后跟'/'表示動詞或名詞,你可以試試'的​​indexOf( 「/ VB」)','的indexOf( 「/ NN」)'等等。 – Astrobleme

+0

indexOf(「/ VB」)是什麼意思?它會輸出什麼? – user3189037

回答

0
private void btnShowTagActionPerformed(java.awt.event.ActionEvent evt) {           
Pattern NounPat=Pattern.compile("[A-Za-z]+/NN"); 
Pattern AdvPat=Pattern.compile("[A-Za-z]+/RB"); 
Pattern AdjPat=Pattern.compile("[A-Za-z]+/JJ"); 
Pattern VerbPat=Pattern.compile("[A-Za-z]+/VB."); 
String StrToken; 
Matcher mat; 
StringTokenizer PosToken; 
String TempStr; 
int j; 
for(int line=0;line<SAPosTagging.tagedReview.length;line++) 
{ 
    try{ 

    PosToken=new StringTokenizer(SAPosTagging.tagedReview[line]); 
    while(PosToken.hasMoreTokens()) 
    { 
     StrToken=PosToken.nextToken(); 
     mat=NounPat.matcher(StrToken); 
     if(mat.matches()) 
     { 
      TempStr=StrToken; 
      txtareaExTagText.append("Noun=>"+StrToken); //textarea to be appended 
      j=TempStr.indexOf("/"); 
      TempStr=TempStr.substring(0,j); 
      System.out.print("\tNoun=>"+TempStr); 
     } 
     mat=VerbPat.matcher(StrToken); 
     if(mat.matches()) 
     { 

      txtareaExTagText.append("\tVerb=>"+StrToken); 
      TempStr=StrToken; 
      j=TempStr.indexOf("/"); 
      TempStr=TempStr.substring(0,j); 
      System.out.print("\tVerb=>"+TempStr); 

     } 
     mat=AdvPat.matcher(StrToken); 
     if(mat.matches()) 
     { 

      txtareaExTagText.append("\tAdverb=>"+StrToken); 
      TempStr=StrToken; 
      j=TempStr.indexOf("/"); 
      TempStr=TempStr.substring(0,j); 
      System.out.print("\tAdVerb=>"+TempStr); 

     } 
     mat=AdjPat.matcher(StrToken); 
     if(mat.matches()) 
     { 

      txtareaExTagText.append("\tAdjective=>"+StrToken); 
      TempStr=StrToken; 
      j=TempStr.indexOf("/"); 
      TempStr=TempStr.substring(0,j); 
      System.out.print("\tAdjective=>"+TempStr); 

     } 
    } 
    System.out.println(); 
    txtareaExTagText.append("\n\n"); 
    }catch(Exception e){} 
} 

}

+0

我認爲你沒有使用wordnet來獲取synset。我想從POS標籤中獲得單獨的動詞,副詞,名詞和形容詞 – user3189037

相關問題