[go: up one dir, main page]

RU2688758C1 - Method and system for arranging dialogue with user in user-friendly channel - Google Patents

Method and system for arranging dialogue with user in user-friendly channel Download PDF

Info

Publication number
RU2688758C1
RU2688758C1 RU2018120199A RU2018120199A RU2688758C1 RU 2688758 C1 RU2688758 C1 RU 2688758C1 RU 2018120199 A RU2018120199 A RU 2018120199A RU 2018120199 A RU2018120199 A RU 2018120199A RU 2688758 C1 RU2688758 C1 RU 2688758C1
Authority
RU
Russia
Prior art keywords
user
user input
module
words
dialogue
Prior art date
Application number
RU2018120199A
Other languages
Russian (ru)
Inventor
Никита Александрович Кузнецов
Денис Павлович Кирьянов
Андрей Сергеевич Чернопятов
Кристина Сергеевна Доманская
Original Assignee
Публичное Акционерное Общество "Сбербанк России" (Пао Сбербанк)
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by Публичное Акционерное Общество "Сбербанк России" (Пао Сбербанк) filed Critical Публичное Акционерное Общество "Сбербанк России" (Пао Сбербанк)
Priority to EA201891077A priority Critical patent/EA201891077A1/en
Priority to PCT/RU2018/000352 priority patent/WO2019231346A1/en
Priority to RU2018120199A priority patent/RU2688758C1/en
Application granted granted Critical
Publication of RU2688758C1 publication Critical patent/RU2688758C1/en

Links

Images

Classifications

    • GPHYSICS
    • G10MUSICAL INSTRUMENTS; ACOUSTICS
    • G10LSPEECH ANALYSIS TECHNIQUES OR SPEECH SYNTHESIS; SPEECH RECOGNITION; SPEECH OR VOICE PROCESSING TECHNIQUES; SPEECH OR AUDIO CODING OR DECODING
    • G10L15/00Speech recognition
    • G10L15/22Procedures used during a speech recognition process, e.g. man-machine dialogue
    • GPHYSICS
    • G06COMPUTING OR CALCULATING; COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F40/00Handling natural language data

Landscapes

  • Engineering & Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • Health & Medical Sciences (AREA)
  • Audiology, Speech & Language Pathology (AREA)
  • Computational Linguistics (AREA)
  • Theoretical Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • Artificial Intelligence (AREA)
  • General Health & Medical Sciences (AREA)
  • Human Computer Interaction (AREA)
  • Acoustics & Sound (AREA)
  • Multimedia (AREA)
  • Machine Translation (AREA)
  • Input From Keyboards Or The Like (AREA)

Abstract

FIELD: computer equipment.SUBSTANCE: method for arranging dialogue with a user in a data transmission channel includes: acquiring user input data; preprocessing user input by breaking it down into sentences and words, wherein user spelling errors are corrected by using typos correction module; performing lemmatization of each word from user input; generating word dependency structure in user input by using syntax parser; generating vector model of user input words; classification by means of module for dialogue with user of part of user input to generate response; generating a user response for display in a graphical user interface; providing, through the processor, one response to the recognized user data input.EFFECT: faster user service.10 cl, 6 dwg

Description

ОБЛАСТЬ ТЕХНИКИTECHNICAL FIELD

[001] Настоящее техническое решение, в общем, относится к автоматизированным информационным системам а, более конкретно, к технологии для интеллектуального и проективного генерирования диалоговых сообщений для выстраивания диалога с пользователем.[001] The present technical solution generally relates to automated information systems and, more specifically, to technology for intelligently and projectively generating dialog messages for building a dialogue with a user.

УРОВЕНЬ ТЕХНИКИBACKGROUND

[002] Технические решения, описанные в этом разделе, могут осуществляться, но необязательно представляют собой способы и системы, которые ранее рассматривались или осуществлялись. Следовательно, если только не указано иное, не следует исходить из того, что любое из технических решений, описанных в этом разделе, квалифицируется как предшествующий уровень техники только в силу их включения в этот раздел.[002] The technical solutions described in this section may be implemented, but not necessarily represent methods and systems that have been previously considered or implemented. Therefore, unless otherwise indicated, it should not be assumed that any of the technical solutions described in this section qualify as prior art only because of their inclusion in this section.

[003] Чат-бот как информационная автоматизированная система представляет собой агент на основе компьютера, имеющий адаптированный для человека графический интерфейс для доступа и управления информацией. Традиционно, чат-бот может взаимодействовать с пользователями на естественном языке для симуляции интеллектуального общения и предоставления персональной помощи пользователям. Например, пользователи могут задавать в чат-боте такие вопросы как, например, «Где находится ближайший отель?» или «Какая сейчас погода?», и получать соответствующие ответы. Пользователи также могут просить в чат-боте выполнить определенные функции, включая, например, создание электронных писем, выполнение телефонных звонков, поиск информации, получение данных, переадресацию пользовательских запросов, направление пользователя, обеспечение заметок и напоминаний и так далее. Чат-боты и системы персональных цифровых помощников широко применяются и оказывают огромную помощь для пользователей компьютеров и являются особенно полезными для владельцев портативных электронных устройств, например смартфонов, планшетных компьютеров, игровых консолей и так далее.[003] A chat bot as an automated information system is a computer-based agent that has a human-adapted graphical interface for accessing and managing information. Traditionally, a chat bot can interact with natural language users to simulate intelligent communication and provide personal assistance to users. For example, users can ask such questions in the chatbot as, for example, “Where is the nearest hotel located?” Or “What is the weather now?”, And receive relevant answers. Users can also request a chat bot to perform certain functions, including, for example, creating emails, making phone calls, searching for information, receiving data, redirecting user requests, sending a user, providing notes and reminders, and so on. Chat bots and personal digital assistant systems are widely used and are a great help for computer users and are especially useful for owners of portable electronic devices such as smartphones, tablet computers, game consoles, and so on.

[004] Термин «чат-бот» также может быть известен и использоваться как «разговорная диалоговая система», «диалоговая система», «коммуникационный агент», «робот-собеседник», «бот-собеседник», «чат агент», «цифровой персональный помощник/агент», «автоматизированный онлайн помощник» и так далее. Все эти термины подпадают под объем настоящего описания технического решения.[004] The term "chat bot" can also be known and used as a "conversational conversational system", "interactive system", "communication agent", "robot-interlocutor", "bot-interlocutor", "chat agent", " digital personal assistant / agent, automated online assistant and so on. All of these terms fall within the scope of this technical description.

[005] По существу, пользователи чат-ботов могут задавать большое количество различных вопросов и запрашивать большой диапазон информации, относящейся к мировым и местным новостям, погоде, контенту электронной почты, календарным встречам, запланированным событиям и любому другому доступному для поиска контенту. Чат-бот может быть полезным не только для доступа к определенной информации, но также для генерирования контента, планирования событий, написания электронных писем, навигации, и гораздо большего. С другой стороны, часто для пользователей трудно понять, какой тип информации может запрашиваться через чат-бот в конкретный момент времени. Например, начинающие пользователи могут с трудом понимать или знать принципы работы чат-бота или его конкретные функциональные возможности. Пользователи могут недопонимать, что несколько особенностей приложения чат-бота могут очень часто применяться для решения их повседневных задач и потребностей. Следовательно, по-прежнему существует необходимость развития чат-ботов и, в частности, существует необходимость усовершенствования интерфейса взаимодействия человека с чат-ботом.[005] Essentially, chat bots users can ask a large number of different questions and request a wide range of information related to world and local news, weather, email content, calendar appointments, scheduled events and any other searchable content. A chat bot can be useful not only for accessing certain information, but also for generating content, planning events, writing emails, navigating, and much more. On the other hand, it is often difficult for users to understand what type of information can be requested through a chat bot at a specific point in time. For example, novice users can hardly understand or know the principles of a chat bot or its specific functionality. Users may misunderstand that several features of a chat bot application can very often be used to solve their daily tasks and needs. Therefore, there is still a need to develop chat bots and, in particular, there is a need to improve the interface of human interaction with the chat bot.

[006] В финансово-кредитных учреждениях нагрузка на колл-центры постоянно растет, причем количество звонков и диалогов с операторами исчисляется миллионами в год. Большая часть вопросов является прогнозируемой и не требует уникального ответа, причем может закрываться в режиме реального времени автоматически.[006] In financial-credit institutions, the load on call centers is constantly growing, with the number of calls and conversations with operators amounting to millions per year. Most of the questions are predictable and do not require a unique answer, and can be closed in real time automatically.

СУЩНОСТЬ ТЕХНИЧЕСКОГО РЕШЕНИЯESSENCE OF TECHNICAL SOLUTION

[007] Данное техническое решение направлено на устранение недостатков, присущих существующим решениям, известным из уровня техники.[007] This technical solution is aimed at eliminating the disadvantages inherent in existing solutions known from the prior art.

[008] Технической проблемой (или технической задачей) в данном техническом решении является формирование диалога с пользователем, позволяющего точно ответить на возникшие вопросы пользователя.[008] A technical problem (or technical problem) in this technical solution is the formation of a dialogue with the user, allowing to accurately answer the user's questions.

[009] Техническим результатом, проявляющимся при решении вышеуказанной задачи, является увеличение скорости обслуживания пользователя.[009] The technical result, which manifests itself in solving the above problem, is to increase the speed of user service.

[0010] Дополнительным техническим результатом является снижение вычислительной нагрузки на информационную систему колл-центра за счет снижения количества звонков пользователей и количества диалогов в службе поддержки.[0010] An additional technical result is to reduce the computational load on the call center information system by reducing the number of user calls and the number of conversations in the support service.

[0011] Указанный технический результат достигается благодаря реализации способа для выстраивания диалога с пользователем в удобном для пользователя канале, в котором получают посредством процессора, функционально соединенного с базой данных, данные пользовательского ввода; осуществляют предобработку пользовательского ввода посредством его разбиения на предложения и слова, причем исправляют орфографические ошибки пользователя посредством использования модуля исправления опечаток; выполняют лемматизацию каждого слова из пользовательского ввода; формируют структуру зависимостей слов друг от друга в пользовательском вводе посредством использования синтаксического парсера; формируют векторную модель слов пользовательского ввода; классифицируют посредством модуля ведения диалога с пользователем по меньшей мере часть пользовательского ввода для формирования ответа; предоставляют посредством процессора по меньшей мере один ответ на распознанный пользовательский ввод данных.[0011] This technical result is achieved due to the implementation of the method for building a dialogue with the user in a user-friendly channel, in which the user input is received by means of a processor functionally connected to the database; pre-process user input by splitting it into sentences and words, and correct user spelling errors by using the typo correction module; perform lemmatization of each word from user input; form the structure of the dependencies of words from each other in the user input by using the syntax parser; form a vector model of user input words; classifying by means of the dialogue with the user at least part of the user input to generate a response; provide by the processor at least one response to the recognized user input.

[0012] В некоторых вариантах реализации при осуществлении предобработки пользовательского ввода дополнительно исправляют опечатки в пользовательском вводе посредством подмодуля исправления опечаток.[0012] In some embodiments, when the user input is pre-processed, the typos in the user input are further corrected by the typo correction submodule.

[0013] В некоторых вариантах реализации при осуществлении предобработки пользовательского ввода дополнительно выполняют токенизацию числительных из пользовательского ввода.[0013] In some embodiments, when the user input is preprocessed, the tokenization of numerals from the user input is additionally performed.

[0014] В некоторых вариантах реализации синтаксический парсер текста для анализа пользовательского текста использует рекуррентные нейронные сети.[0014] In some embodiments, the text parser uses recurrent neural networks to analyze user text.

[0015] В некоторых вариантах реализации при классификации пользовательского ввода модуль ведения диалога использует алгоритм заполнения слотов.[0015] In some embodiments, when classifying user input, the dialog module uses a slot filling algorithm.

[0016] В некоторых вариантах реализации при классификации посредством модуля ведения диалога с пользователем пользовательского ввода определяют линейные сценарии диалога или нелинейные сценарии диалога.[0016] In some embodiments, when classifying by means of a dialogue module with a user of user input, linear dialog scripts or non-linear dialog scripts are defined.

[0017] В некоторых вариантах реализации при формировании векторной модели слов пользовательского ввода используют модель CBOW и/или Skip-gram.[0017] In some embodiments, the CBOW and / or Skip-gram model is used in generating a user input vector pattern.

[0018] В некоторых вариантах реализации при формировании ответа для пользователя для отображения в графическом интерфейсе пользователя определяют класс, к которому относится пользовательский ввод.[0018] In some embodiments, when generating a response for a user to display in the graphical user interface, determine the class to which the user input relates.

