Поддерживает ли намерение и сущность разговора Уотсона регулярные выражения?
Я тестирую Watson Conversation API с возможным диалогом, который хочет создать моя компания. Мы развиваемся с бразильским португальским. Учитывая, что португалии - это богатый язык, и иногда пользователи могут ошибаться, мы хотим предсказать эти возможные ошибки, в основном с помощью специальных символов и акцентов.
Например, слово produção
могут быть написаны пользователями, как: produção
, producao
, produçao
, producão
, Возможно ли иметь регулярное выражение намерений и сущностей, чтобы иметь что-то вроде рисунка ниже? Иногда у нас есть другое слово, чтобы понять смысл produção final
, produção geral
, produção passada
, так далее.
Еще один быстрый вопрос, можно создать примеры слияния намерений со значениями сущностей, используя что-то вроде @(producao)
(как изображение)?
Спасибо
3 ответа
Вы не можете использовать регулярные выражения в намерениях или объектах, однако я думаю, что вы все равно сможете справиться с вариациями.
В настоящее время нет встроенной обработки опечаток или акцентной нормализации при сопоставлении намерений, однако, если в предложении имеется достаточно функций для сравнения, случайная опечатка не должна вызывать проблем. Для очень коротких примеров может быть полезно добавить дополнительные примеры для распространенных ошибок.
Для сущностей вы можете включить синонимы, и я использовал это, чтобы включить распространенные ошибки раньше.
Вы не должны пытаться включить ссылку на сущность прямо в ваши намерения. Например, а не Qual a @(producao)
ты должен просто иметь Qual a produção
наряду с другими примерами одного и того же намерения, возможно, с разными объектами или разными синонимами для одного и того же объекта. Например, у меня могут быть следующие примеры для намерения #directions...
- Как добраться до отеля на машине?
- Можете ли вы дать мне дорогу до отеля по дороге?
- Какая ближайшая станция, если я путешествую на поезде
- Какой автобусный маршрут доставит меня в отель?
Наряду с такими значениями, как автомобиль, автобус, поезд, велосипед и т. Д. Для сущности @transport. (Извините, я не могу привести пример с бразильским португальским!) Нет необходимости явно называть сущность / сущности, которые вы ожидаете найти в намерении.
И, наконец, вы можете использовать регулярные выражения в условиях на диалоговых узлах, например...
input.text.matches( 'produ[cç][aã]o' )
В этом случае, просто для дополнения и получения дополнительных знаний, несколько дней назад IBM Watson Conversation выпустила новую бета-версию для использования шаблонов.
С Patterns в @Entities вы можете использовать регулярные выражения.
Поле Patterns позволяет вам определять конкретные шаблоны для значения объекта. Шаблон должен быть введен как регулярное выражение в поле.
Как и в этом примере, для объекта "ContactInfo" шаблоны для телефона, значения электронной почты могут быть определены следующим образом:
Примеры:
местный телефон:
(\d{3})-(\d{4})
например, 426-4968fullUSphone:
(\d{3})-(\d{3})-(\d{4})
например, 800-426-4968электронная почта:
\b[A-Za-z0-9._%+-]+@[A-Za-z0-9.-]+\.[A-Za-z]{2,}\b
например, test@gmail.com
Часто при использовании объектов шаблона необходимо сохранять текст, соответствующий шаблону, в переменной контекста (или переменной действия) изнутри вашего диалогового дерева.
Представьте себе случай, когда вы запрашиваете у пользователя адрес электронной почты. Условие узла диалога будет содержать условие, подобное @contactInfo:email
, Чтобы назначить введенную пользователем электронную почту как переменную контекста, можно использовать следующий синтаксис для захвата соответствия шаблона в разделе ответа узла диалога:
{
"context" : {
"email": "@contactInfo.literal"
}
}
Обс.: Механизм сопоставления с образцом, используемый службой беседы, имеет некоторые синтаксические ограничения, которые необходимы, чтобы избежать проблем с производительностью, которые могут возникнуть при использовании других механизмов регулярных выражений. Примечательно, что шаблоны сущностей могут не содержать:
- Положительные повторения (например, х *+)
- Обратные ссылки (например, \g1)
- Условные переходы (например, (?(Cond)true))
Подробнее об определении сущностей в диалоге Уотсона (см. Шаг 7)
Вам не нужно беспокоиться об акценте, множественном числе или слове с ошибками. Уотсон, LUIS, API.AI и т. Д. Принимают это за особенности и работают для каждого слова. Например:
Cartão de Crédito> К артао де Кредито> корзина для детей
Все это прекрасно работает!