Все, что нужно знать.

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

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

Стать болтовней 🤖

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

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

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

Глубокое погружение в ботов

Чат-боты на основе поиска

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

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

Генеративные чат-боты

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

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

Большая часть ценности глубокого обучения сегодня заключается в узких областях, где вы можете получить много данных. Вот один пример того, чего он не может: вести содержательный разговор. Есть демонстрации, и если вы выберете чёткую беседу, похоже, что это значимый разговор, но если вы на самом деле попробуете это сами, он быстро сойдёт с рельсов. - Андрей Н.Г.

Анатомия чат-бота

Понимание языка - это святой Грааль машинного обучения. - Джон Гианнандреа

Есть два важных компонента интеллектуального чат-бота.

  • NLU Engine: эта часть работает над пониманием истинного значения предложения, которое можно вывести с помощью различных методов, таких как классификация намерения (с использованием Sklearn, TensorFlow и т. д.), идентификация важных сущностей (с использованием библиотек NER, таких как Spacy , CoreNLP и т. Д.), Находя тональность и сохраняя контекст в переменной и зацикливая это в беседе.
    NLU все еще пытается определить истинное значение предложения, но эти статистические компоненты, собранные вместе, помогают нам ликвидировать разрыв и являются лучшими из имеющихся на сегодняшний день.

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

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

Rasa Core: направляет беседы с учетом истории и внешнего контекста беседы. Вместо тысяч правил Раса берет образцы из реальных разговоров.

Botkit: позволяет создавать собственные истории, используя разные правила. При определении потока разговора машинное обучение не используется.

Диалог поток

При построении диалоговых сценариев существует два типа диалога.

Линейный диалог

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

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

  • Название фильма
  • Время показа

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

Нелинейный диалог

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

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

  • Rasa - XML, опыт работы с Python

Жаргоны чат-ботов

Агенты

Чат-боты, также называемые диалоговыми агентами или диалоговой системой, лучше всего описывать как модули NLU, объединенные с диспетчером диалогов.

Намерение / взаимодействия:

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

Сущности:

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

Например: я хочу забронировать билет из Парижа в Нью-Йорк сегодня в 22:00

Выделенные выше значения являются объектами местоположения и времени, и эта информация важна для обработки и бронирования билета.

Заполнение слота:

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

Контексты:

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

Например, если пользователь слушает музыку и находит группу, которая вызывает его интерес, он может сказать что-то вроде: «Я хочу услышать их больше». Как разработчик, вы можете включить название бэнда в контекст запроса, чтобы агент мог использовать его в других целях.

Отступать :

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

Действия:

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

Веб-интеграция

Как только ваш чат-бот будет готов к встрече с людьми, самое время интегрировать его с некоторыми из ведущих платформ чат-ботов. Большинство фреймворков для ботов поставляются со своими собственными плагинами, чтобы сделать интеграцию беспроблемной. Такие платформы, как Telegram, Messenger, Google Assistant, открывают новые возможности, демонстрируя ваши продукты и услуги широкой аудитории и, в свою очередь, развивают ваш бизнес.

Этикет чат-бота 😺

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

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

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

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

Если необходимо задать вопрос, попробуйте задать его по-разному и позаботьтесь о том, чтобы не задать вопрос, на который пользователь уже ответил, что обычно происходит, если распознавание объекта не удается. (Больше тренировок !!)

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

В этом примере показаны 3 разных ответа, которые буквально означают одно и то же для намерения help.

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

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

  • Ты робот?
  • Как вас зовут ?
  • Сколько тебе лет ?
  • Как дела ?

Если вам понравилось это читать и вы нашли это приятным, следите за новостями и поделитесь этим и хлопните в ладоши !!