[0019] В некоторых вариантах реализации при формировании ответа для пользователя для отображения в графическом интерфейсе пользователя в случае отсутствии ответа в диалоге, переключают его на оператора.[0019] In some embodiments, when generating a response for a user to display in the graphical user interface in the absence of a response in the dialogue, switch it to an operator.

КРАТКОЕ ОПИСАНИЕ ЧЕРТЕЖЕЙBRIEF DESCRIPTION OF THE DRAWINGS

[0020] Признаки и преимущества настоящего изобретения станут очевидными из приводимого ниже подробного описания изобретения и прилагаемых чертежей, на которых:[0020] The features and advantages of the present invention will become apparent from the following detailed description of the invention and the accompanying drawings, in which:

[0021] На Фиг. 1 показан пример реализации системы для выстраивания диалога с пользователем в удобном для пользователя канале;[0021] FIG. 1 shows an example of a system implementation for building a dialogue with a user in a user-friendly channel;

[0022] На Фиг. 2 показан пример реализации модуля предобработки текста;[0022] FIG. 2 shows an example of the implementation of the text preprocessing module;

[0023] На Фиг. 3 показан пример реализации перехода фразы из одной в другую согласно подходу расстояния движения слов.[0023] FIG. 3 shows an example of the implementation of the transition of the phrase from one to another according to the approach of the distance of movement of words.

[0024] На Фиг. 4 показан пример реализации способа для выстраивания диалога с пользователем в удобном для пользователя канале.[0024] FIG. 4 shows an example implementation of a method for arranging a dialogue with a user in a user-friendly channel.

[0025] На Фиг. 5 показан пример реализации подхода word2vec, который позволяет оценивать семантическую близость слов.[0025] FIG. Figure 5 shows an example of the implementation of the word2vec approach, which allows to evaluate the semantic proximity of words.

[0026] На Фиг. 6 пример реализации системы для выстраивания диалога с пользователем в удобном для пользователя канале, реализованной посредством набора вычислительных компонент.[0026] FIG. 6 is an example of a system implementation for building up a dialogue with a user in a user-friendly channel, implemented through a set of computational components.

ПОДРОБНОЕ ОПИСАНИЕ ИЗОБРЕТЕНИЯDETAILED DESCRIPTION OF THE INVENTION

[0027] Данное техническое решение может быть реализовано на компьютере, в виде автоматизированной информационной системы (АИС) или машиночитаемого носителя, содержащего инструкции для выполнения вышеупомянутого способа.[0027] This technical solution can be implemented on a computer, in the form of an automated information system (AIS) or computer-readable media containing instructions for performing the above method.

[0028] Техническое решение может быть реализовано в виде распределенной компьютерной системы.[0028] The technical solution may be implemented as a distributed computer system.

[0029] В данном решении под системой подразумевается компьютерная система, ЭВМ (электронно-вычислительная машина), ЧПУ (числовое программное управление), ПЛК (программируемый логический контроллер), компьютеризированные системы управления и любые другие устройства, способные выполнять заданную, четко определенную последовательность вычислительных операций (действий, инструкций).[0029] In this solution, a system means a computer system, a computer (electronic computer), a CNC (numerical control), a PLC (programmable logic controller), computerized control systems, and any other devices capable of performing a given, well-defined sequence of computing operations (actions, instructions).

[0030] Под устройством обработки команд подразумевается электронный блок либо интегральная схема (микропроцессор), исполняющая машинные инструкции (программы).[0030] A command processing device is an electronic unit or an integrated circuit (microprocessor) that executes machine instructions (programs).

[0031] Устройство обработки команд считывает и выполняет машинные инструкции (программы) с одного или более устройства хранения данных. В роли устройства хранения данных могут выступать, но, не ограничиваясь, жесткие диски (HDD), флеш-память, ПЗУ (постоянное запоминающее устройство), твердотельные накопители (SSD), оптические приводы.[0031] The command processing device reads and executes machine instructions (programs) from one or more data storage devices. In the role of a storage device can act, but not limited to, hard drives (HDD), flash memory, ROM (read-only memory), solid-state drives (SSD), optical drives.

[0032] Программа - последовательность инструкций, предназначенных для исполнения устройством управления вычислительной машины или устройством обработки команд.[0032] Program - a sequence of instructions intended for execution by a computer control device or a command processing device.

[0033] Ниже будут описаны термины и понятия, необходимые для реализации настоящего технического решения.[0033] The following will describe the terms and concepts needed to implement this technical solution.

[0034] Виртуальный собеседник, программа-собеседник, чат-бот (англ. chatbot) - компьютерная программа, имитирующая речевое поведение человека при общении с одним или несколькими собеседниками.[0034] Virtual interlocutor, interlocutor, chat bot (eng. Chatbot) is a computer program that simulates human speech behavior when communicating with one or more interlocutors.

[0035] Лемматизация - процесс приведения словоформы к лемме - ее нормальной (словарной) форме. Например, «кошками» после лемматизации преобразовывается в «кошка».[0035] Lemmatization is the process of bringing a word form to a lemma — its normal (vocabulary) form. For example, “cats” after lemmatization is transformed into “cat”.

[0036] База данных (БД) - совокупность данных, организованных в соответствии с концептуальной структурой, описывающей характеристики этих данных и взаимоотношения между ними, причем такое собрание данных, которое поддерживает одну или более областей применения (ISO/IEC 2382:2015, 2121423 «database»).[0036] A database (DB) is a collection of data organized in accordance with a conceptual structure that describes the characteristics of this data and the relationship between them, a collection of data that supports one or more applications (ISO / IEC 2382: 2015, 2121423 " database ").

[0037] Как показано на Фиг. 1, система 100 для выстраивания диалога с пользователем в удобном для пользователя канале передачи данных может содержать описанные ниже модули, между которыми осуществляется обмен данными.[0037] As shown in FIG. 1, the system 100 for lining up a dialogue with a user in a user-friendly data channel may contain the modules described below, between which data is exchanged.

[0038] Предварительно в модуль 120 предобработки текста поступает запрос на осуществление той или иной услуги от пользователя (или некоторая его модификация), который его формирует посредством своего графического интерфейса 110 пользователя, например, в мобильном приложении на мобильном устройстве связи.[0038] Previously, the text preprocessing module 120 receives a request for the implementation of a service from a user (or some modification of it), which generates it through its graphical user interface 110, for example, in a mobile application on a mobile communication device.

[0039] Услуга, которую запрашивает пользователь, может включать, например, получение кредита, выпуск пластиковых карт, депозиты, лизинг, обслуживание расчетного счета, операции с иностранной валютой и т.д.[0039] The service requested by the user may include, for example, obtaining a loan, issuing plastic cards, deposits, leasing, servicing a current account, foreign currency transactions, etc.

[0040] На данном шаге 401, как это показано на Фиг. 4, фактически получают пользовательский ввод данных, который может представлять собой строку или их набор, причем символьную. Пользовательский ввод данных может включать как один вопрос, так и их набор. Данные пользовательского ввода сохраняются в базу данных 150. Строка может быть, не ограничиваясь, например, следующего вида: «Привет, чат-бот! Переведи Денису Иванову с моего счета 100 рублей на его телефон».[0040] At this step 401, as shown in FIG. 4, in fact, user input is received, which may be a string or a set thereof, and a character one. User input can include both a single question and a set of them. User input data is stored in database 150. The string may be, without being limited to, for example, the following: “Hello, chat bot! Transfer Denis Ivanov from my account 100 rubles to his phone. ”

[0041] Базовый модуль 120 предобработки текста, отвечает за снижение многообразия возможных текстов сообщений для того, чтобы упростить работу следующим модулям системы 100. Данный модуль предназначен для разбиения входящего пользовательского ввода на предложения и слова, а также их морфологического разбора, синтаксического разбора и семантической типизации токенов.[0041] The basic text preprocessing module 120 is responsible for reducing the variety of possible message texts in order to simplify the work of the following modules of the system 100. This module is intended to split the incoming user input into sentences and words, as well as their morphological analysis, syntax analysis and semantic typing tokens.

[0042] Этап токенизации, предполагает выделение базовых элементов текста (токенов), ограниченных с двух сторон разделительными символами, пробелами или знаками пунктуации. Элементами здесь выступают слова, числа, даты, сокращения, аббревиатуры, составные предлоги и т.д. Токенизация позволяет выделить дискретные единицы текста, являющиеся основой для дальнейшей работы на этапах морфологического и синтаксического анализа. В результате токенизации каждому элементу присваивается соответствующий тип: слово, число, дата, адрес и т.д.[0042] The tokenization stage involves the selection of basic text elements (tokens) bounded on two sides by dividing characters, spaces or punctuation marks. The elements here are words, numbers, dates, abbreviations, abbreviations, compound prepositions, etc. Tokenization allows you to select discrete units of text, which are the basis for further work at the stages of morphological and syntactic analysis. As a result of tokenization, each element is assigned an appropriate type: word, number, date, address, etc.

[0043] Цель предобработки текста - подготовить его для качественной классификации запросов. Для этого запрос проходит много этапов предобработки 402 и обогащения различной информацией, среди которых основными этапами являются:[0043] The purpose of text preprocessing is to prepare it for the qualitative classification of requests. For this, the request goes through many stages of preprocessing 402 and enrichment with various information, among which the main stages are:

[0044] исправление опечаток;[0044] typo correction;

[0045] лемматизация со снятием морфологической омонимии;[0045] lemmatization with the removal of morphological homonymy;

[0046] обогащение результатами разбора синтаксического парсера и отдельного[0046] enriching the results of parsing the syntax parser and the individual

выделения набора троек объект + субъект + действие (SAO);selection of a set of triples object + subject + action (SAO);

[0047] перевод числительных из текста в цифровое представление ("тыща триста" заменяется на 1300), выделение ФИО, времени и т.д.[0047] the translation of numerals from text to digital representation ("three hundred" is replaced by 1300), the allocation of name, time, etc.

[0048] Модуль 120 предобработки текста включает, не ограничиваясь, как показано на Фиг. 2, синтаксический парсер 210 текста, подмодуль 220 исправления опечаток, морфологический анализатор 230 русского языка с поддержкой снятия морфологической неоднозначности, подмодуль 240 замены синонимов и коллокаций, подмодуль 250 замены числительных, денежных сумм и номеров телефонов.[0048] The text preprocessing module 120 includes, but is not limited to, as shown in FIG. 2, text syntax parser 210, typo correction sub-module 220, Russian morphological analyzer 230 with support for removing morphological ambiguity, sub-module 240 replacing synonyms and collocations, sub-module 250 replacing numerals, monetary amounts and telephone numbers.

[0049] Подмодуль 220 исправления опечаток используется для исправления орфографических ошибок пользователей, что помогает правильно классифицировать запрос.[0049] The typo correction module 220 is used to correct spelling errors of users, which helps to properly classify the request.

[0050] Принцип работы данного подмодуля 220 следующий:[0050] The principle of operation of this sub-module 220 is as follows:

[0051] разбивают предложение на слова;[0051] break the sentence into words;

[0052] для каждого слова:[0052] for each word:

a. если длина слова больше 2 - возвращают его;a. if the word is longer than 2, return it;

b. если есть типовое исправление ошибки по словарю - возвращают типовое исправление;b. if there is a typical correction of the error in the dictionary - a typical correction is returned;

c. если слово состоит не только из букв - возвращают его;c. if the word consists not only of letters, return it;

d. если слово знакомо частотному словарю - возвращают егоd. if the word is familiar to the frequency dictionary - return it

e. если слово не знакомо, возвращают наиболее вероятное исправление:e. if the word is not familiar, the most likely correction is returned:

i. генерируют все варианты исправления слова с одним изменением: удаление, добавление, замена одиночных символов или замена местами двух соседних в слове;i. generate all options for correcting a word with one change: deleting, adding, replacing single characters or replacing two adjacent characters in a word;

ii. отфильтровывают только знакомые частотному словарю, выделяют их долю (р1);ii. filter only familiar to the frequency dictionary, allocate their share (p1);

iii. если кандидат 1 - возвращают его;iii. if candidate 1 returns it;

iv. выделяют вероятность конкретной ошибки (р2) (например, вероятность ошибки е/и выше, чем е/ь);iv. the probability of a specific error (p2) is distinguished (for example, the probability of an error is e / and higher than e / b);

v. выделяют вероятность сочетания подобранных вариантов исправления с предыдущим словом (р3);v. highlight the probability of combining the selected correction options with the previous word (p3);

vi. вычисляют совокупную вероятность каждого кандидата р=р1^λ1 * р2^λ2 * р3^λ3 где λ1, λ2 и λ3 - настраиваемые параметры, и возвращают наилучший.vi. calculate the cumulative probability of each candidate p = p1 ^ λ1 * p2 ^ λ2 * p3 ^ λ3 where λ1, λ2 and λ3 are adjustable parameters, and return the best.

