Если-то-иначе в Руте - PullRequest
1 голос
/ 26 июня 2019

есть ли что-то похожее, если еще в руте есть?Я хотел бы сделать что-то вроде:

, если есть хотя бы один термин из catA, затем пометить документ как «один», если есть хотя бы один термин из catB, а затем пометить документ как «два»еще пометьте документ "три".

Всего наилучшего Филипп

Ответы [ 2 ]

1 голос
/ 03 июля 2019

Я думаю, что вы спрашиваете об If-else-if в Руте.Это возможно, используя " ONLYFIRST "

PACKAGE uima.ruta.example;

DECLARE CatA,CatB,CatC;

"CatA"->CatA;
"CatB"->CatB;
"CatC"->CatC;
DECLARE one,two,three;

ONLYFIRST Document{}{
Document{CONTAINS(CatA) -> one};
Document{CONTAINS(CatB) -> two};
Document{CONTAINS(CatC) -> three};

}

1 голос
/ 26 июня 2019

В UIMA Ruta (2.7.0) нет языковой структуры if-then-else.

Вам необходимо продублировать некоторые части правила, чтобы смоделировать другую часть, например что-то вродеследующее:

Document{CONTAINS(CatA) -> One};
Document{-CONTAINS(CatA), CONTAINS(CatB) -> Two};
Document{-CONTAINS(CatA), -CONTAINS(CatB) -> Three};

Вы также можете проверить, соответствует ли предыдущее правило и зависит ли оно от него.

Как на самом деле должно выглядеть правило, зависит в основном от системы типов и того, как вы хотитемоделировать информацию (особенности?).

ОТКАЗ ОТ ОТВЕТСТВЕННОСТИ: Я разработчик UIMA Ruta

...