Страница 10 из 13
Загрузите файл CSV, который прилагается к лекции.
Нажмите значок «Импортировать намерения» рядом с кнопкой «Создать намерение».
Выберите файл в появившемся окне и нажмите на кнопку «Импорт».
В результате вы импортируете два новых намерения и их примеры для обучения Уотсона.
Теперь, давайте рассмотрим сущности, второй ключевой компонент диалогового навыка.
Как мы уже выяснили, намерения описывают цель пользователя.
А сущности позволяют нам фиксировать определенные значения в высказывании пользователя.
Например, без определения сущностей, вопросы «когда открыт ваш магазин в Торонто?» и «Когда открыт ваш магазин в Ванкувере?» – неразличимы для чат-бота.
Это потому, что мы не определили сущность, которая описывает эту конкретную информацию, а именно местоположение магазина.
Поэтому мы можем создать сущность местоположения.
И обратите внимание, что здесь мы используем символ @ вместо символа # для сущностей.
Затем мы можем определить несколько значений для нашей сущности, таких как Торонто, Монреаль, Ванкувер и так далее.
Одно значение для каждого местоположения магазина.
И мы также можем определить синонимы для конкретного значения сущности.
Например, представьте, что наш магазин в Торонто расположен на авеню Уорден.
И клиенты могут спросить о часах работы нашего магазина в Торонто или на авеню Уорден.
Синонимы являются необязательными, но являются полезной функцией и их следует определять, когда это возможно.
Определив сущность местоположения, теперь с помощью этих двух частей информации – намерения и сущности, мы можем предоставить соответствующий и конкретный ответ пользователю.
И обратите внимание, если в значении сущности есть пробел, мы заключаем значение в скобки.
Как и намерения, мы также можем импортировать сущности из CSV файла.
Помимо ввода сущностей вручную и импорта из CSV файла, существует также третий способ добавления сущностей в чат-бот.
Есть предопределенные системные сущности, которые вы можете добавлять для чатбота.
@sys-currency позволяет нам определять упоминания валют в пользовательском вводе.
@sys-date определяет даты.
Например, пользователь сказать «следующий понедельник», а @sys-date позволит нам зафиксировать эту часть информации в качестве фактической конкретной даты.
@sys-person позволяет нам обнаруживать имена людей.
Теперь, давайте создадим сущности @location для нашего чатбота.
Откроем вкладку Entities и нажмем кнопку Create entity.
Введем имя сущности @location.
И нажмем Create entity.
Далее мы будем вводить значения сущностей и возможные синонимы.
А затем нажимать кнопку Add value.
И вы можете добавлять синонимы для городов, если у города есть другие названия или люди ссылаются на местоположение магазина по его улице или району в городе.
Близлежащие небольшие города также могут выступать в качестве синонимов.
Также, значения сущностей также могут иметь шаблоны, которые добавляются в раскрывающемся списке Синонимы.
Шаблон – это расширенная функция, которая позволяет определять значение сущности не на основе конкретной строки, а на основе шаблона, такого как отформатированный номер телефона, адрес электронной почты или адрес веб-сайта.
И в любой момент вы можете нажать на значение сущности, чтобы изменить его значение или синоним.
Также вы можете нажать кнопку Показать рекомендации, чтобы выбрать синонимы из списка, предоставленного Watson.
И в конце используйте панель Try it, чтобы проверить эти значения сущностей.
Попробуйте ввести вопросы.
What are your hours of operation in Montreal.
Where is your Montreal strore located
Теперь мы можем распознать цель и города, соответствующие нашим магазинам.
Но что произойдет, если пользователь введет вопрос для Сиэтла или для Мумбаи, где у нас нет магазина?
Вы заметите, что, так как у нас нет значения сущности для Сиэтла или Мумбаи, ни один из них не будет выбран в качестве значения сущности.
И мы можем структурировать нашего чат-бота для предоставления общего, информативного ответа, если не указано распознанное местоположение.
Но если мы хотим обнаружить все местоположения, чтобы предоставить более персонализированный ответ (например, «К сожалению, у нас нет магазина в Сиэтле …»), нам потребуется сущность, которая включает в себя список всех крупных городов.
И это можно легко достичь с помощью системных объектов.
Системные объекты позволяют легко обнаруживать общие специфические фрагменты информации, такие как даты, время, числа, валюты и т. д.
И среди них, существует объект @sys-location, который будет определять для нас местоположение и будет обрабатывать любой город (или штат, страну и т. д.).
И теоретически нам даже не нужна наша сущность @location, мы могли бы просто использовать @sys-location.
Хотя здесь есть два ограничения:
Вы не можете определять синонимы для городов, обнаруженных с помощью @sys-location.
И нечеткое сопоставление в настоящее время недоступно для сущности @sys-location.
Чтобы добавить сущность @sys-location, нажмите «Системные сущности» в разделе «Сущности» вашего навыка.
И включите @sys-location.
Теперь, попробуйте ввести вопрос hours for Toronto.
Вы заметите, что обнаружены сущности @sys-location и @location.
Импорт и экспорт сущностей с помощью файлов CSV работает очень похоже на намерения.
Когда вы выбираете одну или несколько сущностей, отметив флажки рядом с ними, вам будет предложено экспортировать их в CSV файл.
Кроме того, вы можете импортировать сущности, нажав кнопку «Импортировать» рядом с «Create entity».
Загрузите файл CSV с двумя новыми сущностями, который прилагается к лекции.
И импортируйте его.
После успешной загрузки и импорта сущностей вы должны увидеть их в списке.
Теперь, давайте, наконец, рассмотрим третий компонент диалогового навыка.
А именно сам диалог.
Компонент диалога позволяет нам выдавать ответ пользователю на основе его намерения и специфики его запроса, которую мы определяем с помощью сущности.
Наш чат-бот может обнаруживать и классифицировать вводимые пользователем данные, но он еще пока не может ответить пользователю.
Например, когда пользователь приветствует нас, мы можем захотеть ответить «Привет! Могу я чем-нибудь помочь?".
То же самое верно и для более сложных запросов.
Мы должны использовать точно настроенную классификацию, которую нам дают намерения и сущности, чтобы обеспечить надлежащий и точный ответ пользователю.