Как мы можем объединить сущности и системные числа из пользовательского ввода, чтобы создать желаемый результат (ответ)?

Мы работаем над проектом Watson Conversation для розничной компании и хотим, чтобы пользователи приложения компании могли добавлять товары в свой список покупок с помощью речи.

Мы хотели бы, чтобы пользователь добавлял несколько товаров в корзину. Наш пример пользовательского ввода: «Я хотел бы добавить 2 яблока и 1 ящик пива». Это вернет ответ: «Конечно, мы добавили в ваш список яблоки, ящик, пиво, 2, 1». ответ: «Конечно, мы добавили в ваш список 2 яблока и 1 ящик пива».

Мы попытались извлечь пользовательский ввод (input.text), но это захватило все предложение, а не нужные объекты. Мы также пробовали в нашем желаемом ответе, однако порядок сущностей не совпадает с порядком, введенным пользователем. Это дает нам результат, который мы упоминали в примере выше.

Прилагается скриншот нашего примера ввода (на голландском языке): «Я хотел бы добавить 2 яблока и 1 ящик пива» — это «Ik wil graag 2 appels en 1 krat bier toevoegen». Намерение — «добавить в корзину» — "#toevoegen_aan_boodschappenlijst"

Вопрос: Как нам получить объекты из нашего пользовательского ввода, и ответить на них в правильном порядке, и привести их в соответствие с количествами "sys-number"? У нас также есть объект «Количество» (@Kwantiteit) со значениями на голландском языке, такими как «krat» — «crate», и мы хотели бы объединить это, чтобы требуемый пользовательский ввод добавлялся в корзину покупок в правильном порядке. .

Watson Conversation, добавить в корзину:

введите здесь описание изображения


person D.Geo    schedule 24.07.2017    source источник


Ответы (1)


Как правило, можно присвоить номера связанным элементам. Метаданные для каждого объекта содержат информацию о местоположении его появления во входной строке. Таким образом, предметы рядом могут быть связаны.

Обработка может быть выполнена с помощью встроенных выражений с использованием языка выражений Spring (SpEL). . Это выражения, встроенные через <? ?>. Некоторые расширенные примеры можно найти в моем репозитории "переменные диалога" на GitHub. Другой вариант — выполнить обработку в приложении, управляющем интеграцией STT и Conversation.

person data_henrik    schedule 24.07.2017
comment
Мы использовали - person D.Geo; 26.07.2017
comment
Смотрите мой ответ, в метаданных есть информация о местоположении. Вы можете использовать это в обработке. - person data_henrik; 26.07.2017