Как извлечь специальную информацию из Watson Assistant (Conversation)? - PullRequest
0 голосов
/ 04 мая 2018

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

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

Ответы [ 3 ]

0 голосов
/ 04 мая 2018

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

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

0 голосов
/ 07 мая 2018

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

0 голосов
/ 04 мая 2018

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

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

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

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

...