2014-01-13 1 views
1

Я использую синтаксический анализатор stanford для пометки POS, и я палочку, чтобы получить отдельную синхронизацию для существительного, прилагательного глагола, наречия от тегов, которые сделал теггер. , например.Как получить существительное, глагол, прилагательное synset отдельно?

если мой входной запрос

«Ганга большая река, и люди в Индии используется, чтобы рассматривать его как Бог»

Вывод Tagger является:

"Ганга/ННП является/VBZ India/NNP/POS most/JJS river/NN и/CC люди/NNS/VBN to/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. Я хочу получить глагол, наречие, существительное и прилагательное synset отдельно от тегов POS – user3189037