[0053] Морфологический анализатор 230 русского языка с поддержкой снятия морфологической неоднозначности представляет собой набор алгоритмов, которые занимается сопоставлением отдельных слов и словоформ в словаре (лексиконе, если быть точным) и выяснением грамматических характеристик слов.[0053] The morphological analyzer 230 of the Russian language with support for removing morphological ambiguity is a set of algorithms that match individual words and word forms in the dictionary (lexicon, to be exact) and ascertain the grammatical characteristics of words.

Разметка исходного текста грамматической информацией очень облегчает составление правил далее при работе синтаксического парсера 210 текста. Работа морфологического анализатора 230 финализируется установлением морфологических признаков слов текста. Эта задача может рассматриваться как задача разметки или тегирования текста - установления тегов (морфологических признаков). Набор устанавливаемых признаков при этом непосредственно зависит от языка. Морфологический анализатор 230 в некоторых вариантах реализации может осуществлять морфологический анализ, который может быть словарным (со словарем основ и окончаний или словарем словоформ) или бессловарным (только со словарем окончаний; словарь окончаний может быть встроен в алгоритм морфологического анализа 230). Бессловарный метод используется только для определения переменной морфологической информации (не всегда однозначно), а словарный - во всех остальных случаях. Алгоритмы, модель формообразования работы морфологического анализатора 230, который осуществляет генерацию и определение словоформ и примеры для различных естественных языков известны из источника информации [3].The marking of the source text with grammatical information makes it very easy to make rules further when the syntax parser 210 of the text works. The work of the morphological analyzer 230 is finalized by establishing the morphological features of the words of the text. This task can be considered as a task of marking or tagging text - identifying tags (morphological features). The set of features to be installed is directly dependent on the language. In some embodiments, the morphological analyzer 230 can perform morphological analysis, which can be a dictionary (with a dictionary of foundations and endings or a dictionary of word forms) or wordless (only with a dictionary of endings; a dictionary of endings can be embedded into the algorithm of morphological analysis 230). The wordless method is used only to determine the variable of morphological information (not always unambiguously), and the vocabulary method is used in all other cases. Algorithms, a model of the formation of the morphological analyzer 230, which generates and defines word forms and examples for various natural languages, are known from the source of information [3].

[0054] Подмодуль 240 замены синонимов и коллокаций выполнен с возможностью определения синонимов и коллокаций в пользовательском вводе и имеющейся базе данных 150 на основании статистических мер (MI, t-score, log-likelihood), которые чаще всего используются при определении степени близости между компонентами словосочетаний в корпусе. Мера Ml позволяет выделить устойчивые словосочетания, имена собственные, а также низкочастотные специальные термины. Слова, у которых мера MI-score принимает наибольшую величину, менее частотны и обладают ограниченной сочетаемостью. Мера t-score также учитывает частоту совместной встречаемости ключевого слова и коллоката, отвечая на вопрос, насколько не случайной является сила ассоциаций (связанности) между коллокатами. Слова с наибольшим значением t-score оказываются частотными и могут сочетаться с множеством единиц. В некоторых вариантах реализации подмодуль 240 замены синонимов и коллокаций может использовать каждую приведенную меру или несколько в совокупности.[0054] Sub-module 240 replacing synonyms and collocations is configured to define synonyms and collocations in user input and the existing database 150 based on statistical measures (MI, t-score, log-likelihood), which are most often used in determining the degree of closeness between components phrases in the case. Measure Ml allows you to select stable phrases, proper names, as well as low-frequency special terms. The words for which the MI-score measure takes the greatest value are less frequent and have limited compatibility. The t-score measure also takes into account the frequency of joint occurrence of a keyword and collocate, answering the question of how random the association (cohesion) strength between collocates is. Words with the highest t-score turn out to be frequency and can be combined with many units. In some embodiments, the sub-module 240 replacing synonyms and collocations may use each of the above measures or more in combination.

[0055] Результатом работы синтаксического парсера 210 текста является структура зависимостей слов друг от друга в пользовательском вводе в этом тексте (отдельных его предложениях). Например, из фразы «переведи маме сто рублей» система 100 принимает решение, что мама - это косвенный объект (адресат).[0055] The result of the text parser 210 is the structure of the dependencies of words from each other in the user input in this text (its separate sentences). For example, from the phrase “transfer a hundred rubles to mother”, system 100 makes a decision that a mother is an indirect object (addressee).

[0056] Синтаксический парсер 210 текста выделяет синтаксическую структуру предложения, которая представляет собой дерево зависимостей, в узлах которого стоят слова предложения, а ветви помечены именами синтаксических отношений.[0056] The syntax parser 210 of the text highlights the syntactic structure of the sentence, which is a dependency tree, at the nodes of which there are words of the sentence, and the branches are labeled with the names of syntactic relations.

[0057] Работа синтаксического парсера 210 текста уже является распознаванием пользовательского ввода 403, как это показано на Фиг. 4.[0057] The operation of the text parser 210 is already recognizing user input 403, as shown in FIG. four.

[0058] В некоторых вариантах реализации синтаксический парсер 210 текста для анализа пользовательского ввода может использовать для своей работы рекуррентные нейронные сети (Recurrent Neural Network, RNN) для обучения синтаксического парсера 210 текста. Рекуррентные нейронные сети - это класс моделей машинного обучения, основанный на использовании предыдущих состояний сети для вычисления текущего. Каждый символ в исходном тексте, отдельные слова, знаки препинания и даже целые фразы - все это является атомарным элементом входной последовательности для нейронной сети. В некоторых вариантах реализации могут использоваться управляемые рекуррентные нейроны (gated recurrent units, GRU). Фильтр обновления определяет, сколько информации останется от прошлого состояния и сколько будет взято из предыдущего слоя. Фильтр сброса работает примерно как забывающий фильтр.[0058] In some embodiments, the text parser 210 for analyzing user input may use recurrent neural networks (RNN) for its work to train the text syntax parser 210. Recurrent neural networks are a class of machine learning models based on using previous network states to calculate the current one. Each character in the source text, individual words, punctuation marks, and even whole phrases are all an atomic element of the input sequence for a neural network. In some embodiments, managed recurrent neurons (gated recurrent units, GRU) may be used. The update filter determines how much information will remain from the past state and how much will be taken from the previous layer. The reset filter works something like a forgetting filter.

[0059] Для обучения нейронных сетей в качестве обучающей выборки используются корпусы, а именно трибанки. В лингвистике корпус - подобранная и обработанная по определенным правилам совокупность текстов, используемых в качестве базы данных для исследования языка. Они используются для статистического анализа и проверки статистических гипотез, подтверждения лингвистических правил в данном языке. Трибанк - это коллекция разобранных предложений (то есть графов разбора), подготовленных вручную или автоматически заранее. Трибанки по классификации делятся на phrase-structure treebanks и dependency treebanks. В данном техническом решении могут использоваться, не ограничиваясь, следующие трибанки или корпусы для русского языка: SynTagRus (1,107 тыс. токенов), PUD (19 тыс. токенов), GSD (99 тыс. токенов), Taiga (20 тыс. токенов), Dependency Treebanks и т.д.[0059] For training neural networks, corps, namely tribanks, are used as a training set. In linguistics, the corpus is a set of texts selected and processed according to certain rules, used as a database for language research. They are used for statistical analysis and verification of statistical hypotheses, confirmation of linguistic rules in a given language. Tribank is a collection of parsed sentences (that is, parse graphs) prepared manually or automatically in advance. Tribanki by classification are divided into phrase-structure treebanks and dependency treebanks. The following tribanks or cases for the Russian language can be used in this technical solution without limitation: SynTagRus (1.107 thousand tokens), PUD (19 thousand tokens), GSD (99 thousand tokens), Taiga (20 thousand tokens), Dependency Treebanks, etc.

[0060] Далее применяют подход Transition-based dependency parsing, широко известный из уровня техники. Этот подход заключается в попытке предсказать последовательность действий (переходов) от некоторой изначальной конфигурации фразы или запроса пользователя к конечной, в результате выполнения которых будет получено искомое дерево разбора, что позволяет получить достаточно высокую точность и достичь довольно высоких скоростей при обработке текста.[0060] Next, apply the Transition-based dependency parsing approach, widely known from the prior art. This approach consists in an attempt to predict the sequence of actions (transitions) from some initial configuration of a phrase or user request to the final one, as a result of which the search parse tree will be obtained, which allows one to obtain sufficiently high accuracy and to achieve rather high speeds during text processing.

[0061] Arc-standard system - один из наиболее популярных подходов реализации transition-based системы. Система описывается конфигурацией, состоящей из трех частей: с=(s, b, А),[0061] The Arc-standard system is one of the most popular approaches for implementing a transition-based system. The system is described by a configuration consisting of three parts: c = (s, b, A),

[0062] где: s - стек данных;[0062] where: s is the data stack;

[0063] b - буфер данных;[0063] b - data buffer;

[0064] А - множество зависимостей.[0064] A is the set of dependencies.

[0065] Изначально конфигурация для последовательности символов w1, …, wn следующая перед обработкой:[0065] The initial configuration for the sequence of symbols w 1 , ..., w n is the following before processing:

[0066] s=[ROOT] - в стеке один служебный символ;[0066] s = [ROOT] - one service character in the stack;

[0067] b=[wl,…,wn] - в буфере вся последовательность символов;[0067] b = [w l , ..., w n ] - in the buffer, the entire sequence of characters;

[0068] А=

Figure 00000001
- множество зависимостей пусто.[0068] A =
Figure 00000001
- many dependencies are empty.

[0069] Конечная конфигурация после обработки следующая:[0069] The final configuration after processing is as follows:

[0070] s=[ROOT] - в стеке один служебный символ;[0070] s = [ROOT] - one service character in the stack;

[0071] b - пуст;[0071] b is empty;

[0072] А - содержит искомое дерево разбора.[0072] A - contains the desired parse tree.

[0073] Будем считать si где i=(1, 2,…), i-м верхним элементом стека, bi, i=(1, 2,…) - i-й элемент буфера данных.[0073] We assume that s i where i = (1, 2, ...), the i-th top element of the stack, b i , i = (1, 2, ...) is the i-th element of the data buffer.

[0074] Подход Arc-standard system имеет 4 типа операций:[0074] The Arc-standard system approach has 4 types of operations:

[0075] SHIFT - удаление b1 из буфера и добавление его в стек;[0075] SHIFT - remove b 1 from the buffer and add it to the stack;

[0076] LEFT_ARC - добавляет в А связь от s1 к s2, с определенной меткой типа связи, и удаляет s2 из стека;[0076] LEFT_ARC — adds a link from s 1 to s 2 in A , with a specific label of the type of connection, and removes s 2 from the stack;

[0077] RIGHT_ARC - аналогично LEFT_ARC, только с заменой s1 и s2.[0077] RIGHT_ARC - similar to LEFT_ARC, only with the replacement of s 1 and s 2 .

[0078] SWAP: возвращает из стека второй элемент в буфер.[0078] SWAP: returns the second element from the stack to the buffer.

[0079] Таким образом, получается всего |Т|=2Ni+1 возможных действий, где Ni - количество типов меток зависимости. Цель синтаксического парсера 210 текста - выбрать наиболее подходящее действие по данной конфигурации.[0079] Thus, we get a total of | T | = 2N i +1 possible actions, where N i is the number of types of dependency labels. The purpose of the text parser 210 is to select the most appropriate action for this configuration.

[0080] Для обучения искусственной нейронной сети требуется на основе имеющихся данных сгенерировать наиболее подходящую последовательность действий. На каждом шаге конфигурация будет содержать необходимые данные, а действие - ответ.[0080] For learning artificial neural network is required on the basis of available data to generate the most appropriate sequence of actions. At each step, the configuration will contain the necessary data, and the action - the answer.

[0081] Результатом работы синтаксического парсера 210 текста является дерево разбора, где для каждого элемента фразы указан его родитель и тип зависимости.[0081] The result of the work of the text parser 210 is a parse tree, where for each element of the phrase its parent and type of dependency are indicated.

Для оценки результатов работы синтаксического парсера могут использовать следующие метрики:The following metrics can be used to evaluate the performance of the parser:

[0082] Unlabeled Attachment Score (UAS) - отношение количества элементов с правильно указанным родителем, к общему количеству элементов;[0082] Unlabeled Attachment Score (UAS) - the ratio of the number of elements with a correctly specified parent to the total number of elements;

[0083] Labeled Attachment Score (LAS) - отношение количества элементов с правильно указанным родителем и типом связи, к общему количеству элементов.[0083] Labeled Attachment Score (LAS) is the ratio of the number of elements with a correctly specified parent and type of relationship to the total number of elements.

[0084] Пример работы модуля 120 обработки текста может иметь следующий вид:[0084] An example of the operation of the text processing module 120 may be as follows:

[0085] Вход: Запрос: "человек хочет взять завтра кредит на 100 млн рубелй"[0085] Login: Request: "a person wants to take a loan for 100 million rubles a day"

[0086] Выход:[0086] Exit:

Figure 00000002
Figure 00000002

Figure 00000003
Figure 00000003

[0087] Пользователь не всегда может точно сформулировать свой запрос на получение информации, которая ему необходима. Более того, даже после получения этой информации требуется ее последующая аналитическая обработка с целью определения ее полезности и пригодности для решения поставленной задачи. Трудности, связанные с решением этой задачи, заключаются в многообразии возможных форм выражения одной и той же идеи, мысли, что особенно характерно для русскоязычных текстов.[0087] The user is not always able to accurately formulate his request for information that he needs. Moreover, even after receiving this information, its subsequent analytical processing is required in order to determine its usefulness and suitability for solving the problem. The difficulties associated with solving this problem lie in the variety of possible forms of expression of the same idea, thought, which is especially characteristic of Russian-language texts.

[0088] Для решения этой задачи в данном техническом решении формируют векторную модель слов пользовательского ввода. Главным достоинством векторной модели является возможность поиска и ранжирования документов по подобию, то есть по их близости в векторном пространстве за счет определения расстояния между словами.[0088] To solve this problem in this technical solution form a vector model of user input words. The main advantage of the vector model is the ability to search and rank documents by similarity, that is, by their proximity in the vector space by determining the distance between words.

[0089] Координаты векторов формируются таким образом, чтобы косинусное или евклидово расстояние между векторами близких по смыслу слов было меньше, чем расстояние между векторами далеких по смыслу слов. При этом отдельные компоненты вектора могут отражать некоторую конкретную категорию, например в первой компоненте может содержаться информация о времени (прошлое -настоящее - будущее), во второй о физическом размере (маленький - большой), в третьем о стоимости (дорогой - дешевый) и т.д.[0089] The coordinates of the vectors are formed in such a way that the cosine or Euclidean distance between the vectors of similar words is smaller than the distance between the vectors of words that are far from the meaning. At the same time, individual components of the vector may reflect some specific category, for example, the first component may contain information about time (the past is the present - the future), the second is about physical size (small - large), the third about cost (expensive - cheap) and t .d

[0090] 3атем классифицируют посредством модуля 130 ведения диалога с пользователем по меньшей мере часть пользовательского ввода для формирования ответа.[0090] The third class classifies, via the dialog module 130, at least a portion of the user input for generating a response.

[0091] Система 100 содержит модуль 130 ведения диалога с пользователем, отвечающий за ведение многоступенчатого диалога с пользователем, повторное использование контекста диалога или использования данных из доступных внешних сервисов.[0091] The system 100 includes a user dialogue module 130 that is responsible for maintaining a multi-stage user dialogue, re-using the dialogue context, or using data from available external services.

[0092] Данный модуль 130 используется для того, чтобы отдельные сценарии диалога с пользователем по новым тематикам можно было создавать без единой дополнительной строчки программного кода / с небольшим и несложным объемом кода, чтобы это решение:[0092] This module 130 is used to enable separate dialogue scenarios with the user on new topics to be created without a single additional line of program code / with a small and simple amount of code, so that this solution:

[0093] позволяло не программистам заводить новые тематики;[0093] allowed non-programmers to start new subjects;

[0094] было легче в поддержке.[0094] was easier to maintain.

[0095] При этом архитектура модуля 130 позволяет встраивание со своими (совместимыми с архитектурой решения) подпрограммами, которые отвечают отдельным тематикам и могут быть произвольной сложности.[0095] At the same time, the architecture of the module 130 allows embedding with its own (compatible with the architecture of the solution) routines that correspond to specific topics and can be of arbitrary complexity.

[0096] Для возможности классификации запросов пользователей, а соответственно поддержания контекста беседы с пользователем, опроса клиента по заданному набору вопросов, модуль 130 может использовать подход на основе алгоритма заполнения слотов или форм (от англ. Slot Filling), широко известный из уровня техники.[0096] In order to be able to classify user requests, and accordingly maintain the context of the conversation with the user, interview the client on a given set of questions, module 130 can use an approach based on the slot or form filling algorithm (from the English Slot Filling) widely known from the prior art.

[0097] При использовании данного подхода могут определять два типа сценариев:[0097] When using this approach, two types of scenarios can be defined:

Figure 00000004
линейные сценарии диалога, в которых собирается информация, необходимая для ответа на запрос пользователя из базы данных 150 и/или внешних источников информации, и
Figure 00000004
linear dialogue scenarios in which information is collected necessary to respond to a user request from a database 150 and / or external sources of information, and

Figure 00000005
нелинейные сценарии, в которых собираемая информация зависит от предыдущих ответов пользователя.
Figure 00000005
non-linear scenarios in which the information collected depends on the user's previous responses.

[0098] При таком подходе каждый линейный сценарий представляется в виде формы, состоящей из набора полей, временем хранения формы и подготовленного ответа. Ответ может представлять собой цепочку произвольных действий и выполняется после заполнения всех обязательных полей формы.[0098] With this approach, each linear scenario is represented in the form of a form consisting of a set of fields, a form's storage time, and a prepared response. The answer can be a chain of arbitrary actions and is performed after filling in all the required fields of the form.

[0099] Каждое поле формы задается в виде набора свойств:[0099] Each form field is defined as a set of properties:

Figure 00000006
значение по умолчанию;
Figure 00000006
default value;

Figure 00000006
уточняющий вопрос для заполнения данного поля;
Figure 00000006
clarifying question to fill in this field;

Figure 00000006
обязательность заполнения (если поле не заполнено, но обязательно - будет задан уточняющий вопрос в диалоге пользователю);
Figure 00000006
Mandatory filling (if the field is not filled, but mandatory - a clarifying question will be asked in the dialogue to the user);

Figure 00000006
функция для заполнения (одна из заранее заготовленных, которая из результата предобработки текста или использования вспомогательных внешних сервисов/баз данных извлекает значение для заполнения поля);
Figure 00000006
the function to fill in (one of the prepared in advance, which from the result of preprocessing text or using auxiliary external services / databases extracts the value to fill in the field);

Figure 00000006
возможность использовать значение поля формы из контекста другим формам и возможность заполнить поле значением из контекста;
Figure 00000006
the ability to use the value of the form field from the context of other forms and the ability to fill the field with the value from the context;

Figure 00000006
время жизни значения поля (после которого оно будет очищено) и другие.
Figure 00000006
the lifetime of the field value (after which it will be cleared) and others.

[00100] Нелинейные сценарии при таком подходе задаются в виде однонаправленного ациклического графа форм с указанием начальной для сценария формы. В таком случае все формы являются аналогичными формам линейных сценариев и заполняются аналогично, но между ними существуют возможности переходов. Возможность перехода от заполнения одной формы к другой задается в виде накладываемых ограничений на значения полей первой.[00100] In this approach, nonlinear scenarios are set up in the form of a unidirectional acyclic form graph with the initial form for the script. In this case, all forms are similar to forms of linear scenarios and are filled in similarly, but there are transition possibilities between them. The possibility of transition from filling one form to another is specified in the form of imposed restrictions on the field values of the first one.

[00101] Таким образом, модуль 130 для классификации запросов работает по следующему алгоритму:[00101] Thus, the module 130 for classifying requests works according to the following algorithm:

[00102] 1. Получает обработанный (шаг 402) и распознанный (шаг 403) на предыдущем шаге текст, полученный из модуля 120 предобработки текста;[00102] 1. Retrieves the processed (step 402) and recognized (step 403) in the previous step text obtained from the text preprocessing module 120;

[00103] 2. Составляет упорядоченный список сценариев для прохода по ним: последние для данного пользователя, а затем все оставшиеся. Каждый сценарий может быть представлен одной формой и относится к одной теме/запросу/необходимой услуге;[00103] 2. Makes an ordered list of scenarios to traverse them: the last for a given user, and then any remaining. Each scenario can be represented by one form and refers to one topic / request / required service;

[00104] 3. Условия попадания в тот или иной сценарий задаются в виде правил, встраиваемых произвольных классификаторов, примеров, которые используются для классификации платформенным методом, использующимся и в модуле 140 ответа на часто задаваемые вопросы, или их комбинации. Последние для пользователя сценарии проверяются на предмет возможности заполнения полей формы клиентским запросом, и в случае успешности управление передается на них. В противном случае может использоваться иерархическая классификация для составления списка наиболее вероятных сценариев проверки, после чего проверяются специфичные для них условия попадания в сценарий;[00104] 3. Conditions for entering a particular scenario are defined as rules, embedded arbitrary classifiers, examples that are used to classify the platform method used in the module 140 for answering frequently asked questions, or a combination of both. The latest scripts for the user are checked for the possibility of filling out the form fields with a client request, and in case of success, control is transferred to them. Otherwise, hierarchical classification can be used to compile a list of the most likely verification scenarios, after which their specific conditions for entering the scenario are checked;

[00105] 4. Управление передается на наиболее вероятный сценарий среди набора сценариев, прошедших пороги уверенности, которые являются необходимыми и специфичными для каждого сценария. Пользователю в таком случае возвращается ответ из этого сценария посредством заполнения формы сценария. В случае отсутствия значимой разницы в вероятности двух прошедших различных сценариев пользователю может быть задан уточняющий вопрос, какой из них подразумевается..[00105] 4. Control is transferred to the most likely scenario among a set of scenarios that have passed confidence thresholds that are necessary and specific to each scenario. The user is then returned a response from this scenario by filling out the script form. In the absence of a significant difference in the probability of the two different scenarios that have passed, the user may be asked a clarifying question, which of them is implied.

[00106] В тех случаях, когда модуль 130 ведения диалога не включает ни одного сценария, соответствующего запросу пользователя, используется модуль 140 ответа на часто задаваемые вопросы. Данный модуль 140 используется, когда не требуется ни ведения диалога, ни клиентно-зависимых ответов, а только ответы на часто задаваемые вопросы. Для добавления новых тем нужны минимальные усилия: только список самих вопросов, ответов на них и возможных перифразировок вопросов (хотя поиск и допускает произвольность, но большее количество примеров все же улучшает качество).[00106] In cases where the dialogue module 130 does not include any scripts matching the user's request, the module 140 for answering frequently asked questions is used. This module 140 is used when neither dialogue, client-dependent answers, but only answers to frequently asked questions are required. Minimal efforts are needed to add new topics: only a list of the questions themselves, answers to them and possible paraphrasing of questions (although the search allows for arbitrariness, but more examples still improve the quality).

[00107] Пример работы:[00107] Work Example:

Вход: "Привет"Login: "Hello"

Выход: "Привет-привет.:)"Exit: "Hi, hi. :)"

Вход: "что у меня с просрочкой"Login: "what is my delay"

Выход: Для уточнения информации о наличии просроченной задолженности Вам необходимо позвонить по №телефона 8-800-333-31-38"Output: To clarify information about the presence of overdue debts, you need to call the telephone number 8-800-333-31-38 "

[00108] Необходимые данные для работы данного модуля 140 могут быть следующими:[00108] The necessary data for the operation of this module 140 may be as follows:

[00109] эталонное название вопроса для навигации,[00109] reference question name for navigation,

[00110] ответ для пользователя,[00110] the answer for the user

[00111] каналы передачи данных, в которых этот вопрос доступен,[00111] data channels in which this issue is available,

[00112] позитивные и негативные примеры запросов (позитивные - это запросы, которые должны вести к этому ответу, негативные - похожие на позитивные запросы, которые не должны вести к этому ответу).[00112] Positive and negative examples of requests (positive are requests that should lead to this answer, negative ones are similar to positive requests that should not lead to this answer).

[00113] Классификация запроса по пользовательским тематикам из модуля 130 и модуля 140 в некоторых реализациях может быть объединена. После определения тематики управление передается в соответствующий модуль.[00113] The classification of a query on user topics from module 130 and module 140 may be combined in some implementations. After determining the subject matter, control is transferred to the appropriate module.

[00114] В некоторых вариантах реализации для поиска нужного сценария нормализованный текст пользовательского ввода преобразовывают в вектор слов (формируют векторную модель слов) с помощью статистической меры TF-IDF, используемой для оценки важности слова в контексте документа, являющегося частью коллекции документов или корпуса.[00114] In some embodiments, to search for the desired scenario, the normalized user input text is converted into a word vector (form a vector word model) using the statistical measure TF-IDF, used to evaluate the importance of the word in the context of a document that is part of a collection of documents or corpus.

