Шаблон TokensRegex с отрицанием пользовательского «макроса» - PullRequest
1 голос
/ 03 апреля 2019

Я создаю выражение TokensRegex, предназначенное для захвата текста в форме «N Maple St» из «W Mullholland Drive». Текущее выражение таково:

{
ruleType: "tokens",
pattern: (/[A-Z]/ ([{ner:PERSON}|{tag:NNP}])+),
result: Concat($$0.text, "=", "STREET")
}

Тем не менее, это также захватывает текст, как "Honda Accord". Я определил макрос для всех марок автомобилей, подобный следующему:

$VEHICLES = "/[Hh]onda|[Tt]oyota/"

Я хочу включить отрицание макроса $ VEHICLES в выражение TokensRegex, т. Е. В приведенном выше разделе шаблона проверяется, соответствует ли текст, захваченный токенами {ner: PERSON} или {tag: NNP}, макросом $ VEHICLES. и, если это так, это НЕ верное совпадение.

Визуально

{
ruleType: "tokens",
pattern: (/[A-Z]/ ((([{ner:PERSON}|{tag:NNP}])&(!$VEHICLES))+),
// Matches the letter and the tokens and NOT anything in the macro.
// This pattern causes a ParseException when running CoreMapExpressionExtractor.createExtractorFromFile
// in my pipeline code.
result: Concat($$0.text, "=", "STREET")
}

Есть ли поддержка этой функции в TokensRegex?

...