java - 如何分别获取名词、动词、形容词同义词集?

标签 java parsing stanford-nlp wordnet

我正在使用斯坦福解析器进行词性标记,我想从标记器所做的标记中获取名词、形容词动词、副词的单独同义词集。 例如

如果我的输入查询是

恒河是印度最大的河流,人们过去将它视为神

标记器的输出是:

恒河/NNP是/VBZ印度/NNP的/POS最大/JJS河/NN和/CC人/NNS使用/VBN/TO考虑/VB它/PRP作为/IN a/DT上帝/NNP

从中我想分离名词、动词、副词和形容词,并希望分别获得相应的同义词集。

如何使用 JAVA 编程来做到这一点?

最佳答案

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){}
}

}

关于java - 如何分别获取名词、动词、形容词同义词集?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/21084474/

相关文章:

java - 从另一种方法获取字符串?

java - 如何读取不同编码函数的文件?

java - 使用 java 将 jTable 内容打印到一张纸条

parsing - 用于 scala 的 LALR(1) 解析器生成器

java - 斯坦福 coreNLP 无需拆分句子的情感

nlp - 斯坦福命名实体识别器中的多术语命名实体

java - 使用 SparseIntArray 而不是 HashMap <Integer, Integer> 和 putSerializable

python字符串解析不解析换行符

parsing - 在 shell 脚本中解析 URL

python - 如何测试 stanfordnlp 是否在 GPU 上运行?