[00115] TF-IDF - статистическая мера, используемая для оценки важности слова в контексте документа, являющегося частью коллекции документов или корпуса. Вес некоторого слова пропорционален количеству употребления этого слова в документе, и обратно пропорционален частоте употребления слова в других документах коллекции.[00115] TF-IDF is a statistical measure used to assess the importance of a word in the context of a document that is part of a document collection or corpus. The weight of a word is proportional to the number of words used in the document, and inversely proportional to the frequency of words in other documents in the collection.

[00116] Мера TF-IDF часто используется в задачах анализа текстов и информационного поиска, например, как один из критериев релевантности документа поисковому запросу, при расчете меры близости документов при кластеризации.[00116] The TF-IDF measure is often used in text analysis and information retrieval tasks, for example, as one of the criteria for the relevance of a document to a search query, when calculating the measure of document proximity for clustering.

[00117] TF (term frequency - частота слова) - отношение числа вхождения некоторого слова к общему количеству слов документа. Значимость слова в пределах отдельного документа может быть определена следующей характеристикой:[00117] TF (term frequency) is the ratio of the number of occurrences of a word to the total number of words in the document. The significance of a word within an individual document can be determined by the following characteristic:

Figure 00000007
Figure 00000007

[00118] где ni - число вхождений слова ti в документ d; Σknk - общее число слов в данном пользовательском запросе и/или документе.[00118] where n i is the number of occurrences of the word t i in document d; Σ k n k is the total number of words in this user query and / or document.

[00119] IDF (inverse document frequency - обратная частота документа) - величина, обратно пропорциональная частоте, с которой некоторое слово встречается в документах коллекции.[00119] IDF (inverse document frequency) is a value inversely proportional to the frequency with which a word occurs in collection documents.

[00120] Учет IDF уменьшает вес широкоупотребительных слов. Для каждого уникального слова в пределах конкретной коллекции документов существует только одно значение IDF. IDF-характеристика определяется следующим отношением:[00120] Accounting for IDF reduces the weight of widely used words. For each unique word within a specific collection of documents, there is only one IDF value. IDF-characteristic is determined by the following relationship:

Figure 00000008
Figure 00000008

[00121] где |D| - количество документов в корпусе;

Figure 00000009
- количество документов, в которых встречается ti.[00121] where | D | - the number of documents in the case;
Figure 00000009
- the number of documents in which t i occurs.

[00122] Таким образом, мера TF-IDF является произведением двух сомножителей:[00122] Thus, the measure TF-IDF is the product of two factors:

Figure 00000010
Figure 00000010

[00123] Большой вес в мере TF-IDF получают слова с высокой частотой в пределах конкретного документа и с низкой частотой употреблений в других документах.[00123] Much of the weight in the TF-IDF measure is given to words with a high frequency within a particular document and with a low frequency of usage in other documents.

[00124] Мера TF-IDF часто используется для представления документов коллекции в виде числовых векторов, отражающих важность использования каждого слова из некоторого набора слов (количество слов набора определяет размерность вектора) в каждом документе. Подобная модель называется векторной моделью и дает возможность сравнивать тексты, сравнивая представляющие их вектора в какой либо метрике (евклидово расстояние, косинусная мера, манхэттенское расстояние, расстояние Чебышева и др.), то есть, производя кластерный анализ.[00124] The TF-IDF measure is often used to represent collection documents as numeric vectors, reflecting the importance of using each word from a certain set of words (the number of set words determines the dimension of the vector) in each document. Such a model is called a vector model and makes it possible to compare texts by comparing the vectors representing them in some metric (Euclidean distance, cosine measure, Manhattan distance, Chebyshev distance, etc.), that is, producing cluster analysis.

[00125] В данном техническом решении для формирования выходных данных (шаг 404, как показано на Фиг. 4) в диалоге может использоваться Word2vec - программный инструмент анализа семантики естественных языков, представляющий собой технологию, которая основана на дистрибутивной семантике и векторном представлении слов.[00125] In this technical solution, Word2vec, a software tool for analyzing the semantics of natural languages, which is a technology based on distributive semantics and vector representation of words, can be used to generate output data (step 404, as shown in Fig. 4).

[00126] Word2vec предполагает нахождение связей между семантикой слов согласно предположению, что слова, находящиеся в похожих контекстах, имеют тенденцию значить похожие вещи, т.е. быть семантически близкими, как это показано на Фиг. 5. Например, word2vec позволяет использовать «математику» на словах: «король» - «мужчина» + «женщина» = «королева». Более формально задача стоит так: максимизация косинусной близости между векторами слов (скалярное произведение векторов), которые появляются рядом друг с другом, и минимизация косинусной близости между векторами слов, которые не появляются друг рядом с другом. Рядом друг с другом в данном случае значит в близких контекстах.[00126] Word2vec suggests finding links between the semantics of words according to the assumption that words that are in similar contexts tend to mean similar things, i.e. to be semantically close, as shown in FIG. 5. For example, word2vec allows you to use "mathematics" in words: "king" - "man" + "woman" = "queen". More formally, the task is as follows: maximizing cosine proximity between word vectors (dot product of vectors) that appear next to each other, and minimizing cosine proximity between word vectors that do not appear next to each other. Next to each other in this case means in close contexts.

[00127] Например, слова «анализ» и «исследование» часто встречаются в похожих контекстах. Фразы «Ученые провели анализ алгоритмов» или «Ученые провели исследование алгоритмов» достаточно похожи. Word2vec анализирует эти контексты и делает вывод, что слова «анализ» и «исследование» являются близкими по смыслу.[00127] For example, the words “analysis” and “research” are often found in similar contexts. The phrases “Scientists have analyzed algorithms” or “Scientists have conducted a study of algorithms” are quite similar. Word2vec analyzes these contexts and concludes that the words “analysis” and “research” are close in meaning.

[00128] Например, для слова "кофе" word2vec может выдать следующие 15 ближайших соседей в формате "слово - косинусное расстояние":[00128] For example, for the word "coffee", word2vec may output the following 15 nearest neighbors in the format "word - cosine distance":

[00129] коффе 0.734483;[00129] Coffe 0.734483;

[00130] чая 0.690234;[00130] tea: 0.690234;

[00131] чай 0.688656;[00131] tea: 0.688656;

[00132] капучино 0.666638;[00132] cappuccino 0.666638;

[00133] кофн 0.636362;[00133] cofn 0.636362;

[00134] какао 0.619801;[00134] Cocoa 0.619801;

[00135] эспрессо 0.599390;[00135] Espresso 0.599390;

[00136] кофя 0.595211;[00136] coffee shop 0.595211;

[00137] цикорий 0.594247;[00137] Chicory 0.594247;

[00138] кофэ 0.593993;[00138] kofe 0.593993;

[00139] копучино 0.587324;[00139] Kopuchino 0.587324;

[00140] шоколад 0.585655;[00140] chocolate 0.585655;

[00141] капучинно 0.580286;[00141] cappuccino 0.580286;

[00142] кардамоном 0.566781;[00142] cardamom 0.566781;

[00143] латте 0.563224.[00143] Latte 0.563224.

[00144] Для формирования ответа пользователю (шаг 404) в некоторых вариантах реализации изобретения используют векторы всех слов, которые входят в пользовательский ввод данных, определяют между ними среднее (центроид) расстояние, после чего определяют уже косинусное расстояние между словами пользовательского ввода и центроида.[00144] To form a response to the user (step 404) in some embodiments of the invention, the vectors of all words that are included in the user data input are used, the average (centroid) distance is determined between them, and then the cosine distance between the user input and the centroid is determined.

[00145] В некоторых вариантах реализации используют вместо word2vec, такие векторные модели как GloVe, FastText и др., не ограничиваясь.[00145] In some embodiments, instead of using word2vec, vector models such as GloVe, FastText, etc. are used without being limited to.

[00146] В данном техническом решении для векторного представления слов могут использоваться следующие модели CBOW (Continuous Bag-of-Words) и Skip-gram, не ограничиваясь.[00146] In this technical solution, the following CBOW (Continuous Bag-of-Words) and Skip-gram models can be used for vector representation of words without being limited to.

[00147] Затем по мультииндексу векторов вопросов из FAQ (база данных часто задаваемых вопросов пользователями), который находится в базе данных 150, ранжируется несколько максимально похожих по евклидову расстоянию или косинусному сходству. Мультииндекс - обобщение понятия целочисленного индекса до векторного индекса, которое нашло применение в различных областях математики, связанных с функциями многих переменных. Косинусное сходство - это мера сходства между двумя векторами предгильбертового пространства, которая используется для измерения косинуса угла между ними.[00147] Then, by the multi-index question vectors from the FAQ (frequently asked questions database by users), which is located in database 150, we rank a bit as close as possible to the Euclidean distance or cosine similarity. Multi-index is a generalization of the concept of an integer index to a vector index, which has found application in various areas of mathematics related to functions of many variables. The cosine similarity is a measure of the similarity between two vectors of a pre-Hilbert space, which is used to measure the cosine of the angle between them.

[00148] Если даны два вектора признаков (в данном случае два вектора слов), А и В, то косинусное сходство, cos(θ), может быть представлено с использованием их скалярного произведения и нормы:[00148] If two feature vectors are given (in this case, two word vectors), A and B, then the cosine similarity, cos (θ), can be represented using their scalar product and the norm:

Figure 00000011
Figure 00000011

[00149] В некоторых вариантах реализации для определения максимально похожих вопросов, которые заранее известны, и ответы на них, может использоваться в качестве метрики расстояние Минковского (L1), Евклидово расстояние (L2), Мера Жаккарда.[00149] In some embodiments, to determine the most similar questions that are known in advance, and the answers to them, the Minkowski distance (L1), Euclidean distance (L2), Jacquard Measure can be used as a metric.

[00150] Например, если у нас имеется фраза «Джессика любит апельсины и мандарины», которая может быть представлена как вектор слов А (А: [1,1,0,0,0,1,1,1]), и фраза «Джесси нравятся цитрусовые», которая может быть представлена как вектор В (В: [0,0,1,1,1,0,0,0]). В связи с тем, что общих слов нет, косинусное расстояние будет равно 0. Однако нужно учитывать, что смысл в данных фразах семантически похож, так как «цитрусовые» в дереве разбора является родителем слов «апельсины» и «мандарины».[00150] For example, if we have the phrase "Jessica loves oranges and mandarins", which can be represented as a vector of words A (A: [1,1,0,0,0,1,1,1]], and the phrase “Jesse likes citrus fruits”, which can be represented as vector B (B: [0,0,1,1,1,0,0,0]). Due to the fact that there are no common words, the cosine distance will be 0. However, it must be taken into account that the meaning in these phrases is semantically similar, since “citrus” in the parse tree is the parent of the words “oranges” and “mandarins”.

[00151] Далее форматируется результат. В зависимости от расстояния вопроса до лучшего варианта и общего порога отсечения, пользователю выдается либо заранее подготовленный ответ (шаг 405, как показано на Фиг. 4), либо пара (вопрос, ответ) (если шанс нерелевантности ответа достаточен), либо переключаем на оператора.[00151] Next, the result is formatted. Depending on the distance of the question to the best option and the general cut-off threshold, the user is given either a pre-prepared answer (step 405, as shown in Fig. 4), or a pair (question, answer) (if the chance of irrelevance of the answer is sufficient) or switch .

[00152] Потенциально, система 100 может решить выводить в нужном месте список этих вопросов на выбор пользователя, если это позволяет графический интерфейс пользователя или требует какая-то отдельная команда. Для поддержки такого режима достаточно передать в этот модуль 140 дополнительный параметр, означающий возврат списка лучших вариантов для форматирования вместо самого текста одного.[00152] Potentially, system 100 may decide to output a list of these questions to the user's choice in the right place if the graphical user interface allows it or requires some kind of separate command. To support this mode, it is enough to pass an additional parameter to this module 140, meaning returning the list of the best options for formatting instead of the text itself.

[00153] В других вариантах реализации изобретения, предварительно формируют перечень часто задаваемых вопросов в базе данных, а затем при поступлении нового пользовательского ввода, применяют способ Word Mover's Distance, предложенный в источнике информации [1].[00153] In other embodiments of the invention, a list of frequently asked questions is preliminarily created in the database, and then when new user input is received, the Word Mover's Distance method proposed in the information source [1] is applied.

[00154] При использовании данного подхода находят для каждого слова из одной фразы ближайшего соседа из другой. Word Mover's Distance (WMD) - это минимальное расстояние для перехода из одной фразы в другую, как показано на Фиг. 3.[00154] With this approach, for each word from one phrase, the nearest neighbor from the other is found. Word Mover's Distance (WMD) is the minimum distance to go from one phrase to another, as shown in FIG. 3

[00155] Минимальное кумулятивное расстояние по данному подходу может определяться следующим образом.[00155] The minimum cumulative distance for this approach can be determined as follows.

