Я пытаюсь получить значение для первого группового совпадения объекта шаблона из ответа json Watson Assistant. Шаблон представляет собой простое регулярное выражение для распознавания последовательностей чисел: ([0-9]+)
Ответ json выглядит так:
"entity": "ID",
"location": [
18,
23
],
"value": "id",
"confidence": 1.0,
"groups": [
{
"group": "group_0",
"location": [
18,
23
]
}
]
},
{
"entity": "sys-number",
"location": [
18,
23
],
"value": "12345",
"confidence": 1.0,
"metadata": {
"numeric_value": 12345.0
}
}
]
Итак, группа сопоставляется нормально, но поле «значение» заполняется строковым литералом из конфигурации объекта. Я ожидал найти там фактическое значение (которое является полем значения следующего объекта, sys-number).
Как мне изменить конфигурацию, чтобы значение включалось как есть в поле значения (или где-то еще) и чтобы мне не приходилось извлекать сущность из текстовой строки, используя значения местоположения? Это вообще возможно? Большое спасибо
Ваше здоровье, Мартин
Регулярное выражение — это то, как вы настраиваете шаблон сущности в настройке помощника Watson. Я не имел в виду, что использую регулярное выражение для анализа Json.
Чтобы получить доступ к значению объекта на основе шаблона, вы можете использовать <? @entity_name.literal ?>
или <? @entity_name.groups[0] ?>
, если захвачено больше групп. Дополнительную информацию можно найти в документе: https://cloud.ibm.com/docs/services/assistant?topic=assistant-entities.
Где вы выполняете регулярное выражение? Почему бы не использовать выражение пути JSON?