Как извлечь специальную информацию из Watson Assistant (Conversation)?

У меня есть пользовательский ввод "What is the hostname of serial GX0211229342?", Серийный номер может быть цифровым или буквенно-цифровым соединением (например, 7842344 или H52WBD1 и т. Д.).

Как я могу извлечь GX0211229342 из предложения и установить его в контекст в Watson assistant (Watson Conversation)?

3 ответа

Решение

Я выяснил это, используя шаблон сущности Ватсона, и регулярное выражение должно быть таким: ([0-9]+[a-zA-Z]+|[a-zA-Z]+[0-9]+)[0-9a-zA-Z]* будет использоваться для извлечения буквенно-цифровых символов из ввода. и еще один шаблон [0-9] + он был использован для извлечения чисел. Спасибо всем, помогите.

Если серийный номер может быть определен 1 или 2, любым количеством регулярных выражений, тогда у вас есть возможность создать объект серийного номера на основе этих регулярных выражений.

Служба диалога сможет идентифицировать серийные номера на основе сопоставления с образцом объекта.

Ваш случай сложен, потому что, если идентификатор состоит только из букв, он может быть любой частью предложения. С использованием $Вы сказали процессору регулярных выражений искать шаблон в конце предложения. Следовательно, это работает только для тех случаев.

То, что вы могли бы сделать, это использовать группу без захвата, предоставленную синтаксисом RE2. Есть несколько примеров не захватывающей группы здесь на SO. В основном, ищите что-то вроде следующего (не проверено):

(?:serial)(?:number)?[0-9a-zA-Z]+

Первый ("серийный") будет обнаружен и проигнорирован, "число" является необязательным и будет проигнорировано, затем идет буквенно-цифровой.

Другие вопросы по тегам