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

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

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

Недавние достижения в области обработки естественного языка (NLP) не только ускорили создание чат-ботов, но и повысили их качество благодаря персонализированным ответам пользователям. Надеемся, что мы пробудили некоторый интерес к созданию чат-ботов, давайте Перейдите к теме этой статьи, Пониманию естественного языка (NLU), одному из ключевых компонентов, на котором работают эти современные чат-приложения.

Понимание естественного языка (NLU) здесь и далее будет называться NLU, это подполе обработки естественного языка (NLP), и в этой статье мы рассмотрим детали NLU. , почему это такой важный компонент для приложения чат-бота, и мы также будем изучать способы реализации механизма NLU. Мы не будем подробно описывать аспекты реализации, но надеемся предоставить достаточно справочных материалов, которые помогут разобраться с такими реализациями.

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

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

Рассмотрите следующий пример, в котором пользователь говорит: «Я хотел бы забронировать рейс из Нью-Йорка в Лондон»

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

  • Намерение — Flight_booking, Пользователь хочет забронировать рейс.
  • Объекты — Нью-Йорк, Лондон — сведения об источнике и получателе.

Пример структурного вывода обработки NLU, представленный ниже.

После определения намерения пользователя забронировать рейс мы можем инициировать предопределенное путешествие «flight_booking» и направлять пользователей при бронировании рейса. Извлеченные объекты могут использоваться для помощи боту в пути, вместо того, чтобы запрашивать у пользователя дополнительную информацию.

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

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

Варианты реализации НЛУ

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

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

RASA NLU также может быть реализован как сервер NLU, который принимает входящие сообщения через запрос API и обслуживает ответ с классификацией намерений и извлечением объектов. Более подробную информацию о RASA NLU можно найти здесь. Также было доступно большое количество статей для пошагового руководства по такой реализации, здесь есть ссылка на одну из таких статей, которая нас заинтересовала.

Предварительно обученная модель BERT.BERT также является очень эффективной языковой моделью, разработанной Google, и ее реализации находятся в открытом доступе. BERT уже прошел обучение с использованием большого количества наборов данных, а также поддерживает несколько языков. В этом подходе мы можем использовать предварительно обученные модели BERT вместе с их рассчитанными весами, смещением и гиперпараметрами, и мы могли бы использовать их для прогнозирования намерений для новых предстоящих сообщений без необходимости переобучения модели. Аспект реализации сам по себе является темой для в другой день.

Резюме

Подводя итоги, можно сказать, что существует довольно много комплексных решений для диалогового ИИ, таких как RASA, Dialog flow и BotPress и многие другие, доступные для разработчиков, которые можно использовать для создания и быстрое развертывание переговорных систем.

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

Пусть потребности преобладают при выборе этих наиболее подходящих вариантов.

До следующего раза .. Приятного чтения….

использованная литература