Научная статья на тему 'АНАЛИЗ И ФОРМИРОВАНИЕ СМЫСЛА В ДИАЛОГОВОЙ ПЛАТФОРМЕ NLAB LOGIC'

АНАЛИЗ И ФОРМИРОВАНИЕ СМЫСЛА В ДИАЛОГОВОЙ ПЛАТФОРМЕ NLAB LOGIC Текст научной статьи по специальности «Компьютерные и информационные науки»

CC BY
21
7
i Надоели баннеры? Вы всегда можете отключить рекламу.
i Надоели баннеры? Вы всегда можете отключить рекламу.

Похожие темы научных работ по компьютерным и информационным наукам , автор научной работы — Власова А. E.

iНе можете найти то, что вам нужно? Попробуйте сервис подбора литературы.
i Надоели баннеры? Вы всегда можете отключить рекламу.

Текст научной работы на тему «АНАЛИЗ И ФОРМИРОВАНИЕ СМЫСЛА В ДИАЛОГОВОЙ ПЛАТФОРМЕ NLAB LOGIC»

Анализ и формирование смысла в диалоговой платформе NLab Logic

Анна Власова (anna@nanosemantics.ai)

ООО «Наносемантика», г. Москва

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

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

1. Понять смысл;

2. Связать диалог в единое целое.

В практических целях эти задачи сужаются до реализуемых с помощью существующих технологий NLP (Natural Language Processing) и NLG (Natural Language Generation).

В любом случае для поддержки диалога на естественном языке вначале требуется так или иначе задать набор смыслов, с которым сможет работать конкретная диалоговая система или виртуальный диалоговый ассистент (далее: ВА, виртуальный ассистент). Точно так же требуется понимание, как проводить связи между частями диалога — хотя бы в рамках определенных сценариев. В диалоговой платформе NLab Logic, о которой пойдет речь ниже, наборы смыслов и связи задаются в Базе Знаний ВА, которая разрабатывается средствами рабочей среды, интегрированной в платформу.

1. Платформа NLab Logics — среда для разработки баз знаний диалоговых систем любого типа

NLab Logic позволяет разрабатывать базу знаний любого типа, как для тестовых, так и для голосовых ассистентов. Знания — это «мозг» ВА, они не зависят от конечного канала коммуникации (сайт, мессенджер, телефон и т.д.). Платформа существует в упрощенном варианте, в том числе и в открытом доступе, и в продвинутом, коммерчески ориентированном, варианте. NLab Logic позволяет организовать знания как наборы:

• моделей («правил») для классификации входящей реплики

• датасетов для обучения нейросети

• словарей для выделения сущностей и работы с синонимами

107

108

¥ Зона правил

г Зона примеров

диалоговый узел 16 - с примером счета для физлиц

Диалоговый узел шаблон 16 - с примером

* счет~ {на/для/-} {физлиц~/физ~ лиц~} *

* {физлиц~/физ~ лиц~} * счет~ *

текущие счета частных лиц // счет на физ лицо ' 3. физлицо {счет}[:продукт] 14. Я физическое лицо, как мне получить счет

Можно одному человеку несколько счетов имег

Введите условие

Рис.1. Зоны для правил и датасетов с примерами

Вопросы подготовки датасетов и обучения неройсетей, а также логика одновременного использования правил и нейросетей в рамках одного диалога, здесь рассматриваться не будут. Далее речь пойдёт об особенностях формирования декларативной Базы Знаний, представляющей собой набор моделей (или правил) для описания структур естественного языка различной длины.

2. База Знаний как набор моделей, описывающих структуры естественного языка (Rule-Based Dialoq Data)

Модели, используемые в платформе NLab Logic, представляют собой записи на специализированном формальном языке (собственная разработка компании «Наносемантика»). Они применяются к входящим репликам на естественном языке, и используются для классификации реплик, определения намерений человека-собеседника и выделения значимых для диалога объектов и их значений.

Модель может описывать как одну входящую реплику («атомарная модель»), так и несколько связанных реплик, которыми могут обмениваться собеседники в ходе диалога («сценарная модель»).

Модели в Базе Знаний ВА имеют фиксированную структуру и состоят из нескольких зон:

• Проверка условий контекста

Запись на формальном языке, которая сопоставляется с фразой на естественном языке

Проверка значения «уверенности», возвращаемого нейросейтью (опционально)

Инструкция по генерации ответа

Модификаторы веса ответа

Запись новых условий контекста

Инструкция по генерации ответа ВА

+%that anchor="Bonpocbi по интернет заказам" $ Оплата заказа $ * [dict(pay)] *