[00156] Пусть имеется набор векторов слов и расстояний между словами для двух фраз: например, вопрос звучит после предобработки текста как «здравствовать как купить авто кредит», а ответ должен быть «привет давать кредит машина».[00156] Suppose there is a set of vectors of words and distances between words for two phrases: for example, the question sounds after preprocessing the text as “how to buy a car loan”, and the answer should be “hi give a loan machine”.

Figure 00000012
Figure 00000012

[00157] Далее модуль 140 берет минимальное значение расстояния между словами из каждого столбца, из каждой строки, после чего их суммируют, делят на общее количество слов (нормализуют) и получают «стоимость перехода из одной фразы в другую»:[00157] Next, module 140 takes the minimum distance between words from each column, from each line, after which they are summed up, divided by the total number of words (normalized), and get "the cost of transition from one phrase to another":

[00158] (0.64+0.90+0.00+0.39+0.64+0.82+0.88+0.39+0.00) / 9=0.52[00158] (0.64 + 0.90 + 0.00 + 0.39 + 0.64 + 0.82 + 0.88 + 0.39 + 0.00) / 9 = 0.52

[00159] В некоторых вариантах реализации могут осуществлять нормализацию на общее количество уникальных токенов или на количество уникальных токенов во фразе, не ограничиваясь.[00159] In some embodiments, normalization can be performed on the total number of unique tokens or on the number of unique tokens in a phrase, without being limited to.

[00160] В некоторых вариантах реализации для темы «Как заблокировать карты» может ошибочно подходить «Я залочил кредитку, как отменить?». В таких случаях хранят в базе данных 150 такие негативные примеры, их связь между собой по семантике, и учитывают это в дальнейшей работе.[00160] In some implementations, for the topic “How to block cards”, it may be an erroneous approach, “Have I locked my credit card, how can I cancel it?”. In such cases, such negative examples are stored in the database 150, their relation to each other by semantics, and take this into account in further work.

[00161] В некоторых вариантах реализации изобретения используют не только расстояние между словами, но и дополнительные атрибуты, включая, но не ограничиваясь: частоту встречаемости каждого слова в базе данных 150, морфологические признаки каждого слова, синтаксическую информацию.[00161] In some embodiments of the invention, not only the distance between words is used, but also additional attributes, including but not limited to: the frequency of occurrence of each word in database 150, the morphological features of each word, syntactic information.

[00162] В некоторых вариантах реализации изобретения используют не только расстояние между словами, но и некоторый собственный вес каждого слова, например, частоту его встречаемости.[00162] In some embodiments of the invention, not only the distance between words is used, but also some proper weight of each word, for example, its frequency of occurrence.

[00163] Если х - доля всех тем, в которых встречается слово W, а у - доля всех примеров в данной теме, в которых встречается слово W, домножают расстояния между словами на 1-ху для осуществления нормализации.[00163] If x - proportion of all those in which the word W, and at - the proportion of all the examples in this topic, in which the word W, the distance between the words is multiplied by 1-x in for normalization.

[00164] Также проблема традиционного подхода WMD может заключаться в том, что он не учитывает порядок слов, так что фразы «банкомат съел карту» и «карта съела банкомат» идентичны после лемматизации. Для решения данной проблемы могут использовать синтаксическую информацию из синтаксического парсера 210 текста, который отображает дерево разбора слов. В конкретном варианте реализации синтаксический парсер 210 отображает ошибку, так как конструкция «карта съела банкомат» не может быть использована. Для исправления данной ситуации вводят матрицу стоимости переходов из одного класса в другой и домножают евклидовы расстояния между фразами на соответствующие значения.[00164] Also, the problem with the traditional WMD approach may be that it does not take into account the word order, so the phrases “ATM ate a card” and “a card ate an ATM” are identical after lemmatization. To solve this problem, you can use the syntactic information from the text syntax parser 210, which displays the word parsing tree. In a specific implementation, the syntax parser 210 displays an error, since the construction of the card “ate an ATM” cannot be used. To correct this situation, a matrix of cost of transitions from one class to another is introduced and the Euclidean distances between the phrases are multiplied by the corresponding values.

[00165] Для обеспечения возможности делать антонимы дальше по расстоянию между словами, а синонимы ближе в word2vec с точки зрения например евклидова расстояния, не сильно повреждая при этом расстояния остальных слов в пространстве, используют подходы описанные в уровне техники (источник информации [2]), например, Retrofitting.[00165] To provide the ability to make antonyms further along the distance between words, and synonyms are closer in word2vec from the point of view of eg Euclidean distance, not much damaging the distances of other words in space, use the approaches described in the level of technology (source of information [2]) For example, Retrofitting.

[00166] Если ни на одном из предыдущих шагов (функционирование модуля 130 и модуля 140) не удалось подобрать ответ пользователю в диалоге графического интерфейса пользователя, то пользователю будет выдано сообщение об этом, либо пользователь будет переключен на оператора. В некоторых случаях может произойти предложение переключить пользователя на оператора для связи по другому каналу передачи данных.[00166] If none of the previous steps (the operation of the module 130 and the module 140) failed to pick up the answer in the dialog of the graphical user interface, the user will receive a message about this, or the user will be switched to the operator. In some cases, there may be a proposal to switch the user to an operator for communication over another data channel.

[00167] В конкретном варианте реализации, не ограничиваясь, может быть выбран режим работы, симулирующий отсутствие самого чат бота и плавно переводящий на оператора при практически любом непонятном запросе пользователя (так сделано из-за незначительного объема контента чат-бота):[00167] In a specific implementation, without limitation, an operation mode can be chosen that simulates the absence of the chat bot itself and smoothly transfers to the operator at virtually any incomprehensible user request (this is done because of the small amount of chat bot content):

[00168] если чат-бот ожидает ответа на заданный им вопрос и получает сообщение, которое не может распознать модуль 130 или модуль 140, то он дает еще одну попытку пользователю (сообщая ему об этом) и в случае повторения переводит на оператора;[00168] If the chat bot is waiting for an answer to a question asked by it and receives a message that module 130 or module 140 cannot recognize, then it gives another attempt to the user (informing him about it) and, if repeated, translates to the operator;

[00169] если чат бот не ожидает ответа, а находится просто в ожидании запроса от пользователя и получает нераспознаваемое сообщение, то сразу переводит пользователя на оператора.[00169] If the chat bot does not wait for a response, but simply waits for a request from the user and receives an unrecognizable message, then immediately transfers the user to the operator.

[00170] В целом же, поведение модуля настраивает специальный параметр вида v=[2,3,6]. На заданном примере чат бот себя будет вести следующим образом:[00170] In general, the module behavior is set by a special parameter of the form v = [2,3,6]. In this example, the chat bot will behave as follows:

[00171] при получении 1-го нераспознанного сообщения факт его существования забывается после v[1]=2 распознанных сообщений;[00171] when receiving the 1st unrecognized message, the fact of its existence is forgotten after v [1] = 2 recognized messages;

[00172] при получении 2-го нераспознанного сообщения факт его существования забывается после v[2]=3 распознанных сообщений;[00172] when receiving the 2nd unrecognized message, the fact of its existence is forgotten after v [2] = 3 recognized messages;

[00173] при получении 3-го нераспознанного сообщения факт его существования забывается после v[3]=6 распознанных сообщений;[00173] when receiving the 3rd unrecognized message, the fact of its existence is forgotten after v [3] = 6 recognized messages;

[00174] получение 4-го нераспознанного сообщения переводит пользователя на оператора (или, более мягко, предлагает ему это сделать в графическом интерфейсе пользователя).[00174] Receiving a 4th unrecognized message takes the user to an operator (or, more gently, invites him to do this in the graphical user interface).

[00175] В общем случае, если перевод на оператора не требуется, выводится одно случайное сообщение из заготовок с единым смыслом: сообщается пользователю, что ничего не найдено.[00175] In general, if a transfer to an operator is not required, one random message is output from blanks with a single meaning: it is reported to the user that nothing has been found.

[00176] Иллюстративные варианты реализации, описанные здесь, могут воплощаться в операционной среде, содержащей выполняемые компьютером команды (например, программное обеспечение), установленной на компьютер, в аппаратных средствах, или в комбинации программного обеспечения и аппаратных средств. Выполняемые компьютером команды могут быть написаны на компьютерном языке программирования или могут воплощаться в аппаратной логике. Если написаны на языке программирования в соответствии с признанным стандартом, такие команды могут выполняться на множестве аппаратных платформ и для интерфейсов множества операционных систем. Хотя не ограничиваясь этим, компьютерные программы системы программного обеспечения для воплощения настоящего способа могут быть написаны на любом количестве подходящих языков программирования, таких как, например, язык гипертекстовой разметки (HTML), динамический HTML, расширяемый язык разметки (XML), расширяемый язык таблиц стилей (XSL), язык семантики стиля и спецификаций документов (DSSSL), каскадные таблицы стилей (CSS), язык интеграции синхронизированных мультимедийных данных (SMIL), язык разметки документов для беспроводной связи (WML), JavaTM, JiniTM, С, С++, Perl, UNIX Shell, Visual Basic или Visual Basic Script, язык разметки событий виртуальной реальности (VRML), ColdFusionTM или другие компиляторы, ассемблеры, интерпретаторы или другие компьютерные языки или платформы.[00176] The illustrative implementations described herein may be implemented in an operating environment containing computer-executable commands (eg, software) installed on a computer, in hardware, or in a combination of software and hardware. Computer-executable commands may be written in a computer programming language or may be embodied in hardware logic. If written in a programming language in accordance with a recognized standard, such commands can be executed on a variety of hardware platforms and for interfaces of a variety of operating systems. Although not limited to this, computer programs of the software system for implementing this method can be written in any number of suitable programming languages, such as, for example, Hypertext Markup Language (HTML), Dynamic HTML, Extensible Markup Language (XML), Extensible Stylesheet Language (XSL), style semantics and document specification language (DSSSL), cascading style sheets (CSS), synchronized multimedia data integration language (SMIL), document markup language for wireless communications (WML), JavaTM, JiniTM, C, C ++, Perl, UNIX Shell, Visual Basic or Visual Basic Script, virtual reality event markup language (VRML), ColdFusionTM or other compilers, assemblers, interpreters or other computer languages or platforms.

[00177] Система 100 может быть реализована посредством архитектуры, как показано на Фиг. 6, и включать следующие компоненты, показанные ниже, в том числе процессор 610. В конкретном варианте реализации настоящего технического решения, процессор 610 может включать в себя один или несколько процессоров и/или один или несколько микроконтроллеров, выполненных с возможностью выполнять инструкции для выполнения операций, связанных с работой вышеупомянутого способа для выстраивания диалога с пользователем в удобном для пользователя канале. В различных вариантах реализации настоящего технического решения, процессор 610 может быть реализован в виде однокристальных, многокристальных и/или электрических компонентов, включая одну или несколько интегральных схем и печатных плат. Процессор 610 может опционально содержать блок кэш-памяти (не показан) для временного локального хранения инструкций, данных или компьютерных адресов. Например, процессор 610 может включать в себя один или несколько процессоров или один или несколько контроллеров, относящихся к конкретным задачам или единый многофункциональный процессор или контроллер.[00177] System 100 may be implemented by an architecture, as shown in FIG. 6, and include the following components shown below, including the processor 610. In a particular implementation of this technical solution, the processor 610 may include one or more processors and / or one or more microcontrollers configured to execute instructions for performing operations associated with the operation of the above method for building a dialogue with the user in a user-friendly channel. In various embodiments of the present technical solution, the processor 610 may be implemented as single-chip, multi-chip, and / or electrical components, including one or more integrated circuits and printed circuit boards. The processor 610 may optionally contain a block of cache memory (not shown) for the temporary local storage of instructions, data, or computer addresses. For example, processor 610 may include one or more processors or one or more controllers related to specific tasks or a single multi-functional processor or controller.

[00178] Процессор 610 оперативно связан с модулем 620 ввода-вывода данных, аудиомодулем 630.[00178] The processor 610 is operatively coupled to the data input / output module 620, audio module 630.

[00179] В представленном варианте реализации настоящего технического решения, модуль 620 ввода-вывода данных может быть реализован в виде сенсорного экрана, который выполняет функциональность как устройства ввода (путем фиксирования пользовательских команд в виде прикосновений), так и устройства пользовательского вывода (т.е. дисплея). Другими словами, сенсорный экран представляет собой дисплей, который определяет наличие и положение пользовательского ввода-прикосновения. В альтернативных вариантах реализации настоящего технического решения, модуль 620 ввода-вывода может быть реализован как отдельный дисплей и отдельное устройство ввода. Тем не менее, в других альтернативных вариантах реализации настоящего технического решения, модуль 620 ввода-вывода может включать в себя физическую клавиатуру (содержащую одну или несколько физических кнопок) в дополнение к сенсорному экрану.[00179] In the present embodiment, the implementation of this technical solution, data input / output module 620 can be implemented as a touch screen that performs the functionality of both input devices (by fixing user commands in the form of touches) and user output devices (i.e. display). In other words, the touch screen is a display that determines the presence and position of user input-touch. In alternative embodiments of the present technical solution, the I / O module 620 may be implemented as a separate display and a separate input device. However, in other alternative embodiments of the present technical solution, the I / O module 620 may include a physical keyboard (comprising one or more physical buttons) in addition to the touchscreen.

