Как вы смешиваете типы Ruta и регулярные выражения в правиле? - PullRequest
0 голосов
/ 27 января 2020

Я хочу сопоставить названия улиц и номера их домов, которые также могут содержать один символ и диапазон номеров домов.

Например:

Birkenstraße 22b
Birkenstraße 22b-23a
Birkenstraße 22b/23z

Для этого у меня есть следующее правило в сценарии рута:

(Street PERIOD? ((NUM "b"? (("/"|"-") NUM "b"?)?) {-> MARK(HouseNumber)}));

"b" - это место, где я хочу сопоставить все символы, как в регулярном выражении с [a-zA-Z]. Но я попытался заменить "b" на "[a-zA-Z]", и HouseNumber вообще не был распознан. Принимая во внимание, что с помощью "b" я могу узнать первую часть улиц Birkenstraße 22b в моих примерах.

Как мне смешать это регулярное выражение в правиле в UIMA Ruta?

1 Ответ

0 голосов
/ 28 января 2020

Я объявил тип и назначил его в начале моего сценария следующим образом:

DECLARE CHARS;
W{REGEXP("[a-zA-Z]") -> MARK(CHARS)};

После этого я добавил в свое правило тип CHARS, и это сработало:

(Street PERIOD? ((NUM CHARS? (("/"|"-") NUM CHARS?)?) {-> MARK(HouseNumber)}));
...