Я хочу сопоставить свое предложение с несколькими 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?