[00180] Процессор 610 дополнительно связан с модулем 640 памяти, которая содержит базу данных 150. Модуль 640 памяти может охватывать один или несколько носителей и в целом предоставлять место для хранения компьютерного кода для реализации вышеупомянутого способа передачи информации о р2р-переводе (например, программного и/или аппаратного обеспечения). Например, модуль 640 памяти может включать в себя различные материальные машиночитаемые носители, включая постоянное запоминающее устройство (ПЗУ) и/или оперативное запоминающее устройство (ОЗУ). Как известно специалистам в данной области техники, ПЗУ однонаправленно передает данные и инструкции процессору 610, а ОЗУ обычно используется для передачи данных и инструкций в двустороннем порядке.[00180] The processor 610 is further coupled to a memory module 640, which contains a database 150. A memory module 640 may span one or more media and generally provide storage space for computer code to implement the above method of transmitting p2p translation information (eg, software and / or hardware). For example, memory module 640 may include various tangible computer-readable media, including read-only memory (ROM) and / or random access memory (RAM). As is known to those skilled in the art, ROM unidirectionally transmits data and instructions to processor 610, and RAM is typically used to transmit data and instructions bilaterally.

[00181] Модуль 640 памяти также может включать в себя одно или несколько фиксированных устройств хранения данных в форме, например, жесткого диска (HDD), твердотельного накопителя (SSD), карты флеш-памяти (например, Secured Digital или SD-карты, мультимедийной карты eMMD), наряду с другими видами памяти, двусторонне соединенными с процессором 610. Информация может также располагаться на одном или нескольких съемных носителях, загруженных или установленных в системе 100, когда это необходимо. Например, любая из ряда подходящих карт памяти (например, SD-карт) может быть загружена в систему 100 на временной или постоянной основе (с помощью, например, одного или нескольких набором дополнительных портов).[00181] The memory module 640 may also include one or more fixed storage devices in the form of, for example, a hard disk drive (HDD), solid state drive (SSD), flash memory card (e.g., secured digital or sd card, multimedia eMMD cards), along with other types of memory, are bilaterally connected to the processor 610. Information can also be located on one or more removable media loaded or installed in the system 100 when necessary. For example, any of a number of suitable memory cards (for example, SD cards) may be loaded into system 100 on a temporary or permanent basis (using, for example, one or more sets of additional ports).

[00182] Модуль 640 памяти может хранить среди прочего серию машиночитаемых инструкций, при выполнении которых процессор 610 (а также другие компоненты системы 100) настраиваются на выполнение различных операций, описанных здесь.[00182] The memory module 640 may store, among other things, a series of machine-readable instructions, in which the processor 610 (as well as other components of the system 100) are configured to perform various operations described herein.

[00183] В различных конкретных вариантах реализации, система 100 может дополнительно содержать модуль 650 беспроводной связи и сенсорный модуль 660, оба из которых соединены с процессором 610 для упрощения различных функций системы 100.[00183] In various specific embodiments, system 100 may further comprise a wireless communication module 650 and a sensor module 660, both of which are connected to the processor 610 to simplify various functions of the system 100.

[00184] Модуль 650 беспроводной связи может быть создан для работы через одну или несколько беспроводных сетей, например, беспроводную персональную сеть (WPAN) (такую как, BLUETOOTH WPAN, ИК персональная сеть), WI-FI сеть (например, 802.11a/b/g/n WI-FI сеть, сеть стандартов 802.11), WI-МАХ сеть, мобильную сотовую сеть. В качестве мобильной сотовой сети может использоваться, например, сеть глобальной системы мобильной связи (GSM), сеть развитого стандарта GSM с увеличенной скоростью передачи данных (EDGE), сеть универсальной мобильной телекоммуникационной системы (UMTS) или сеть долговременного развития (LTE). Дополнительно, модуль 650 беспроводной связи может включать в себя хостинг протоколы, таким образом, что система 100 может быть выполнена как базовая станция для беспроводных устройств.[00184] The wireless communication module 650 may be created to work through one or more wireless networks, such as a wireless personal area network (WPAN) (such as BLUETOOTH WPAN, IR personal area network), a WI-FI network (eg, 802.11a / b / g / n WI-FI network, 802.11 standards network), WI-MAX network, mobile cellular network. As a mobile cellular network, for example, a global system for mobile communications (GSM), a network of developed GSM standard with an increased data transfer rate (EDGE), a universal mobile telecommunications system (UMTS) network or a long-term development network (LTE) can be used. Additionally, the wireless communication module 650 may include hosting protocols such that system 100 can be configured as a base station for wireless devices.

[00185] Сенсорный модуль 660 может включать в себя одно или несколько сенсорных устройств, чтобы предоставлять дополнительный ввод и упрощать различные функции системы 100. Некоторые примеры вариантов реализации сенсорного модуля 660 могут включать в себя одно или несколько из устройств: акселерометр, устройство для измерения температуры окружающей среды, устройство для измерения силы гравитации, гироскоп, устройство для измерения освещенности, устройство для измерения силы ускорения, устройство для измерения окружающего геомагнитного поля, устройство для измерения степени вращения, устройство для измерения атмосферного давления, устройство для измерения относительной влажности, устройство для измерения ориентации устройства и так далее. Следует отметить, что некоторые из этих устройств могут быть реализованы как аппаратное обеспечение, программное обеспечение или комбинация их обоих.[00185] The sensor module 660 may include one or more sensor devices to provide additional input and simplify various functions of the system 100. Some example embodiments of the sensor module 660 may include one or more of the devices: accelerometer, temperature measurement device device, device for measuring gravity, gyroscope, device for measuring light intensity, device for measuring acceleration force, device for measuring the surrounding geomagnetic field, a device for measuring the degree of rotation, a device for measuring atmospheric pressure, a device for measuring relative humidity, a device for measuring the orientation of the device, and so on. It should be noted that some of these devices can be implemented as hardware, software, or a combination of both.

[00186] Также предлагается модуль 670 источника питания для предоставления питания одному или нескольким компонентам системы 100. В некоторых вариантах осуществления настоящего технического решения, модуль 670 источника питания может быть реализован как литий-ионный аккумулятор.[00186] A power supply module 670 is also proposed to provide power to one or more components of system 100. In some embodiments of the present technical solution, power supply module 670 may be implemented as a lithium-ion battery.

Тем не менее, могут быть использованы другие типы аккумуляторных (и обычных) батареек. Естественно, в других вариантах осуществления настоящего технического решения дополнительно или альтернативно к использованию батареи, модуль 670 источника питания может быть реализован как главный источник питания, выполненный с возможностью присоединения системы 100 к главному источнику питания, например, стандартному кабелю питания и вилке.However, other types of rechargeable (and conventional) batteries can be used. Naturally, in other embodiments of the present technical solution, additionally or alternatively to using a battery, power supply module 670 may be implemented as a main power source capable of connecting the system 100 to a main power source, for example, a standard power cable and plug.

[00187] В некоторых вариантах осуществления настоящего технического решения, различные компоненты системы 100 могут быть соединены друг с другом через одну или несколько шин (включая аппаратное и/или программное обеспечение), эти шины не пронумерованы. В качестве неограничивающего примера, одна или несколько шин могут включать в себя ускоренный графический порт (AGP) или другие графические порты, улучшенную архитектуру шины промышленного стандарта (EISA), переднюю шину (FSB), гипертранспортную шину (НТ), шину промышленной стандартной архитектуры (ISA), соединение INFINIBAND, LPC-шину, шину памяти, шину микроканальной архитектуры (МСА), шину соединения периферийных компонентов (PCI), шину соединения периферийных компонентов типа экспресс (PCI-X), шину последовательного интерфейса обмена данными с накопителями информации (SATA), локальную шину ассоциации видеоэлектронных стандартов (VLB), интерфейс универсального асинхронного приемопередатчика (UART), последовательную шину данных для связи интегральных схем (I2C), шину последовательного периферийного интерфейса (SPI), интерфейс памяти Secure Digital (SD), а интерфейс памяти MultiMediaCard (ММС), интерфейс памяти Memory Stick (MS), интерфейс Secure Digital Input Output (SDIO), шину многоканального буферизованного последовательного порта (McBSP), универсальную последовательную шину (USB), шину контроллера универсального запоминающего устройства (GPMC), шину контроллера синхронной динамической памяти с произвольным доступом (SDRC), шину ввода/вывода общего назначения (GPIO), шину раздельного видеосигнала (S-Video), шину последовательного интерфейса дисплея (DSI), шину расширенной шинной архитектуры для микроконтроллеров (АМВА), или любую другую подходящую шину или комбинацию двух или более шин.[00187] In some embodiments of the present technical solution, the various components of the system 100 may be connected to each other through one or more buses (including hardware and / or software), these buses are not numbered. As a non-limiting example, one or more buses may include an accelerated graphics port (AGP) or other graphics ports, an improved industry standard bus architecture (EISA), a front bus (FSB), a hypertransport bus (NT), an industry standard bus ( ISA), INFINIBAND connection, LPC-bus, memory bus, microchannel architecture bus (MCA), peripheral component connection bus (PCI), express-type peripheral component connection bus (PCI-X), storage bus serial interface information (SATA), local video electronic standards association (VLB) bus, universal asynchronous transceiver interface (UART), serial data bus for integrated circuits (I2C), serial peripheral interface bus (SPI), Secure Digital memory interface (SD), and a MultiMediaCard (MMC) memory interface, a Memory Stick (MS) memory interface, a Secure Digital Input Output (SDIO) interface, a multichannel buffered serial port (McBSP) bus, a universal serial bus (USB), a universal storage controller bus a (GPMC), random access synchronous dynamic memory (SDRC) controller bus, general purpose input / output bus (GPIO), separate video bus (S-Video), display serial interface bus (DSI), advanced bus bus architecture for microcontrollers (AMBA), or any other suitable tire or combination of two or more tires.

[00188] Система 100 в некоторых вариантах реализации при помощи модулей «speech-to-text» и «text-to-speech» может быть использована для голосового обслуживания (IVR) и/или голосового управления мобильным приложением.[00188] In some embodiments, system 100 using speech-to-text and text-to-speech modules can be used for voice service (IVR) and / or voice control of a mobile application.

[00189] Специалисты в данной области техники поймут, что в настоящем описании выражение «получение данных» от пользователя подразумевает получение электронным устройством данных от пользователя в виде электронного (или другого) сигнала. Кроме того, специалисты в данной области техники поймут, что отображение данных пользователю через компонент графического интерфейса пользователя (например, экран электронного устройства и тому подобное) может включать в себя передачу сигнала компоненту графического интерфейса пользователя, этот сигнал содержит данные, которые могут быть обработаны, и по меньшей мере часть этих данных может отображаться пользователю через компонент графического интерфейса пользователя.[00189] It will be understood by those skilled in the art that, in the present description, the expression “receiving data” from a user means receiving electronic data from a user as an electronic (or other) signal. In addition, those skilled in the art will understand that displaying data to a user through a component of a graphical user interface (for example, an electronic device screen, etc.) may include transmitting a signal to a component of a graphical user interface, this signal contains data that can be processed, and at least some of this data can be displayed to the user through a graphical user interface component.

[00190] Некоторые из этих этапов, а также передача-получение сигнала хорошо известны в данной области техники и поэтому для упрощения были опущены в конкретных частях данного описания. Сигналы могут быть переданы-получены с помощью оптических средств (например, оптоволоконного соединения), электронных средств (например, проводного или беспроводного соединения) и механических средств (например, на основе давления, температуры или другого подходящего параметра).[00190] Some of these steps, as well as the transmission and reception of a signal, are well known in the art and, therefore, have been omitted in particular parts of this description for simplicity. Signals can be transmitted / received using optical means (for example, fiber optic connection), electronic means (for example, wired or wireless connection) and mechanical means (for example, based on pressure, temperature, or other suitable parameter).

[00191] Модификации и улучшения вышеописанных вариантов осуществления настоящего технического решения будут ясны специалистам в данной области техники. Предшествующее описание представлено только в качестве примера и не несет никаких ограничений. Таким образом, объем настоящего технического решения ограничен только объемом прилагаемой формулы изобретения.[00191] Modifications and improvements to the above-described embodiments of the present technical solution will be clear to those skilled in the art. The foregoing description is provided by way of example only and is not limited in any way. Thus, the scope of this technical solution is limited only by the scope of the attached claims.