$ * [@cmb({[dict(pay method)]}, {{~платить/оплачив~\} $ * [@стЬ({оплат~}, {[dict(product)]})] *

# Вы можете оплатить заказ банковской картой на сайте или наличными при получении заказа от курьера.

[br] Полную информацию об оплате Вы можете найти [href([@hvs("links", "payments ")])( blank)]{по ссылке}. [^^{Оплата картой} [^^{Оплата сертификатом} [^^{Использовать промокод [^^{Проблемы с оплатой [%last set1 = "назад в интернет заказы"]

[%animation="6"][%topik="оплата"]

Рис. 2. Пример записи модели

Модель из примера на Рис.2 будет выбрана как потенциальный кандидат для генерации ответа ВА при получении таких реплик человека-собеседника как «Можно оплатить заказ?», «за духи я тут могу заплатить», «оплата», «картой можно у вас платить» и многие другие.

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

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

Например, в платформе используются функции для преобразования данных, полученных после парсинга входящей реплики в зависимости от канала коммуникации: голос, или текст. При работе ВА в текстовом канале эта функция преобразует полученный на входе текст «5 004 000» в число «5004000», а текст «100 20 5 миллионов» в число «100205000000». При работе в голосовом канале функция преобразует полученный после распознавания речи текст «500 4000» (пятьсот — четыре

109

тысячи) в число «504000», а текст «100 20 5 миллионов» (сто двадцать пять миллионов) в число «125000000».

Обычно база знаний ВА состоит из нескольких тысяч моделей и инструкций по генерации ответа. Формально можно обойтись любым количеством моделей — хоть 1-2. Но на практике такой ВА не будет обладать достаточными знаниями, чтобы вести хоть какой-то диалог.

Модели применяются для понимания смысла реплик (темы диалога) и определения намерений. Кроме этих задач в процессе диалога обычно требуется найти и извлечь из фразы набор сущностей вместе с их значениями (entities recognition). Для этого в платформе NLab Logic используются словари — как наборы возможных значений конкретной сущности.

редактирование словари

имя Словаря:

cities

Описание Словаря:

города Россия

содержание Словаря:

Абакан =>Абакан~ Адлер =>Адлер~ Акса =>Акса~ Александров => Алекса ндров~ Альметьевск =>Альметьевск~ Анапа =>Анап~ Ангарск =>Ангарск~ Апатиты => Апатит~ Арзамас => Арзамас-^ Армавир

Общий словарь: □

[ Сохранить j Отменить |

Рис. 3. Пример словаря названий населенных пунктов

В платформе NLab Logic суммарно используется более 5000 словарей. Один словарь может применяться в нескольких ВА.

3. Контекст диалога как инструмент формирования связи реплик в диалоге

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

не превратился в разрозненные вопросы-ответы, такая связь должна существовать. Одним из таких параметров может служит контекст диалога. К сожалению, в области машинного анализа нет единого определения термина «контекст». В платформе NLab Logic контекст рассматривается как

• Контекст реплики, т.е. информация, которая может быть извлечена из отдельной фразы и сохраняет актуальность 1-2 «шага» диалога.

• Контекст диалога, т.е. информация, которая возникает на уровне акта коммуникации человека и робота

Контекст складывается из информации, извлекаемой из реплик человека-собеседника, и из информации передаваемой окружением ВА.

Из реплик собеседника ВА чаще всего извлекает информацию о самом собеседнике (имя, предпочтения), о наборе намерений в этом конкретном диалоге, о выделенных в реплике и диалоге в целом сущностях и их значениях (географические названия, названия товаров и услуг, названия организаций и так далее).

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

В режиме тестирования ВА в рабочей среде NLab Logic можно отслеживать изменение части переменных контекста.

Рис. 4. Панель переменных

IT

(71

4. Преимущества и недостатки построения декларативной Базы Знаний с помощью набора моделей

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

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

Основной недостаток подобных диалоговых систем — это трудоёмкость наполнения базы знаний ВА, ручная задача, на которую требуется время. Конечно, существуют инструменты для автоматизации части работы. Например, для работы с непонятыми ассистентом репликами, можно использовать кластерный анализ, и уже с выделенными автоматически кластерами продолжать ручную обработку. Но в целом создание базы знаний — это много ручной работы.

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

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

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

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

112

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

Текущую версию открытой платформы для разработки виртуальных асситентов можно посмотреть здесь: https://github.com/sovaai . Проект «СОВА».

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

113

i Надоели баннеры? Вы всегда можете отключить рекламу.