Алгоритмы работы чат-бота для поиска товаров
М.А. Маслова, Д.А. Бажутова, А.С. Дмитриев Волгоградский государственный технический университет
Аннотация: В данной статье рассматриваются алгоритмы, использующиеся для работы чат-бота. В рамках этих алгоритмов рассмотрен общий подход к работе диалоговых систем и предложен алгоритм диалоговой системы, основанный на общем подходе, в который включается модуль обработки естественного языка, а также представлены алгоритмы, которые будут применены к чат-боту для поиска интересующих пользователя товаров. Среди рассматриваемых алгоритмов находятся такие, как алгоритм взаимодействия пользователя и чат-бота, обработка запросов пользователя и алгоритм обработки естественного языка. Также представлен доработанный алгоритм обработки естественного языка с учетом необходимых требований.
Ключевые слова: чат-бот, обработка естественного языка, обработка запроса пользователя, распознавание именованных сущностей, менеджер диалогов, диалоговая система.
Обычная поисковая система, которая есть в каждом интернет-магазине или каталоге услуг и товаров, не всегда может найти по описанию пользователя именно тот товар, который ему необходим. Для того, чтобы поисковая система правильно понимала поисковый запрос, необходимо, чтобы либо система была более гибкой для восприятия человеческой мысли, либо в базе данных каталога товаров хранилось множество вариантов описаний одной и той же характеристики товара [1]. В первом случае может использоваться машинное обучение, во втором случае база данных будет слишком огромна и все равно не все варианты описаний будут в ней присутствовать.
Для хорошего качества поиска лучше использовать первый вариант реализации системы. Соответственно, такую поисковую систему лучше организовывать в виде чат-бота, так как бот в ходе диалога с пользователем может уточнить некоторые детали. Бот также сможет ответить на вопросы такие, как значение той или иной характеристики у товара. В итоге, такая система может выдать информацию пользователю о тех товарах, которые подходят по описанию [2,3].
Для начала, рассмотрим общий алгоритм взаимодействия пользователя
и чат-бота. Он представлен на рисунке 1 [4,5]. Диалоговый менеджер является самым важным модулем диалоговой системы. Данный модуль осуществляет контроль потока речи. Он берет смысловое, оно же семантическое, представление того, что пользователь говорит, в качестве ввода информации и решает, что должна ответить система. Данный менеджер поддерживает понимание диалогового контекста в той или иной форме.
Семантическое представление пользовательского ввода допустимо непосредственно по нажатию кнопки. В системах, распознающих язык, пользовательские словосочетания преобразуются в смысловое представление, состоящее из пользовательских целей и характеристик, при помощи модуля обработки естественного языка. Возможно, представленный модуль следует предварительно обучить, для того, чтобы распознать набор пользовательских инструкций, предопределенных разработчиком, которые относятся к доступным диалоговым задачам.
Интерфейсам с поддержкой голоса, принимающим голосовые инструкции от пользователя, также необходим модуль распознавания речи, который имеет возможность преобразовать голосовое сообщение в текст, перед тем, как передать его в модуль обработки естественного языка. А также, с другой стороны, необходим модуль синтеза речи, который трансформирует текстовый ответ системы в голосовые сообщения.
Менеджер диалогов должен взаимодействовать с серверными модулями. Это может быть база данных системы, или любой другой источник данных, который запрашивается для ответа на вопрос пользователя, или онлайн-служба для выполнения инструкций пользователя.
Канал - это место, где диалоговая система ожидает пользователя. Может быть один или несколько модулей, из которых состоит этот слой, в зависимости от канала.
и
Согласно рисунку 1, взаимодействие пользователя с чат-ботом начинается с того, что пользователь отправляет сообщение в предоставленный ему канал в качестве инструкций. С помощью этих инструкций пользователь обозначает какое-либо намерение получить услугу или товар, или ответ на интересующий его вопрос. Различные виртуальные помощники могут быть встроены в электронные умные устройства, планшеты или мобильные телефоны и т.д., выступать в качестве мест ожидания пользователя, т.е. каналов.
Рис. 1. - Взаимодействия пользователя и чат-бота После того, как инструкции от пользователя получены, системе может потребоваться дополнительное преобразование или обработка полученного сообщения. Большинство каналов подразумевают голосовое общение, в то время как диалоговые системы обычно взаимодействуют с текстом. За подобные преобразования отвечают такие модули, как синтезатор речи, который транслирует тестовое ответное сообщение в речь, и распознавание речи, которое преобразует речь человека в текст. Некоторые каналы дают возможность сочетать визуальные диалоговые элементы и распознавание естественного языка. Необходимо объединение с соответствующими программными интерфейсами приложения (API) для работы с данными
М Инженерный вестник Дона, №3 (2021) ivdon.ru/ru/magazine/arcliive/n3y2021/6921
каналами.
Полученный запрос, который конвертирован в текст, поступает в Менеджер диалогов. Данный менеджер является основой диалоговых систем. Определить семантическое значение сказанного, понять намерение пользователя и эффективно обработать это намерение, отдав результат обработки - основная задача этого менеджера. Менеджер диалогов формирует ответное сообщение, получив необходимые данные из обработанного сообщения - текст, голосовое сообщение; включает потоковый контент или информирует о том, что произведено требующееся действие. Модуль КЬи начинает разговор, в ходе данного диалога происходят различного рода уточнения для того, чтобы получить все отсутствующие, но все же необходимые, характеристики и убрать все неточности, если в исходном запросе мало данных для принятия решений по дальнейшим действиям.
1 Шк
БД системы И Менеджер
диалогов
V
Г
V
Пользе
вател ь
I
э Менеджер -► N1.11 Менеджер
диалогов диалогов
Рис. 2. - Схема обработки запроса пользователя Основной алгоритм обработки сообщения пользователя (рис.2) состоит
из следующих этапов [6]:
1. Запрос пользователя поступает в Менеджер диалогов.
2. Контекст диалога, полученный из базы данных системы, загружается в Менеджер диалогов.
3. Пользовательский запрос с контекстом поступает на обработку в модуль понимания естественного языка, в результате определяется намерение пользователя и его характеристики. В случае обработки событий, которые не являются текстовыми, например, нажатие на кнопки, этот шаг пропускается.
4. Посредством диалога с пользователем и извлечённых из него данных, менеджер диалога выявляет следующее наиболее подходящее состояние, максимально полно соответствующее сообщению, отправленному пользователем.
5. Выполнение программных сценариев (бизнес-логики) в соответствии с заданным алгоритмом диалоговой системы.
6. Использование внешних информационных систем, если они были предусмотрены в бизнес-логике.
7. Создание ответа в виде текстового сообщения с применением функций согласования слов на естественном языке и, кроме того, возможность применения макроподстановок.
8. Для обработки последующих обращений данные и контекст разговора сохраняются в базу данных диалоговой системы.
9. Отправка ответного сообщения пользователю.
Управление ходом разговора с пользователем является одним из главных процессов диалоговой системы, в рамках которого определяется общая взаимная связь сказанного и связь с последующими и предыдущими высказываниями. То или иное высказывание будет восприниматься многообразно, из-за этого процесса, в зависимости от того, когда и кто его
написал, а также, какие еще данные были отправлены в систему совместно с инструкцией пользователя, примером таких данных является местонахождение пользователя. В определенных системах за наполнение контекста выражения данными, которые нужны для полного понимания инструкций пользователя, отвечает также Менеджер диалогов. Такие данные могут быть получены либо из сообщения пользователя, либо из анализа предшествующих выражений, либо запрошены непосредственно у пользователя.
Процесс обработки сообщения пользователя является самым трудным этапом работы диалоговой платформы. Данный процесс называется распознаванием естественного языка (NLP - Natural Language Processing). Одной из задач данного процесса является NLU - Natural Language Understanding, понимание естественного языка.
Задачу понимания естественного языка можно представить в виде следующих глобальных этапов:
- Преобразование текста для анализа, т. е. предварительная обработка текста;
- систематизация запроса, сопоставление с одним из классов данных, известных системе;
- извлечение характеристик сообщения.
Пожалуй, максимально существенные отличия в платформах разных разработчиков заключаются непосредственно в этом месте. В каких-то реализациях используются регулярные выражения или онтологические правила, в других - глубокое машинное обучение. Многие разработчики могут использовать сторонние сервисы.
Алгоритм взаимодействия системы и пользователя в чат-боте для поиска и продажи товаров будет отличаться от вышепредставленного тем, что на наиболее трудном этапе работы диалоговой системы будет
использовать не только понимание естественного языка, но и распознавание узкоспециализированных именованных сущностей (МЕЯ).
Представим в более упрощённом виде процесс распознавания именованных сущностей [7]:
- Преобразование текста для анализа, т. е. предварительная обработка текста;
- извлечение наименования товара и его характеристик из текста;
- систематизация извлеченных данных.
И, в таком случае, обработка запроса пользователя будет выполняться по следующей схеме (рис.3):
1. Запрос пользователя поступает в Менеджер диалогов.
2. Контекст диалога, полученный из базы данных системы, загружается в Менеджер диалогов.
3. Запрос пользователя с параметрами отправляется на обработку в модуль понимания естественного языка (КЪи), в результате чего определяется конкретное намерение пользователя.
4. Обработанный модулем КЬи, запрос пользователя отправляется на обработку в модуль распознавания именованных сущностей (МЕЯ), в результате чего определяются товар и его характеристики, которые необходимы пользователю.
5. Посредством диалога с пользователем и извлечённых из него данных, менеджер диалога выявляет следующее наиболее подходящее состояние, максимально полно соответствующее сообщению, отправленному пользователем.
6. Выполнение сценариев (бизнес-логики) в соответствии с заданным алгоритмом диалоговой системы.
7. Использование внешних информационных систем.
8. Создание ответа в виде текстового сообщения с использованием
М Инженерный вестник Дона, №3 (2021) ivdon.ru/ru/magazine/arcliive/n3y2021/6921
функций согласования слов на естественном языке и, кроме того, могут использоваться макроподстановки.
9. Для обработки последующих сообщений в базу данных чат-бота записываются данные от пользователей системы и контекст разговора для обработки последующих сообщений от пользователей системы.
10. Отправка ответа в виде текстового сообщения пользователю.
г БД системы | 1 Менеджер
9 ди алогов
Г
I
N16 Бизнес-логи ка
Пользе
вател ь
Менеджер ди алогов
1
Менеджер N1.11
ди алогов
Рис. 3. - Обработка запроса пользователя в чат-боте для поиска и продажи
товаров
В итоге, архитектура системы чат-бот для поиска и продажи товаров расширяется одним глобальным пунктом и ее можно представить в виде следующего подхода к обработке запроса пользователя на естественном языке [4,8]:
1. Графематический анализ. На этом этапе производим выделение структурных или синтаксических единиц. Определяются такие единицы, как знаки препинания, слова, предложения и абзацы.
2. Морфологический анализ. Здесь мы определяем нормальную форму
словоформы и наборы характеристик для нее. Это необходимо для того, чтобы при проверке согласованности слов ориентироваться только на нормальную форму.
3. Предсинтаксический анализ. На данном этапе мы объединяем или разделяем лексические единицы. Размечаем линейный текст на фрагменты, иначе говоря, производим синтаксическую сегментацию.
4. Синтаксический анализ. На данном этапе мы определяем роли слов и связи между ними. Данный этап осложняется тем, что от различных нормальных форм можно получить одну и ту же словоформу.
5. Постсинтасический анализ. Здесь мы уточняем смысл фразы, а также обрабатываем разрывные изменяемые словосочетания. Полученная конструкция, которая выражает некоторое различного рода действие для разнообразных ситуаций, должна быть приведена к одному и тому же нормализованному дереву.
6. Семантический анализ. На текущем этапе уточняем связи, которые не получилось уточнить постсинтаксическому анализу и отфильтровываем некоторые определения слов. На данном этапе завершается распознавание входного текста.
7. Распознавание классических именованных сущностей. Здесь мы определяем такие сущности, как имя человека, местонахождение, наименование организации, дата, наименование профессии, национальность [9,10].
8. Распознавание узкоспециализированных именованных сущностей. На текущем этапе определяются такие сущности, как наименование товара или услуги и их различные характеристики.
9. Классификация запроса, основанная на двух подходах: использующая алгоритмы машинного обучения и использующая онтологические правила.
10. Генерация внутреннего представления отклика. Здесь мы формулируем ответ внутри системы.
11. Предсинтаксический синтез. На данном этапе мы возвращаем языкозависимые конструкции и разворачиваем нормальное дерево из словосочетаний.
12. Синтаксический синтез. На текущем этапе преобразуем дерево предложения в линейный порядок слов, а также согласовываем характеристики слов между собой.
13. Предморфологический синтез. Здесь происходит объединение или разделение слова, согласно требованиям языка.
14. Морфологический синтез. На данном этапе находим необходимую словоформу, согласно нормальной форме слова и его параметрам.
15. Графематический синтез. На последнем этапе слова объединяются в единый текст.
Таким образом, полученный алгоритм обработки запроса пользователя чат-бота, а также алгоритм обработки запроса на естественном языке помогут улучшить качество поиска товаров и услуг, так как данная система будет в ходе диалога уточнять товар или услугу и их характеристики, после чего будет выдавать список услуг или товаров, подходящих полученным данным. При этом пользователю будет проще понять, что именно ему требуется по параметрам товара или услуги и более точно найти требующиеся услугу или товар.
Литература
1. Маслова М.А., Орлова Ю.А., ДмитриевА.С. Способы распознавания именованных сущностей в сфере торговли // Инновационные технологии в обучении и производстве: материалы XIV всерос. заочн. науч.-практ. конф. (г. Камышин, 15 ноября 2019 г.). Волгоград: ВолгГТУ, КТИ (филиал) ВолгГТУ, 2019. С. 116-118.
2. Маслова М.А., Дмитриев А.С., Орлова Ю.А. Обзор инструментов для разработки чат-ботов консультантов // Инновационное развитие современной науки: сб. науч. тр. по материалам XXIV междунар. науч.-практ. конф. (г.-к. Анапа, 10 июня 2020 г.). - Анапа: Научно-исследовательский центр «Иннова», ООО «Научно-исследовательский центр экономических и социальных процессов» в Южном Федеральном округе, 2020. С. 104-108. URL: innova-science.ru/wp-content/uploads/2020/06/sbornik-nauchnyh-trudov- 10.06.2020-irs-24 .pdf.
3. Маслова М.А., Дмитриев А.С., Орлова Ю.А. Обзор программных аналогов чат-ботов из сферы торговли // Инновационные технологии в обучении и производстве: материалы XV всерос. заочн. науч.-практ. конф. (г. Камышин, 23 ноября 2020 г.). Волгоград: ВолгГТУ, КТИ (филиал) ВолгГТУ, 2020. С. 132-135.
4. Хобсон Лейн, Ханнес Хапке, Коул Ховард Обработка естественного языка в действии. СПб.: Питер, 2020. 576 с.
5. Райтман М. Практическое руководство по разработке чат-интерфейсов. М.: ДМК Пресс, 2019. 340 с.
6. Ураев Д.А., Классификация и методы создания чат-бот приложений // Научная электронная библиотека elibrary.ru. URL: elibrary.ru/item.asp?id=41384389& (дата обращения: 28.12.2020).
7. Lample G. et al. Neural architectures for named entity recognition // arXiv preprint. URL: arxiv.org/abs/1603.01360 (дата обращения: 28.12.2020).
8. Большакова Е.И., Клышинский Э.С., Ландэ Д.В., Носков А.А., Пескова О.В., Ягунова Е.В. Автоматическая обработка текстов на естественном языке и компьютерная лингвистика М.: МИЭМ, 2011.
9. Howard J., Ruder S. Fine-tuned Language Models for Text Classification // arXiv preprint URL: arxiv.org/abs/1801.06146v1 (дата обращения: 28.12.2020).
10. Zeroual I., Lakhouaja A. Data science in light of natural language processing // Procedia Computer Science. 2018. №127. pp. 82-91.
References
1. Maslova M.A., Orlova YU.A., DmitriyevA.S., Innovatsionnyye tekhnologii v obuchenii i proizvodstve : materialy XIV vseros. zaochn. nauch.-prakt. konf. [Innovative technologies in training and production: materials of the
XIV All-Russian Correspondence Scientific and Practical conference.]. Volgograd: VolgGTU, KTI (filial) VolgGTU, 2019. pp. 116-118.
2. Maslova M.A., Dmitriyev A.S., Orlova YU.A., Innovatsionnoye razvitiye sovremennoy nauki: sb. nauch. tr. po materialam XXIV mezhdunar. nauch.-prakt. konf. [Innovative development of modern science: collection of scientific works based on the materials of the XXIV International Scientific and Practical Conference.]. Anapa: Nauchno-issledovatel'skiy tsentr «Innova», OOO «Nauchno-issledovatel'skiy tsentr ekonomicheskikh i sotsial'nykh protsessov» v Yuzhnom Federal'nom okruge, 2020. pp. 104-108. URL: innova-science.ru/wp-content/uploads/2020/06/sbornik-nauchnyh-trudov-10.06.2020-irs-24.pdf.
3. Maslova M.A., Dmitriyev A.S., Orlova YU.A., Innovatsionnyye tekhnologii v obuchenii i proizvodstve : materialy XV vseros. zaochn. nauch.-prakt. konf. [Innovative technologies in training and production: materials of the
XV All-Russian Correspondence Scientific and Practical conference.]. Volgograd: VolgGTU, KTI (filial) VolgGTU, 2020. pp. 132-135.
4. Khobson Leyn, Khannes Khapke, Koul Khovard Obrabotka yestestvennogo yazyka v deystvii [Natural language processing in action]. SPb.: Piter, 2020. 576 p.
5. Raytman M. Prakticheskoye rukovodstvo po razrabotke chat-interfeysov [Practical guide to developing chat interfaces]. M.: DMK Press, 2019. 340 p.
М Инженерный вестник Дона, №3 (2021) ivdon.ru/ru/magazine/arcliive/n3y2021/6921
6. Urayev D.A., Nauchnaya elektronnaya biblioteka elibrary.ru [Scientific Electronic Library elibrary.ru]. URL: www.elibrary.ru/item.asp?id=41384389& (data obrashcheniya: 28.12.2020).
7. Lample G., arXiv preprint URL: arxiv.org/abs/1603.01360 (data obrashcheniya: 28.12.2020).
8. Bol'shakova E.I., Klyshinskiy E.S., Lande D.V., Noskov A.A., Peskova O.V., Yagunova E.V. Avtomaticheskaya obrabotka tekstov na yestestvennom yazyke i komp'yuternaya lingvistika [Automatic natural language text processing and computational linguistics]. M.: MIEM, 2011.
9. Howard J., Ruder S., arXiv preprint URL: arxiv.org/abs/1801.06146v1 (data obrashcheniya: 28.12.2020).
10. Zeroual I., Lakhouaja A., Procedia Computer Science. 2018. 127. pp. 8291.