Сопоставьте предложение CoreNlp с несколькими SemgrexPatterns - PullRequest
0 голосов
/ 19 января 2019

Я хочу сопоставить свое предложение с несколькими CoreNlp SemgrexPatterns. У меня может быть более 30+ SemgrexPattern, я хочу посмотреть, какой шаблон соответствует предложению.

Я пытался использовать вложенные if-else для сравнения предложений с каждым соответствием.

SemanticGraph dependencies = sentence.get(SemanticGraphCoreAnnotations.EnhancedPlusPlusDependenciesAnnotation.class);
SemgrexPattern pat = SemgrexPattern.compile("A <dobj B");
SemgrexMatcher mat = pat.matcher(dependencies, true);
        if(mat.find())
        {
                // some code
        }
        else
         {
            SemgrexPattern pat2 = SemgrexPattern.compile("A >nmod B");
            SemgrexMatcher mat2 = pat2.matcher(dependencies, true);
            if(mat2.find())
            {
                // some code
            }
            else
            {
                SemgrexPattern pat3 = SemgrexPattern.compile("A >someotherrelation B");
                SemgrexMatcher mat3 = pat3.matcher(dependencies, true);
                if(mat3.find())
                {
                // some code
                }
                  else
                     {
                       System.out.println("Sentence doesnt match against any pattern");
                     }

              }
         }

Есть ли простой способ сделать это. как использовать цикл и списки? или какой-то предопределенный метод для сопоставления предложения с несколькими шаблонами в библиотеке corenlp?

...