Тимур Машнин - Машинное обучение и Искусственный Интеллект стр 10.

Шрифт
Фон

Близлежащие небольшие города также могут выступать в качестве синонимов.



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

Шаблон это расширенная функция, которая позволяет определять значение сущности не на основе конкретной строки, а на основе шаблона, такого как отформатированный номер телефона, адрес электронной почты или адрес веб-сайта.

И в любой момент вы можете нажать на значение сущности, чтобы изменить его значение или синоним.



Также вы можете нажать кнопку Показать рекомендации, чтобы выбрать синонимы из списка, предоставленного 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 с двумя новыми сущностями, который прилагается к лекции.

И импортируйте его.

После успешной загрузки и импорта сущностей вы должны увидеть их в списке.



Теперь, давайте, наконец, рассмотрим третий компонент диалогового навыка.

А именно сам диалог.

Компонент диалога позволяет нам выдавать ответ пользователю на основе его намерения и специфики его запроса, которую мы определяем с помощью сущности.

Наш чат-бот может обнаруживать и классифицировать вводимые пользователем данные, но он еще пока не может ответить пользователю.

Например, когда пользователь приветствует нас, мы можем захотеть ответить «Привет! Могу я чем-нибудь помочь?".

То же самое верно и для более сложных запросов.

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



Диалог это дерево узлов, и каждый узел обычно обрабатывает один конкретный сценарий.

Например, здесь у нас есть три узла.

Первый узел это Welcome, который обрабатывает приглашение чатбота.

Другими словами, наше приветствие при первом появлении пользователя.

Затем у нас есть узел Greetings для ответа на приветствие пользователя.

И, наконец, у нас есть специальный резервный узел, который будет уведомлять пользователя о том, что чатбот не совсем уверен в том, что спрашивает пользователь.

Welcome и Anything else это два узла по умолчанию, созданные для вас при первом создании диалога для вашего чат-бота.

Любой узел, который вы определите, будет находиться между этими двумя узлами.

Каждому такому узлу дается имя.

Далее у нас есть условие, которое определяет, когда узел должен быть запущен.

В этом примере, узел будет запущен, если в пользовательском вводе обнаружено намерение #greetings.

Условие может быть как простым, так и сложным логическим выражением.

В большинстве случаев это условие будет проверять намерение, сущность или их комбинацию.

Затем у нас есть блок ответа, где мы указываем, что ответить пользователю.

В этом случае просто: «Привет. Чем я могу вам помочь?»

Этот блок ответа имеет много вариантов.

Ответ может быть изображением или некоторыми параметрами, которые может выбрать пользователь.

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

Мы даже можем прикрепить условие к каждому отдельному ответу в пределах одного и того же узла.

Наконец, мы можем указать, что происходит после того, как мы выдали ответ.

Как правило, мы просто ждем, когда пользователь скажет что-то еще, и это действие по умолчанию.

Однако доступны и другие параметры, в том числе возможность перехода к другим узлам в диалоге.

Запуск узлов выполняется сверху вниз в диалоге.

Поэтому, когда пользователь отправляет свое высказывание, будет оцениваться на выполнение первый узел.

Если условие не выполнено, мы перейдем ко второму узлу.

Если и этот узел не соответствует критериям, мы рассмотрим третий узел и так далее.

И мы остановимся на первом узле, условие которого соответствует пользовательскому вводу.

Вот почему так важно, чтобы резервный узел Anything else находился в самом низу дерева узлов.

Этот узел имеет специальное условие, которое всегда выполняется, даже если все узлы над ним не выполняются.

Это гарантирует, что у нас всегда есть ответ для пользователя, например: «Я не понимаю, не могли бы вы перефразировать?».

По этой же причине у нас есть узел Welcome в самом вверху, приветствующий пользователя.

У этого узла есть специальное условие приветствия, которое выполняется только в начале разговора с пользователем.

Размещая его наверху, мы гарантируем, что что этот узел выполняется до любого другого узла.

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

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

Дочерние узлы рассматриваются для выполнения только после того, как был выполнен родительский узел, если какой-либо другой узел в диалоге явно не перешел на данный дочерний узел.

И дочерние узлы также выполняются сверху вниз, и мы останавливаемся на выполнении первого дочернего узла, который соответствует условию.



Теперь, давайте создадим диалог для нашего чат-бота.

Откроем вкладку Диалог навыка.

И нажмем кнопку Create Dialog.



И здесь у нас уже есть два узла Welcome и Anything else.

Открыв панель Try it мы сразу увидим приветствие.



Открыв узел Welcome, мы можем изменить это приветствие.

Ваша оценка очень важна

0
Шрифт
Фон

Помогите Вашим друзьям узнать о библиотеке

Скачать книгу

Если нет возможности читать онлайн, скачайте книгу файлом для электронной книжки и читайте офлайн.

fb2.zip txt txt.zip rtf.zip a4.pdf a6.pdf mobi.prc epub ios.epub fb3