Приветствую.
Мне нужно, чтобы Watson распознал юридическое лицо, представляющее филиал нашей Компании, в котором Заказчик разместил заказ. В настоящее время мы используем следующий шаблон для объекта customer_branch:
\d{1,5}-[xX\d]{1}
Узел диалога запрашивает ветку клиента со следующим сообщением: «Пожалуйста, введите номер филиала, в котором вы разместили заказ, в этом шаблоне XXXXX. -X: ", ожидая чего-то вроде:
12345-6
Хотя большинство наших клиентов вводят номер отделения правильно, некоторые делают:
филиал 12345-6
№ 12345-6
№ 12345-6
число 12345-6
Это заставляет Watson не распознавать сущность customer_branch, что их расстраивает. Чтобы решить эту проблему, мы подумали об использовании в шаблоне следующего регулярного выражения:
(?:(br[ae]{1}nch|n[umbe]{0,4}r))?(?:[\s.]*)?(\d{1,5}-[xX\d]{1})
logi c, по нашему мнению, выглядит следующим образом:
регулярное выражение группа, чтобы игнорировать любые слова, такие как «ветвь», «число», «номер». и так далее, которые могут или не могут присутствовать;
другое, чтобы игнорировать точки и пробелы в любом количестве, которое может или не может присутствовать;
и, наконец, один для захвата номера ветки.
Однако после некоторых проведенных нами тестов Watson все еще не распознает объект правильно, как в примере ниже. :
"customer_branch": "nr 12345-6"
Мы предполагаем, что проблема в регулярном выражении, но нам не удалось ее идентифицировать; так как он корректно работает на regex101.com. Правильно ли Watson распознает группы регулярных выражений исключения, такие как (?: Something_here)
? Мы ценим любые советы. Спасибо всем.