ИСПОЛЬЗУЕМЫЕ ИСТОЧНИКИ ИНФОРМАЦИИSOURCES OF INFORMATION

[00192] 1. Kusner М. et al. From word embeddings to document distances //International Conference on Machine Learning. - 2015. - C. 957-966.[00192] 1. Kusner M. et al. From word embeddings to document distances // International Conference on Machine Learning. - 2015. - p. 957-966.

[00193] 2. Faruqui M. et al. Retrofitting word vectors to semantic lexicons //arXiv preprint arXiv:1411.4166. - 2014.[00193] 2. Faruqui M. et al. Retrofitting word vectors to semantic lexicons // arXiv preprint arXiv: 1411.4166. - 2014.

[00194] 3. Пруцков А.В. Генерация и определения форм слов естественных языков на основе их последовательных преобразований // Вестник Рязанского государственного радиотехнического университета. - 2009. - №. 27. - С. 51.[00194] 3. Prutskov A.V. Generation and definitions of the forms of words of natural languages based on their successive transformations // Bulletin of the Ryazan State Radio Engineering University. - 2009. - no. 27. - p. 51.

Claims (22)

1. Способ для выстраивания диалога с пользователем в канале передачи данных, включающий следующие шаги:1. A method for building a dialogue with a user in a data transmission channel, comprising the following steps: получают посредством процессора, функционально соединенного с базой данных, данные пользовательского ввода;get through the processor, functionally connected to the database, user input data; осуществляют предобработку пользовательского ввода посредством его разбиения на предложения и слова, причем:pre-process user input by splitting it into sentences and words, with: исправляют орфографические ошибки пользователя посредством использования модуля исправления опечаток;correct user spelling errors by using the typo correction module; выполняют лемматизацию каждого слова из пользовательского ввода;perform lemmatization of each word from user input; формируют структуру зависимостей слов друг от друга в пользовательском вводе посредством использования синтаксического парсера;form the structure of the dependencies of words from each other in the user input by using the syntax parser; формируют векторную модель слов пользовательского ввода;form a vector model of user input words; классифицируют посредством модуля ведения диалога с пользователем по меньшей мере часть пользовательского ввода для формирования ответа;classifying by means of the dialogue with the user at least part of the user input to generate a response; формируют ответ для пользователя для отображения в графическом интерфейсе пользователя;form the answer for the user to display in the graphical user interface; предоставляют посредством процессора по меньшей мере один ответ на распознанный пользовательский ввод данных.provide by the processor at least one response to the recognized user input. 2. Способ по п. 1, характеризующийся тем, что при осуществлении предобработки пользовательского ввода дополнительно исправляют опечатки в пользовательском вводе посредством подмодуля исправления опечаток.2. The method according to p. 1, characterized in that the implementation of the preprocessing of user input additionally correct typos in user input through a submodule correcting typos. 3. Способ по п. 1, характеризующийся тем, что при осуществлении предобработки пользовательского ввода дополнительно выполняют токенизацию числительных из пользовательского ввода.3. The method according to claim 1, characterized in that in the implementation of the pre-processing of user input additionally perform the tokenization of numerals from the user input. 4. Способ по п. 1, характеризующийся тем, что синтаксический парсер текста для анализа пользовательского текста использует рекуррентные нейронные сети.4. The method according to claim 1, characterized in that the text syntax parser uses recurrent neural networks to analyze user text. 5. Способ по п. 1, характеризующийся тем, что при классификации пользовательского ввода модуль ведения диалога использует алгоритм заполнения слотов.5. The method according to claim 1, characterized in that when classifying user input, the dialogue module uses the slot filling algorithm. 6. Способ по п. 1, характеризующийся тем, что при классификации посредством модуля ведения диалога с пользователем пользовательского ввода определяют линейные сценарии диалога или нелинейные сценарии диалога.6. A method according to claim 1, characterized in that when classifying, by means of a dialog module with a user, user input, linear dialog scripts or non-linear dialog scripts are defined. 7. Способ по п. 1, характеризующийся тем, что при формировании векторной модели слов пользовательского ввода используют модель CBOW и/или Skip-gram.7. The method according to claim 1, characterized in that when forming a vector model of user input words, the model CBOW and / or Skip-gram is used. 8. Способ по п. 1, характеризующийся тем, что при формировании ответа для пользователя для отображения в графическом интерфейсе пользователя определяют класс, к которому относится пользовательский ввод.8. The method according to claim 1, characterized in that when generating a response for the user to display in the graphical user interface, determine the class to which the user input relates. 9. Способ по п. 1, характеризующийся тем, что при формировании ответа для пользователя для отображения в графическом интерфейсе пользователя в случае отсутствия ответа в диалоге переключают его на оператора.9. The method according to claim 1, characterized in that when forming a response for the user to display in the graphical user interface in the absence of a response in the dialogue switch it to the operator. 10. Система для выстраивания диалога с пользователем в канале передачи данных, содержащая:10. The system for building a dialogue with the user in the data channel, containing: модуль предобработки текста, выполненный с возможностью получения пользовательского ввода и его лемматизации, исправления в нем опечаток, токенизации и синтаксическом анализе для формирования структуры зависимостей слов друг от друга в пользовательском вводе;a text preprocessing module made with the possibility of receiving user input and its lemmatization, correcting typos, tokenization and syntactic analysis in it to form the structure of dependencies of words from each other in user input; модуль ведения диалога с пользователем, выполненный с возможностью получения из модуля предобработки текста обработанного текста пользовательского ввода, формирования векторной модели слов пользовательского ввода и классификации по меньшей мере части пользовательского ввода для формирования ответа;a user dialogue module, configured to obtain from the preprocessing module text of the processed text of user input, form a vector model of user input words and classify at least a part of the user input to form a response; модуль ответа на часто задаваемые вопросы, выполненный с возможностью получения пользовательского ввода из модуля ведения диалога с пользователем и формирования ответа для пользователя для отображения в графическом интерфейсе пользователя.a module for answering frequently asked questions, configured to receive user input from the module for maintaining a dialogue with the user and to form an answer for the user to be displayed in the graphical user interface.
RU2018120199A 2018-05-31 2018-05-31 Method and system for arranging dialogue with user in user-friendly channel RU2688758C1 (en)

Priority Applications (3)

Application Number Priority Date Filing Date Title
EA201891077A EA201891077A1 (en) 2018-05-31 2018-05-31 METHOD AND SYSTEM FOR BUILDING A DIALOGUE WITH A USER IN A CHANNEL CONVENIENT FOR A USER
PCT/RU2018/000352 WO2019231346A1 (en) 2018-05-31 2018-05-31 Method and system for creating a dialog with a user in a channel convenient for said user
RU2018120199A RU2688758C1 (en) 2018-05-31 2018-05-31 Method and system for arranging dialogue with user in user-friendly channel

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
RU2018120199A RU2688758C1 (en) 2018-05-31 2018-05-31 Method and system for arranging dialogue with user in user-friendly channel

Publications (1)

Publication Number Publication Date
RU2688758C1 true RU2688758C1 (en) 2019-05-22

Family

ID=66636962

Family Applications (1)

Application Number Title Priority Date Filing Date
RU2018120199A RU2688758C1 (en) 2018-05-31 2018-05-31 Method and system for arranging dialogue with user in user-friendly channel

Country Status (3)

Country Link
EA (1) EA201891077A1 (en)
RU (1) RU2688758C1 (en)
WO (1) WO2019231346A1 (en)

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
RU2762702C2 (en) * 2020-04-28 2021-12-22 Публичное Акционерное Общество "Сбербанк России" (Пао Сбербанк) System and method for automated assessment of intentions and emotions of users of dialogue system

Families Citing this family (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US11816581B2 (en) 2020-09-08 2023-11-14 International Business Machines Corporation Computation reduction using a decision tree classifier for faster neural transition-based parsing
CN114490955A (en) * 2020-10-23 2022-05-13 中移(上海)信息通信科技有限公司 Intelligent dialogue method, device, equipment and computer storage medium
GR1010706B (en) * 2023-05-31 2024-06-10 My Company Projects Ο.Ε., Method for the automatic conversion of written human-machine dialogue in clear signal and the training of a deep learning neural network to serve e-store customers

Citations (7)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20030130849A1 (en) * 2000-07-20 2003-07-10 Durston Peter J Interactive dialogues
EP2650776A1 (en) * 2012-04-10 2013-10-16 Artificial Solutions Iberia, S. L. System and methods for delivering advanced natural language interaction applications
US20150032443A1 (en) * 2013-07-25 2015-01-29 Yael Karov Self-learning statistical natural language processing for automatic production of virtual personal assistants
US20170017635A1 (en) * 2015-07-17 2017-01-19 Fido Labs Inc. Natural language processing system and method
US20170053646A1 (en) * 2015-08-17 2017-02-23 Mitsubishi Electric Research Laboratories, Inc. Method for using a Multi-Scale Recurrent Neural Network with Pretraining for Spoken Language Understanding Tasks
US20170316775A1 (en) * 2016-04-27 2017-11-02 Conduent Business Services, Llc Dialog device with dialog support generated using a mixture of language models combined using a recurrent neural network
US20170358304A1 (en) * 2016-06-11 2017-12-14 Apple Inc. Intelligent task discovery

Patent Citations (7)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20030130849A1 (en) * 2000-07-20 2003-07-10 Durston Peter J Interactive dialogues
EP2650776A1 (en) * 2012-04-10 2013-10-16 Artificial Solutions Iberia, S. L. System and methods for delivering advanced natural language interaction applications
US20150032443A1 (en) * 2013-07-25 2015-01-29 Yael Karov Self-learning statistical natural language processing for automatic production of virtual personal assistants
US20170017635A1 (en) * 2015-07-17 2017-01-19 Fido Labs Inc. Natural language processing system and method
US20170053646A1 (en) * 2015-08-17 2017-02-23 Mitsubishi Electric Research Laboratories, Inc. Method for using a Multi-Scale Recurrent Neural Network with Pretraining for Spoken Language Understanding Tasks
US20170316775A1 (en) * 2016-04-27 2017-11-02 Conduent Business Services, Llc Dialog device with dialog support generated using a mixture of language models combined using a recurrent neural network
US20170358304A1 (en) * 2016-06-11 2017-12-14 Apple Inc. Intelligent task discovery

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
RU2762702C2 (en) * 2020-04-28 2021-12-22 Публичное Акционерное Общество "Сбербанк России" (Пао Сбербанк) System and method for automated assessment of intentions and emotions of users of dialogue system

Also Published As

Publication number Publication date
EA201891077A1 (en) 2019-12-30
WO2019231346A1 (en) 2019-12-05

Similar Documents

Publication Publication Date Title
US10418032B1 (en) System and methods for a virtual assistant to manage and use context in a natural language dialog
US10878191B2 (en) Iterative ontology discovery
WO2021013466A1 (en) Neural relation extraction within and across sentence boundaries
US20220414463A1 (en) Automated troubleshooter
RU2688758C1 (en) Method and system for arranging dialogue with user in user-friendly channel
WO2018028077A1 (en) Deep learning based method and device for chinese semantics analysis
CN113128239A (en) Facilitating end-to-end communication with automated assistants in multiple languages
CN116541493A (en) Method, device, equipment, and storage medium for interactive response based on intent recognition
WO2021207422A1 (en) Generating cascaded text formatting for electronic documents and displays
KR102182248B1 (en) System and method for checking grammar and computer program for the same
CN116561275A (en) Object understanding method, device, equipment and storage medium
CN111046168B (en) Method, apparatus, electronic device and medium for generating patent summary information
US20250117605A1 (en) Content assistance processes for foundation model integrations
Reda Intelligent Assistant Agents: Comparative Analysis of Chatbots through Diverse Methodologies
US20240242718A1 (en) Dialogue apparatus, dialogue method, and program
EA041671B1 (en) METHOD AND SYSTEM FOR BUILDING DIALOGUE WITH USER IN DATA TRANSMISSION CHANNEL
Paul et al. Bengali UPOS-Tag: A Systematic Approach to Universal Dependency-Based Dataset Creation for Enhanced NLP Research
CN119294992B (en) Data management method and device, electronic equipment and storage medium
RU2762702C2 (en) System and method for automated assessment of intentions and emotions of users of dialogue system
JP4098764B2 (en) Document processing apparatus and program
Mengzhan Simulation of Chinese language and text information system processing mode based on hidden Markov model
CN113705206B (en) Emotion prediction model training method, device, equipment and storage medium
Narayan et al. Pre-Neural Approaches
Plhák Dialogue-based Exploration of Graphics for Users with a Visual Disability
Ahmed A CHATBOT SYSTEM FOR KURDISH SPEAKERS BASED ON NATURAL LANGUAGE PROCESSING