WO2019231346A1 - Method and system for creating a dialog with a user in a channel convenient for said user - Google Patents

Method and system for creating a dialog with a user in a channel convenient for said user Download PDF

Info

Publication number
WO2019231346A1
WO2019231346A1 PCT/RU2018/000352 RU2018000352W WO2019231346A1 WO 2019231346 A1 WO2019231346 A1 WO 2019231346A1 RU 2018000352 W RU2018000352 W RU 2018000352W WO 2019231346 A1 WO2019231346 A1 WO 2019231346A1
Authority
WO
WIPO (PCT)
Prior art keywords
user
user input
module
words
dialogue
Prior art date
Application number
PCT/RU2018/000352
Other languages
French (fr)
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 Публичное Акционерное Общество "Сбербанк России"
Publication of WO2019231346A1 publication Critical patent/WO2019231346A1/en

Links

Classifications

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

Definitions

  • This technical solution in General, relates to automated information systems and, more specifically, to technology for intelligent and proactive generation of dialog messages to build a dialogue with the user.
  • a chat bot as an automated information system is a computer-based agent having a graphical interface adapted for humans to access and manage information.
  • the chatbot can interact with users in a natural language to simulate intelligent communication and provide personalized assistance to users. For example, users can ask questions in the chatbot such as, “Where is the nearest hotel?” Or “What is the weather like now?”, And receive corresponding answers. Users can also ask in the chatbot to perform certain functions, including, for example, creating emails, making phone calls, searching for information, receiving data, forwarding user requests, sending a user, providing notes and reminders, and so on.
  • chatbots and personal digital assistant systems are widely used and provide tremendous help to computer users and are especially useful for owners of portable electronic devices, such as smartphones, tablets, game consoles, and so on.
  • chat bot can also be known and used as “conversational dialogue system”, “dialogue system”, “communication agent”, “robot interlocutor”, “bot interlocutor”, “chat agent”, “ digital personal assistant / agent ”,“ automated online assistant ”and so on. All these terms fall within the scope of the present description of the technical solution.
  • chatbot users can ask a wide variety of 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 chatbot can be useful not only for accessing certain information, but also for generating content, scheduling events, writing emails, navigation, and much more.
  • This technical solution aims to eliminate the disadvantages inherent in existing solutions known in the art.
  • the technical problem (or technical problem) in this technical solution is the formation of a dialogue with the user, allowing accurate answers to user questions.
  • An additional technical result is the reduction in 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.
  • the specified technical result is achieved by implementing a method for building a dialogue with a user in a user-friendly channel in which user input data is obtained by means of a processor operably connected to the database; pre-processing user input by dividing it into sentences and words, and correcting spelling errors of the user 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 user input by using a syntactic parser; form a vector model of user input words; classifying by means of the dialogue module with the user at least part of the user input to form a response; provide by the processor at least one response to the recognized user data input.
  • typos in the user input are further corrected by typos correction submodule.
  • tokenization of numerals from user input is additionally performed.
  • a text parser uses recurrent neural networks to parse user text.
  • the user module uses a slot filling algorithm to classify user input.
  • linear classification of dialogue dialogs or non-linear dialogue scenarios is determined when classifying through a dialogue module with a user input user.
  • the CBOW and / or Skipgram model is used when generating a vector model of user input words.
  • the class to which the user input relates is determined.
  • FIG. 1 shows an example implementation of a system for building a dialogue with a user in a user-friendly channel
  • FIG. 2 shows an example implementation of a text preprocessing module
  • FIG. Figure 3 shows an example of the implementation of a phrase transition from one to another according to the approach of the distance of movement of words.
  • FIG. 4 shows an example implementation of a method for building a dialogue with a user in a user-friendly channel.
  • FIG. Figure 5 shows an example implementation of the word2vec approach, which allows one to evaluate the semantic proximity of words.
  • FIG. 6 is an example implementation of a system for building a dialogue with a user in a user-friendly channel implemented through a set of computing components.
  • This technical solution can be implemented on a computer, in the form of an automated information system (AIS) or a machine-readable medium containing instructions for performing the above method.
  • AIS automated information system
  • the technical solution may be implemented as a distributed computer system.
  • a system means a computer system, a computer (electronic computer), CNC (numerical program control), PLC (programmable logic controller), computerized control systems, and any other devices that can perform a given, well-defined sequence of computing operations (actions, instructions).
  • An instruction processing device is understood to mean an electronic unit or an integrated circuit (microprocessor) executing machine instructions (programs).
  • the command processing device reads and executes machine instructions (programs) from one or more data storage devices.
  • Data storage devices may include, but are not limited to, hard disks (HDDs), flash memory, ROM (read only memory), solid state drives (SSDs), and optical drives.
  • a program is a sequence of instructions for execution by a computer control device or an instruction processing device.
  • a virtual interlocutor, an interlocutor program, a chatbot is a computer program that imitates a person’s speech behavior when communicating with one or more interlocutors.
  • Lemmatization is the process of reducing a word form to a lemma - its normal (vocabulary) form. For example, “cats” after lemmatization is transformed into “cat”.
  • a database is a collection of data organized in accordance with a conceptual structure describing the characteristics of these data and the relationships between them, and such a collection data that supports one or more applications (ISO / IEC 2382: 2015, 2121423 “database”).
  • a system 100 for building a dialogue with a user in a user-friendly data transmission channel may comprise the modules described below, between which data is exchanged.
  • the text processing module 120 receives a request for the implementation of a service from a user (or some modification thereof), which generates it through its graphical user interface 110, for example, in a mobile application on a mobile communication device.
  • the service that the user requests may include, for example, obtaining a loan, issuing plastic cards, deposits, leasing, servicing a current account, operations with foreign currency, etc.
  • user input is obtained, which can be a string or a set of them, moreover, character.
  • User data input can include either a single question or a set of them.
  • User input data is stored in database 150.
  • the string can be, without being limited, for example, to the following: “Hello, chat bot! Transfer 100 rubles to Denis Ivanov from my account to his phone. ”
  • the basic text processing 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 designed to split incoming user input into sentences and words, as well as their morphological analysis, syntactic analysis and semantic typing tokens.
  • the tokenization phase involves the allocation of basic text elements (tokens), delimited on both sides by separating 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 parsing. As a result of tokenization, each element is assigned the corresponding type: word, number, date, address, etc.
  • the purpose of the text preprocessing is to prepare it for a qualitative classification of queries. For this, the request goes through many stages of pre-processing 402 and enrichment with various information, among which the main stages are:
  • the text preprocessing module 120 includes, but is not limited to, as shown in FIG. 2, syntax parser 210 of the text, sub-module 220 of typos correction, morphological analyzer 230 of the Russian language with support for removing morphological ambiguities, sub-module 240 of replacing synonyms and collocations, sub-module 250 of replacing numerals, sums and phone numbers.
  • Typo correction submodule 220 is used to correct spelling errors of users, which helps to correctly classify the request.
  • the morphological analyzer 230 of the Russian language with support for the removal of morphological ambiguity is a set of algorithms that compares individual words and word forms in a dictionary (lexicon, to be precise) and clarifies the grammatical characteristics of words.
  • the markup of the source text with grammatical information greatly facilitates the preparation of rules further when the syntactic parser 210 of the text.
  • the work of the morphological analyzer 230 is finalized by the establishment of morphological features of the words of the text. This task can be considered as the task of marking up or tagging text - establishing tags (morphological characters).
  • the set of established features in this case directly depends on the language.
  • the morphological analyzer 230 in some implementations can perform morphological analysis, which can be a dictionary (with a dictionary of bases and endings or a dictionary of word forms) or bulk (only with a dictionary of endings; a dictionary of endings can be embedded in the morphological analysis algorithm 230).
  • morphological analysis can be a dictionary (with a dictionary of bases and endings or a dictionary of word forms) or bulk (only with a dictionary of endings; a dictionary of endings can be embedded in the morphological analysis algorithm 230).
  • the wordless method is used only to determine the variable morphological information (not always unambiguously), and the dictionary method is used in all other cases.
  • Algorithms, a morphological model of the morphological analyzer 230, which generates and defines word forms and examples for various natural languages, are known from the information source [3].
  • the synonym and collocation substitution submodule 240 is configured to define synonyms and collocations in the user input and the existing database 150 based on statistical measures (Ml, t-score, log-likelihood), which are most often used in determining the degree of proximity between the components of phrases in the corpus.
  • Ml allows one to distinguish stable phrases, proper names, as well as low-frequency special terms. Words for which the MI-score takes the largest value are less frequent and have limited compatibility.
  • the t-score measure also takes into account the frequency of joint occurrence of the keyword and collocate, answering the question of how random the strength of associations (connectivity) between collocates is. The words with the highest t-score are frequent and can be combined with many units.
  • a synonym and collocation substitution submodule 240 may use each measure or more in combination.
  • the result of the operation of the text parser 210 is the structure of the dependencies of the words from each other in user input in this text (its individual sentences). For example, from the phrase “transfer one hundred rubles to your mom”, system 100 decides that the mom is an indirect object (destination).
  • the syntactic parser 210 of the text selects the syntactic structure of the sentence, which is a dependency tree, in the nodes of which are the words of the sentence, and the branches are marked with the names of the syntactic relations.
  • the text parser 210 for parsing user input may use the Recurrent Neural Network (RNN) to train the text parser 210.
  • RNN Recurrent Neural Network
  • Recurrent neural networks are a class of machine learning models based on the use of previous network conditions to calculate the current one. Each character in the source text, individual words, punctuation marks and even whole phrases
  • GRU controlled recurrent neurons
  • 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 much like a forget filter.
  • tribanks buildings are used as a training set, namely, tribanks.
  • the corpus is a collection of texts selected and processed according to certain rules that are 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 (i.e. parsing columns) prepared manually or automatically in advance. Classification of tribanks is divided into phrase-structure treebanks and dependency treebanks.
  • Transition-based dependency parsing approach commonly known in the art. This approach consists in trying 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 desired parse tree will be obtained, which allows to obtain sufficiently high accuracy and achieve fairly high speeds when processing text.
  • Arc-standard system is one of the most popular approaches for implementing a transition-based system.
  • b is the data buffer
  • A is a plurality of dependencies.
  • a - contains the desired parsing tree.
  • LEFT_ARC Adds a link from s r to s 2 to A with a specific label of the type of link, and removes s 2 from the stack;
  • SWAP returns the second element from the stack to the buffer.
  • the result of the operation of the text parser 210 is a parse tree, where for each element of the phrase its parent and the type of dependency are indicated.
  • the following metrics can be used to evaluate the results of a syntactic parser:
  • Unlabeled Attachment Score (UAS) - the ratio of the number of elements with a correctly specified parent to the total number of elements
  • Labeled Attachment Score is the ratio of the number of elements with the correct parent and type of relationship to the total number of elements.
  • An example of the operation of the text processing module 120 may be as follows:
  • Entrance Request: “a person wants to take a loan for 100 million rubles tomorrow” [0086] Exit:
  • a vector model of user input words is generated.
  • 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.
  • the coordinates of the vectors are formed so that the cosine or Euclidean distance between the vectors of words that are close in meaning is less than the distance between the vectors of words that are far from the meaning.
  • the individual components of the vector may reflect some specific category, for example, the first component may contain information about time (past - present - future), the second about the physical size (small - large), in the third about the cost (expensive - cheap), and t .d.
  • the system 100 comprises a user dialogue module 130 responsible for maintaining a multi-stage user dialogue, reusing the dialogue context, or using data from available external services.
  • This module 130 is used so that individual scripts of dialogue with the user on new topics can be created without a single additional line of program code / with a small and uncomplicated amount of code, so that this solution:
  • module 130 allows embedding with its own (architecture-compatible solutions) routines that correspond to individual topics and can be of arbitrary complexity.
  • module 130 may use an approach based on the algorithm for filling in slots or forms (from the English Slot Filling), widely known in the art.
  • each linear scenario is presented in the form of a form consisting of a set of fields, the storage time of the form, and the prepared response.
  • the answer can be a chain of arbitrary actions and is performed after filling all the required fields of the form.
  • Each form field is defined as a set of properties:
  • Non-linear scenarios with this approach are defined as a unidirectional acyclic graph of forms indicating the initial form for the script. In this case, all forms are similar to the forms of linear scenarios and are filled in the same way, but there are transition possibilities between them. The ability to switch from filling out one form to another is specified in the form of imposed restrictions on the values of the fields of the first.
  • the module 130 for the classification of requests operates according to the following algorithm:
  • step 402 Gets processed (step 402) and recognized (step 403) in the previous step the text obtained from the module 120 text processing; [00103] 2. Makes up an ordered list of scripts to go through: the last for this user, and then all the rest. Each scenario can be presented in one form and relates to one topic / request / necessary service;
  • the conditions for getting into a particular scenario are specified in the form of rules, embedded arbitrary classifiers, examples that are used for classification by the platform method, which is also used in the module 140 for answering frequently asked questions, or combinations thereof.
  • the last scenarios for the user are checked for the possibility of filling out the form fields with a client request, and if successful, control is transferred to them. Otherwise, hierarchical classification can be used to compile a list of the most probable verification scenarios, after which the specific conditions for getting into the script are checked;
  • 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 returned a response from this script by filling out the script form. If there is no significant difference in the probability of two past different scenarios, the user may be asked a clarifying question, which one is implied ..
  • the frequently asked questions answer module 140 is used. This module 140 is used when neither dialogue nor client-dependent answers are required, but only answers to frequently asked questions. To add new topics, minimal effort is needed: only a list of the questions themselves, answers to them and possible periphrases of the questions (although the search allows for arbitrariness, a large number of examples still improve quality).
  • the necessary data for the operation of this module 140 may be as follows:
  • the classification of the request by user topics from module 130 and module 140 may be combined in some implementations. After determining the topics, control is transferred to the appropriate module.
  • the normalized text of user input is converted into a vector of words (form a vector model of words) using the statistical measure TF-IDF used to assess the importance of a word in the context of a document that is part of a collection of documents 20 or corpus .
  • 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 collection of documents or corpus.
  • the weight of a word is proportional to the amount of use of this word in the document, and inversely proportional to the frequency of 25 use of the word in other documents of the collection.
  • the TF-IDF measure is often used in text analysis and information retrieval tasks, for example, as one of the criteria for document relevance to a search query, when calculating the proximity measure of documents during clustering.
  • TF (term frequency) is the ratio of the number of occurrences of a word to the total number of words in a document.
  • IDF inverse document frequency
  • IDF accounting reduces the weight of commonly used words. For each unique word within a particular collection of documents, there is only one IDF value.
  • the IDF characteristic is defined by the following relation:
  • Words with a high frequency within a particular document and with a low frequency of use in other documents receive high weight in the TF-IDF measure.
  • the TF-IDF measure is often used to represent collection documents as numerical vectors reflecting the importance of using each word from a certain set of words (the number of words in a set 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 any metric (Euclidean distance, cosine measure, Manhattan distance, Chebyshev distance, etc.), that is, by performing cluster analysis.
  • a dialog for generating output data (step 404, as shown in Fig. 4), a dialog can be used
  • Word2vec software tool for analyzing semantics of natural languages, which is a technology that is based on distributive semantics and vector representation of words.
  • Word2vec suggests finding relationships between the semantics of words under the assumption that words in similar contexts have
  • word2vec may produce the following
  • the vectors of all the words that are included in the user input are used, the average (centroid) distance between them is determined, and then the cosine distance between the words of the user input and the centroid is determined.
  • vector models such as GloVe, FastText, etc. are used, but are not limited to.
  • a 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.
  • Cosine similarity is a measure of similarity between two vectors of the pre-Hilbert space, which is used to measure the cosine of the angle between them.
  • Minkowski distance (L1) Minkowski distance (L1)
  • Euclidean distance (L2) Euclidean distance (L2)
  • Jacquard measure can be used as a metric.
  • the result is formatted.
  • the user is given either a pre-prepared answer (step 405, as shown in Fig. 4), or a couple (question, answer) (if the chance of an irrelevance of the answer is sufficient), or switch to the operator .
  • the system 100 may decide to display a list of these questions at the right place for the user to choose, if the graphical user interface allows it or requires a separate command. To support this mode, it is enough to pass an additional parameter to this module 140, which means returning a list of the best options for formatting instead of the text itself.
  • a list of frequently asked questions in the database is preliminarily generated, and then when a new user input arrives, the Word Mover’s Distance method proposed in the information source is applied [1].
  • Word Mover is the minimum distance to go from one phrase to another, as shown in FIG. 3.
  • the minimum cumulative distance in this approach can be determined as follows.
  • module 140 takes the minimum value of the distance between words from each column, from each row, after which they are summed, divided by the total number of words (normalized), and get the "cost of switching from one phrase to another":
  • the implementation can normalize the total number of unique tokens or the number of unique tokens in a phrase, not limited to.
  • the topic “How to block cards” may be mistakenly approached “I have secured a credit card, how to cancel?”.
  • negative examples are stored in the database 150, their relation to each other in semantics, and this is taken into account in future work.
  • 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 the database 150, morphological features of each word, syntactic information.
  • the problem with the traditional WMD approach may be that it does not take into account the word order, so that the phrases “ATM ate a card” and “card ate an ATM” are identical after lemmatization.
  • the parser 210 displays an error because the “card ate ATM” design cannot be used.
  • a cost matrix for transitions from one class to another is introduced and the Euclidean distances between the phrases are multiplied by the corresponding values.
  • an operating mode can be selected that simulates the absence of the chat bot itself and smoothly translates to the operator with almost any obscure user request (this is done due to the insignificant amount of chat bot content):
  • chatbot if the chatbot expects an answer to the 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 of this) and, if repeated, transfers to the operator; [00169] if the chat bot does not expect a response, but is just waiting for a request from the user and receives an unrecognizable message, then immediately transfers the user to the operator.
  • receiving the 4th unrecognized message takes the user to the operator (or, more gently, invites him to do this in the graphical user interface).
  • the illustrative embodiments described herein may be embodied in an operating environment comprising computer-executable instructions (eg, software) installed on a computer, in hardware, or in a combination of software and hardware.
  • Computer-executable instructions 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 many hardware platforms and for interfaces of many operating systems.
  • HTML hypertext markup language
  • XML extensible markup language
  • XSL extensible style sheet language
  • DSSSL style semantics language and document specifications
  • CSS cascading style sheets
  • SMIL synchronized multimedia data integration language
  • WML document markup language for wireless communications
  • JavaTM JavaTM, JiniTM, C, C ++, Perl, UNIX Shell, Visual Basic or Visual Basic Script, markup language for virtual reality events (VRML), ColdFusionTM, or other compilers, assemblers, interpreters, or other computer languages or platforms.
  • the system 100 may be implemented by architecture, as shown in FIG. 6, and include the following components shown below, including processor 610.
  • processor 610 may include one or more processors and / or one or more microcontrollers configured to execute instructions for performing operations related to the operation of the aforementioned method for building a dialogue with the user in a user-friendly channel.
  • 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 comprise a cache block (not shown) for temporarily locally storing instructions, data, or computer addresses.
  • the processor 610 may include one or more processors or one or more controllers related to specific tasks or a single multifunction processor or controller.
  • a processor 610 is operatively coupled to a data input / output module 620, an audio module 630.
  • the data input / output module 620 can be implemented as a touch screen that performs the functionality of both an input device (by fixing user commands in the form of touches) and a user output device (ie display).
  • the touch screen is a display that determines the presence and position of the user input-touch.
  • I / O module 620 can be implemented as a separate display and a separate input device.
  • the input / output module 620 may include a physical keyboard (containing one or more physical buttons) in addition to the touch screen.
  • the processor 610 is further associated with a memory module 640, which contains a database 150.
  • the memory module 640 may span one or more media and generally provide storage space for computer code to implement the aforementioned method for transmitting P2P translation information (eg, software and / or hardware).
  • memory module 640 may include various tangible computer-readable media, including read-only memory (ROM) and / or random access memory (RAM).
  • ROM read-only memory
  • RAM random access memory
  • 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 (eg, Secured Digital or SD card, multimedia eMMD cards), along with other types of memory, bilaterally connected to the processor 610.
  • the information may also be located on one or more removable media loaded or installed in the system 100, when necessary.
  • any of a number of suitable memory cards eg, SD cards
  • the memory module 640 may store, among other things, a series of machine-readable instructions upon execution of which the processor 610 (as well as other components of the system 100) are configured to perform various operations described herein.
  • system 100 may further comprise a wireless module 650 and sensor module 660, both of which are coupled to processor 610 to simplify various functions of system 100.
  • Wireless module 650 may be designed to operate over one or more wireless networks, such as a wireless personal area network (WPAN) (such as a BLUETOOTH WPAN, IK personal area network), a WI-FI network (eg, 802.11 a / b / g / n WIFI network, 802.11 standards network), WI-MAX network, mobile cellular network.
  • WPAN wireless personal area network
  • WI-FI network eg, 802.11 a / b / g / n WIFI network, 802.11 standards network
  • WI-MAX network mobile cellular network.
  • mobile cellular network for example, a Global System for Mobile Communications (GSM) network, a developed GSM standard with an increased data rate (EDGE), a universal mobile telecommunication system (UMTS) network or a long-term development network (LTE) can be used.
  • GSM Global System for Mobile Communications
  • EDGE a developed GSM standard with an increased data rate
  • UMTS universal mobile t
  • the sensor module 660 may include one or more sensor devices to provide additional input and simplify the various functions of the system 100. Some examples of implementation of the sensor module 660 may include one or more of devices: an accelerometer, a temperature measuring device environment, a device for measuring the force of gravity, a gyroscope, a device for measuring illumination, a device for measuring the acceleration force, a 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.
  • a power supply module 670 is also provided for providing power to one or more components of a system 100.
  • the power supply module 670 may be implemented as a lithium-ion battery. However, other types may be used. rechargeable (and ordinary) batteries. Naturally, in other embodiments of the present technical solution, in addition to or alternatively to using a battery, the power supply module 670 may be implemented as a main power source configured to connect the system 100 to a main power source, for example, a standard power cable and plug.
  • various components of the system 100 can be connected to each other via one or more buses (including hardware and / or software), these buses are not numbered.
  • one or more of the buses may include an accelerated graphics port (AGP) or other graphics ports, enhanced industry standard bus architecture (EISA), front bus (FSB), hyper transport bus (HT), industry standard bus architecture (ISA), INFINIBAND connection, LPC bus, memory bus, microchannel architecture bus (MCA), peripheral component bus (PCI), express peripheral component bus (PCI-X), serial data bus from the drive and information (SATA), local video electronic association (VLB) bus, universal asynchronous transceiver (UART) interface, serial data bus for integrated circuit communication (I2C), serial peripheral interface bus (SPI), Secure Digital (SD) memory interface, and MultiMediaCard (MMS), Memory Stick (MS), Secure Digital Input Output (SDIO), multi-channel buffered serial port (McBSP) bus, universal serial bus (USB
  • the expression “receiving data” from a user means receiving by the electronic device data from the user in the form of an electronic (or other) signal.
  • displaying data to a user through a graphical user interface component may include transmitting a signal to a graphical user interface component, this signal contains data that can be processed, and at least a portion of this data may be displayed to the user through a graphical user interface component.
  • 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).
  • optical means for example, fiber optic connection
  • electronic means for example, wired or wireless connection
  • mechanical means for example, based on pressure, temperature or other suitable parameter

Abstract

The present technical solution generally relates to automated information systems, and more specifically to technology for intelligently generating dialog messages for creating a dialog with a user. The present method for creating a dialog with a user in a channel convenient for said user includes receiving user input in a graphic user interface, then pre-processing the received text using a syntactic parser, as well as employing lemmatisation, correcting orthographic errors, then classifying the user input for assignment to a particular dialog scenario, and finally generating an answer for the user. The technical result is faster service for a user.

Description

СПОСОБ И СИСТЕМА ДЛЯ ВЫСТРАИВАНИЯ ДИАЛОГА С ПОЛЬЗОВАТЕЛЕМ В УДОБНОМ ДЛЯ ПОЛЬЗОВАТЕЛЯ КАНАЛЕ  METHOD AND SYSTEM FOR BUILDING A DIALOGUE WITH A USER IN A CHANNEL CONVENIENT FOR A USER
ОБЛАСТЬ ТЕХНИКИ FIELD OF TECHNOLOGY
[001] Настоящее техническое решение, в общем, относится к автоматизированным информационным системам а, более конкретно, к технологии для интеллектуального и проактивного генерирования диалоговых сообщений для выстраивания диалога с пользователем.  [001] This technical solution, in General, relates to automated information systems and, more specifically, to technology for intelligent and proactive generation of dialog messages to build a dialogue with the user.
УРОВЕНЬ ТЕХНИКИ BACKGROUND
[002] Технические решения, описанные в этом разделе, могут осуществляться, но необязательно представляют собой способы и системы, которые ранее рассматривались или осуществлялись. Следовательно, если только не указано иное, не следует исходить из того, что любое из технических решений, описанных в этом разделе, квалифицируется как предшествующий уровень техники только в силу их включения в этот раздел.  [002] The technical solutions described in this section may be implemented, but do 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 qualifies as prior art only by virtue of their inclusion in this section.
[003] Чат-бот как информационная автоматизированная система представляет собой агент на основе компьютера, имеющий адаптированный для человека графический интерфейс для доступа и управления информацией. Традиционно, чат-бот может взаимодействовать с пользователями на естественном языке для симуляции интеллектуального общения и предоставления персональной помощи пользователям. Например, пользователи могут задавать в чат-боте такие вопросы как, например, «Где находится ближайший отель?» или «Какая сейчас погода?», и получать соответствующие ответы. Пользователи также могут просить в чат-боте выполнить определенные функции, включая, например, создание электронных писем, выполнение телефонных звонков, поиск информации, получение данных, переадресацию пользовательских запросов, направление пользователя, обеспечение заметок и напоминаний и так далее. Чат-боты и системы персональных цифровых помощников широко применяются и оказывают огромную помощь для пользователей компьютеров и являются особенно полезными для владельцев портативных электронных устройств, например смартфонов, планшетных компьютеров, игровых консолей и так далее. [004] Термин «чат-бот» также может быть известен и использоваться как «разговорная диалоговая система», «диалоговая система», «коммуникационный агент», «робот-собеседник», «бот-собеседник», «чат агент», «цифровой персональный помощник/агент», «автоматизированный онлайн помощник» и так далее. Все эти термины подпадают под объем настоящего описания технического решения. [003] A chat bot as an automated information system is a computer-based agent having a graphical interface adapted for humans to access and manage information. Traditionally, the chatbot can interact with users in a natural language to simulate intelligent communication and provide personalized assistance to users. For example, users can ask questions in the chatbot such as, “Where is the nearest hotel?” Or “What is the weather like now?”, And receive corresponding answers. Users can also ask in the chatbot to perform certain functions, including, for example, creating emails, making phone calls, searching for information, receiving data, forwarding user requests, sending a user, providing notes and reminders, and so on. Chatbots and personal digital assistant systems are widely used and provide tremendous help to computer users and are especially useful for owners of portable electronic devices, such as smartphones, tablets, game consoles, and so on. [004] The term “chat bot” can also be known and used as “conversational dialogue system”, “dialogue system”, “communication agent”, “robot interlocutor”, “bot interlocutor”, “chat agent”, “ digital personal assistant / agent ”,“ automated online assistant ”and so on. All these terms fall within the scope of the present description of the technical solution.
[005] По существу, пользователи чат-ботов могут задавать большое количество различных вопросов и запрашивать большой диапазон информации, относящейся к мировым и местным новостям, погоде, контенту электронной почты, календарным встречам, запланированным событиям и любому другому доступному для поиска контенту. Чат-бот может быть полезным не только для доступа к определенной информации, но также для генерирования контента, планирования событий, написания электронных писем, навигации, и гораздо большего. С другой стороны, часто для пользователей трудно понять, какой тип информации может запрашиваться через чат-бот в конкретный момент времени. Например, начинающие пользователи могут с трудом понимать или знать принципы работы чат-бота или его конкретные функциональные возможности. Пользователи могут недопонимать, что несколько особенностей приложения чат-бота могут очень часто применяться для решения их повседневных задач и потребностей. Следовательно, по-прежнему существует необходимость развития чат-ботов и, в частности, существует необходимость усовершенствования интерфейса взаимодействия человека с чат-ботом.  [005] Essentially, chatbot users can ask a wide variety of 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 chatbot can be useful not only for accessing certain information, but also for generating content, scheduling events, writing emails, navigation, and much more. On the other hand, it is often difficult for users to understand what type of information can be requested through the chat bot at a particular point in time. For example, novice users may have difficulty understanding or knowing the principles of the chatbot or its specific functionality. Users may not understand that several features of the chat bot application can very often be used to solve their daily tasks and needs. Therefore, there is still a need for the development of chat bots and, in particular, there is a need to improve the interface of human interaction with the chat bot.
[006] В финансово-кредитных учреждениях нагрузка на колл-центры постоянно растет, причем количество звонков и диалогов с операторами исчисляется миллионами в год. Большая часть вопросов является прогнозируемой и не требует уникального ответа, причем может закрываться в режиме реального времени автоматически.  [006] In financial institutions, the load on call centers is constantly growing, with the number of calls and dialogs 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] Данное техническое решение направлено на устранение недостатков, присущих существующим решениям, известным из уровня техники. [008] Технической проблемой (или технической задачей) в данном техническом решении является формирование диалога с пользователем, позволяющего точно ответить на возникшие вопросы пользователя. [007] This technical solution aims to eliminate the disadvantages inherent in existing solutions known in the art. [008] The technical problem (or technical problem) in this technical solution is the formation of a dialogue with the user, allowing accurate answers to user questions.
[009] Техническим результатом, проявляющимся при решении вышеуказанной задачи, является увеличение скорости обслуживания пользователя.  [009] The technical result manifested in solving the above problem is to increase the speed of user service.
[0010] Дополнительным техническим результатом является снижение вычислительной нагрузки на информационную систему колл-центра за счет снижения количества звонков пользователей и количества диалогов в службе поддержки.  [0010] An additional technical result is the reduction in 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] The specified technical result is achieved by implementing a method for building a dialogue with a user in a user-friendly channel in which user input data is obtained by means of a processor operably connected to the database; pre-processing user input by dividing it into sentences and words, and correcting spelling errors of the user 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 user input by using a syntactic parser; form a vector model of user input words; classifying by means of the dialogue module with the user at least part of the user input to form a response; provide by the processor at least one response to the recognized user data input.
[0012] В некоторых вариантах реализации при осуществлении предобработки пользовательского ввода дополнительно исправляют опечатки в пользовательском вводе посредством подмодуля исправления опечаток. [0012] In some embodiments, when preprocessing a user input, typos in the user input are further corrected by typos correction submodule.
[0013] В некоторых вариантах реализации при осуществлении предобработки пользовательского ввода дополнительно выполняют токенизацию числительных из пользовательского ввода.  [0013] In some embodiments, when preprocessing user input, tokenization of numerals from user input is additionally performed.
[0014] В некоторых вариантах реализации синтаксический парсер текста для анализа пользовательского текста использует рекуррентные нейронные сети. [0015] В некоторых вариантах реализации при классификации пользовательского ввода модуль ведения диалога использует алгоритм заполнения слотов. [0014] In some embodiments, a text parser uses recurrent neural networks to parse user text. [0015] In some embodiments, the user module uses a slot filling algorithm to classify user input.
[0016] В некоторых вариантах реализации при классификации посредством модуля ведения диалога с пользователем пользовательского ввода определяют линейные сценарии диалога или нелинейные сценарии диалога.  [0016] In some embodiments, linear classification of dialogue dialogs or non-linear dialogue scenarios is determined when classifying through a dialogue module with a user input user.
[0017] В некоторых вариантах реализации при формировании векторной модели слов пользовательского ввода используют модель CBOW и/или Skip- gram. [0017] In some embodiments, the CBOW and / or Skipgram model is used when generating a vector model of user input words.
[0018] В некоторых вариантах реализации при формировании ответа для пользователя для отображения в графическом интерфейсе пользователя определяют класс, к которому относится пользовательский ввод.  [0018] In some embodiments, when generating a response for the user to display in the graphical user interface, the class to which the user input relates is determined.
[0019] В некоторых вариантах реализации при формировании ответа для пользователя для отображения в графическом интерфейсе пользователя в случае отсутствии ответа в диалоге, переключают его на оператора.  [0019] In some embodiments, when generating a response for the user to display in the graphical user interface if there is no answer in the dialog, switch it to the 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] In FIG. 1 shows an example implementation of a system for building a dialogue with a user in a user-friendly channel;
[0022] На Фиг. 2 показан пример реализации модуля предобработки текста;  [0022] In FIG. 2 shows an example implementation of a text preprocessing module;
[0023] На Фиг. 3 показан пример реализации перехода фразы из одной в другую согласно подходу расстояния движения слов. [0023] In FIG. Figure 3 shows an example of the implementation of a phrase transition from one to another according to the approach of the distance of movement of words.
[0024] На Фиг. 4 показан пример реализации способа для выстраивания диалога с пользователем в удобном для пользователя канале.  [0024] In FIG. 4 shows an example implementation of a method for building a dialogue with a user in a user-friendly channel.
[0025] На Фиг. 5 показан пример реализации подхода word2vec, который позволяет оценивать семантическую близость слов.  [0025] In FIG. Figure 5 shows an example implementation of the word2vec approach, which allows one to evaluate the semantic proximity of words.
[0026] На Фиг. 6 пример реализации системы для выстраивания диалога с пользователем в удобном для пользователя канале, реализованной посредством набора вычислительных компонент.  [0026] In FIG. 6 is an example implementation of a system for building a dialogue with a user in a user-friendly channel implemented through a set of computing components.
ПОДРОБНОЕ ОПИСАНИЕ ИЗОБРЕТЕНИЯ [0027] Данное техническое решение может быть реализовано на компьютере, в виде автоматизированной информационной системы (АИС) или машиночитаемого носителя, содержащего инструкции для выполнения вышеупомянутого способа. DETAILED DESCRIPTION OF THE INVENTION [0027] This technical solution can be implemented on a computer, in the form of an automated information system (AIS) or a machine-readable medium 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), CNC (numerical program control), PLC (programmable logic controller), computerized control systems, and any other devices that can perform a given, well-defined sequence of computing operations (actions, instructions).
[0030] Под устройством обработки команд подразумевается электронный блок либо интегральная схема (микропроцессор), исполняющая машинные инструкции (программы).  [0030] An instruction processing device is understood to mean an electronic unit or an integrated circuit (microprocessor) executing machine instructions (programs).
[0031 ] Устройство обработки команд считывает и выполняет машинные инструкции (программы) с одного или более устройства хранения данных. В роли устройства хранения данных могут выступать, но, не ограничиваясь, жесткие диски (HDD), флеш-память, ПЗУ (постоянное запоминающее устройство), твердотельные накопители (SSD), оптические приводы.  [0031] The command processing device reads and executes machine instructions (programs) from one or more data storage devices. Data storage devices may include, but are not limited to, hard disks (HDDs), flash memory, ROM (read only memory), solid state drives (SSDs), and optical drives.
[0032] Программа - последовательность инструкций, предназначенных для исполнения устройством управления вычислительной машины или устройством обработки команд.  [0032] A program is a sequence of instructions for execution by a computer control device or an instruction processing device.
[0033] Ниже будут описаны термины и понятия, необходимые для реализации настоящего технического решения.  [0033] Below will be described the terms and concepts necessary for the implementation of this technical solution.
[0034] Виртуальный собеседник, программа-собеседник, чат-бот (англ chatbot) — компьютерная программа, имитирующая речевое поведение человека при общении с одним или несколькими собеседниками.  [0034] A virtual interlocutor, an interlocutor program, a chatbot is a computer program that imitates a person’s speech behavior when communicating with one or more interlocutors.
[0035] Лемматизация — процесс приведения словоформы к лемме — её нормальной (словарной) форме. Например, «кошками» после лемматизации преобразовывается в «кошка».  [0035] Lemmatization is the process of reducing 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 describing the characteristics of these data and the relationships between them, and such a collection data that supports one or more applications (ISO / IEC 2382: 2015, 2121423 “database”).
[0037] Как показано на Фиг. 1 , система 100 для выстраивания диалога с пользователем в удобном для пользователя канале передачи данных может содержать описанные ниже модули, между которыми осуществляется обмен данными.  [0037] As shown in FIG. 1, a system 100 for building a dialogue with a user in a user-friendly data transmission channel may comprise the modules described below, between which data is exchanged.
[0038] Предварительно в модуль 120 предобработки текста поступает запрос на осуществление той или иной услуги от пользователя (или некоторая его модификация), который его формирует посредством своего графического интерфейса 110 пользователя, например, в мобильном приложении на мобильном устройстве связи.  [0038] Preliminarily, the text processing module 120 receives a request for the implementation of a service from a user (or some modification thereof), which generates it through its graphical user interface 110, for example, in a mobile application on a mobile communication device.
[0039] Услуга, которую запрашивает пользователь, может включать, например, получение кредита, выпуск пластиковых карт, депозиты, лизинг, обслуживание расчетного счета, операции с иностранной валютой и т.д.  [0039] The service that the user requests may include, for example, obtaining a loan, issuing plastic cards, deposits, leasing, servicing a current account, operations with foreign currency, etc.
[0040] На данном шаге 401, как это показано на Фиг. 4, фактически получают пользовательский ввод данных, который может представлять собой строку или их набор, причем символьную. Пользовательский ввод данных может включать как один вопрос, так и их набор. Данные пользовательского ввода сохраняются в базу данных 150. Строка может быть, не ограничиваясь, например, следующего вида: «Привет, чат-бот! Переведи Денису Иванову с моего счета 100 рублей на его телефон».  [0040] In this step 401, as shown in FIG. 4, in fact, user input is obtained, which can be a string or a set of them, moreover, character. User data input can include either a single question or a set of them. User input data is stored in database 150. The string can be, without being limited, for example, to the following: “Hello, chat bot! Transfer 100 rubles to Denis Ivanov from my account to his phone. ”
[0041] Базовый модуль 120 предобработки текста, отвечает за снижение многообразия возможных текстов сообщений для того, чтобы упростить работу следующим модулям системы 100. Данный модуль предназначен для разбиения входящего пользовательского ввода на предложения и слова, а также их морфологического разбора, синтаксического разбора и семантической типизации токенов.  [0041] The basic text processing 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 designed to split incoming user input into sentences and words, as well as their morphological analysis, syntactic analysis and semantic typing tokens.
[0042] Этап токенизации, предполагает выделение базовых элементов текста (токенов), ограниченных с двух сторон разделительными символами, пробелами или знаками пунктуации. Элементами здесь выступают слова, числа, даты, сокращения, аббревиатуры, составные предлоги и т.д. Токенизация позволяет выделить дискретные единицы текста, являющиеся основой для дальнейшей работы на этапах морфологического и б синтаксического анализа. В результате токенизации каждому элементу присваивается соответствующий тип: слово, число, дата, адрес и т.д. [0042] The tokenization phase involves the allocation of basic text elements (tokens), delimited on both sides by separating 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 parsing. As a result of tokenization, each element is assigned the corresponding type: word, number, date, address, etc.
[0043] Цель предобработки текста - подготовить его для качественной классификации запросов. Для этого запрос проходит много этапов предобработки 402 и обогащения различной информацией, среди которых основными этапами являются:  [0043] The purpose of the text preprocessing is to prepare it for a qualitative classification of queries. For this, the request goes through many stages of pre-processing 402 and enrichment with various information, among which the main stages are:
[0044] исправление опечаток;  [0044] typos;
[0045] лемматизация со снятием морфологической омонимии;  [0045] lemmatization with the removal of morphological homonymy;
[0046] обогащение результатами разбора синтаксического парсера и отдельного выделения набора троек объект+субъект+действие (SAO);  [0046] enriching the results of parsing a syntactic parser and separately highlighting a set of triples object + subject + action (SAO);
[0047] перевод числительных из текста в цифровое представление ("тыща триста" заменяется на 1300), выделение ФИО, времени и т.д.  [0047] the translation of the numerals from the text into a digital representation ("one thousand 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, syntax parser 210 of the text, sub-module 220 of typos correction, morphological analyzer 230 of the Russian language with support for removing morphological ambiguities, sub-module 240 of replacing synonyms and collocations, sub-module 250 of replacing numerals, sums and phone numbers.
[0049] Подмодуль 220 исправления опечаток используется для исправления орфографических ошибок пользователей, что помогает правильно классифицировать запрос.  [0049] Typo correction submodule 220 is used to correct spelling errors of users, which helps to correctly classify the request.
[0050] Принцип работы данного подмодуля 220 следующий:  [0050] The principle of operation of this submodule 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 standard correction for an error in the dictionary - return a typical correction;
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. генерируют все варианты исправления слова с одним изменением: удаление, добавление, замена одиночных символов или замена местами двух соседних в слове; ii. отфильтровывают только знакомые частотному словарю, выделяют их долю (р1); i. generate all the correction options for the word with one change: delete, add, replace single characters or swap two adjacent in the word; ii. only those familiar to the frequency dictionary are filtered out, their share is allocated (p1);
iii. если кандидат 1 - возвращают его;  iii. if candidate 1 - return him;
iv. выделяют вероятность конкретной ошибки (р2) (например, вероятность ошибки е/и выше, чем е/ь);  iv. allocate the probability of a specific error (p2) (for example, the probability of error e / and higher than e / b);
v. выделяют вероятность сочетания подобранных вариантов исправления с предыдущим словом (рЗ);  v. highlight the probability of combining the selected correction options with the previous word (p3);
vi . вычисляют совокупную вероятность каждого кандидата r=r1Ll1 * r2Ll2 * r3Ll3, где А1 , А2 и АЗ - настраиваемые параметры, и возвращают наилучший. vi. calculate the cumulative probability of each candidate r = r1 L l1 * r2 L l2 * r3 L l3, where A1, A2 and AZ are tunable parameters and return the best one.
[0053] Морфологический анализатор 230 русского языка с поддержкой снятия морфологической неоднозначности представляет собой набор алгоритмов, которые занимается сопоставлением отдельных слов и словоформ в словаре (лексиконе, если быть точным) и выяснением грамматических характеристик слов. Разметка исходного текста грамматической информацией очень облегчает составление правил далее при работе синтаксического парсера 210 текста. Работа морфологического анализатора 230 финализируется установлением морфологических признаков слов текста. Эта задача может рассматриваться как задача разметки или тегирования текста - установления тегов (морфологических признаков). Набор устанавливаемых признаков при этом непосредственно зависит от языка. Морфологический анализатор 230 в некоторых вариантах реализации может осуществлять морфологический анализ, который может быть словарным (со словарем основ и окончаний или словарем словоформ) или бестоварным (только со словарем окончаний; словарь окончаний может быть встроен в алгоритм морфологического анализа 230). Бессловарный метод используется только для определения переменной морфологической информации (не всегда однозначно), а словарный — во всех остальных случаях. Алгоритмы, модель формообразования работы морфологического анализатора 230, который осуществляет генерацию и определение словоформ и примеры для различных естественных языков известны из источника информации [3].  [0053] The morphological analyzer 230 of the Russian language with support for the removal of morphological ambiguity is a set of algorithms that compares individual words and word forms in a dictionary (lexicon, to be precise) and clarifies the grammatical characteristics of words. The markup of the source text with grammatical information greatly facilitates the preparation of rules further when the syntactic parser 210 of the text. The work of the morphological analyzer 230 is finalized by the establishment of morphological features of the words of the text. This task can be considered as the task of marking up or tagging text - establishing tags (morphological characters). The set of established features in this case directly depends on the language. The morphological analyzer 230 in some implementations can perform morphological analysis, which can be a dictionary (with a dictionary of bases and endings or a dictionary of word forms) or bulk (only with a dictionary of endings; a dictionary of endings can be embedded in the morphological analysis algorithm 230). The wordless method is used only to determine the variable morphological information (not always unambiguously), and the dictionary method is used in all other cases. Algorithms, a morphological model of the morphological analyzer 230, which generates and defines word forms and examples for various natural languages, are known from the information source [3].
[0054] Подмодуль 240 замены синонимов и коллокаций выполнен с возможностью определения синонимов и коллокаций в пользовательском вводе и имеющейся базе данных 150 на основании статистических мер (Ml, t- score, log-likelihood), которые чаще всего используются при определении степени близости между компонентами словосочетаний в корпусе. Мера Ml позволяет выделить устойчивые словосочетания, имена собственные, а также низкочастотные специальные термины. Слова, у которых мера MI- score принимает наибольшую величину, менее частотны и обладают ограниченной сочетаемостью. Мера t-score также учитывает частоту совместной встречаемости ключевого слова и коллоката, отвечая на вопрос, насколько не случайной является сила ассоциаций (связанности) между коллокатами. Слова с наибольшим значением t-score оказываются частотными и могут сочетаться с множеством единиц. В некоторых вариантах реализации подмодуль 240 замены синонимов и коллокаций может использовать каждую приведенную меру или несколько в совокупности. [0054] The synonym and collocation substitution submodule 240 is configured to define synonyms and collocations in the user input and the existing database 150 based on statistical measures (Ml, t-score, log-likelihood), which are most often used in determining the degree of proximity between the components of phrases in the corpus. The Ml measure allows one to distinguish stable phrases, proper names, as well as low-frequency special terms. Words for which the MI-score takes the largest value are less frequent and have limited compatibility. The t-score measure also takes into account the frequency of joint occurrence of the keyword and collocate, answering the question of how random the strength of associations (connectivity) between collocates is. The words with the highest t-score are frequent and can be combined with many units. In some embodiments, a synonym and collocation substitution submodule 240 may use each measure or more in combination.
[0055] Результатом работы синтаксического парсера 210 текста является структура зависимостей слов друг от друга в пользовательском вводе в этом тексте (отдельных его предложениях). Например, из фразы «переведи маме сто рублей» система 100 принимает решение, что мама— это косвенный объект (адресат).  [0055] The result of the operation of the text parser 210 is the structure of the dependencies of the words from each other in user input in this text (its individual sentences). For example, from the phrase “transfer one hundred rubles to your mom”, system 100 decides that the mom is an indirect object (destination).
[0056] Синтаксический парсер 210 текста выделяет синтаксическую структуру предложения, которая представляет собой дерево зависимостей, в узлах которого стоят слова предложения, а ветви помечены именами синтаксических отношений.  [0056] The syntactic parser 210 of the text selects the syntactic structure of the sentence, which is a dependency tree, in the nodes of which are the words of the sentence, and the branches are marked with the names of the syntactic relations.
[0057] Работа синтаксического парсера 210 текста уже является распознаванием пользовательского ввода 403, как это показано на Фиг. 4.  [0057] The operation of the text parser 210 is already recognition of user input 403, as shown in FIG. 4.
[0058] В некоторых вариантах реализации синтаксический парсер 210 текста для анализа пользовательского ввода может использовать для своей работы рекуррентные нейронные сети (Recurrent Neural Network, RNN) для обучения синтаксического парсера 210 текста. Рекуррентные нейронные сети - это класс моделей машинного обучения, основанный на использовании предыдущих состояний сети для вычисления текущего. Каждый символ в исходном тексте, отдельные слова, знаки препинания и даже целые фразы [0058] In some embodiments, the text parser 210 for parsing user input may use the Recurrent Neural Network (RNN) to train the text parser 210. Recurrent neural networks are a class of machine learning models based on the use of previous network conditions to calculate the current one. Each character in the source text, individual words, punctuation marks and even whole phrases
— все это является атомарным элементом входной последовательности для нейронной сети. В некоторых вариантах реализации могут использоваться управляемые рекуррентные нейроны (gated recurrent units, GRU). Фильтр обновления определяет, сколько информации останется от прошлого состояния и сколько будет взято из предыдущего слоя. Фильтр сброса работает примерно как забывающий фильтр. - All this is an atomic element of the input sequence for a neural network. In some implementations, can be used controlled recurrent neurons (gated recurrent units, GRU). 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 much like a forget filter.
[0059] Для обучения нейронных сетей в качестве обучающей выборки используются корпусы, а именно трибанки. В лингвистике корпус — подобранная и обработанная по определённым правилам совокупность текстов, используемых в качестве базы данных для исследования языка. Они используются для статистического анализа и проверки статистических гипотез, подтверждения лингвистических правил в данном языке. Трибанк— это коллекция разобранных предложений (то есть графов разбора), подготовленных вручную или автоматически заранее. Трибанки по классификации делятся на phrase-structure treebanks и dependency treebanks. В данном техническом решении могут использоваться, не ограничиваясь, следующие трибанки или корпусы для русского языка: SynTagRus (1 ,107 тыс. токенов), PUD (19 тыс. токенов), GSD (99 тыс. токенов), Taiga (20 тыс. токенов), Dependency Treebanks и т.д.  [0059] For training neural networks, buildings are used as a training set, namely, tribanks. In linguistics, the corpus is a collection of texts selected and processed according to certain rules that are 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 (i.e. parsing columns) prepared manually or automatically in advance. Classification of tribanks is divided into phrase-structure treebanks and dependency treebanks. The following tribanks or cases for the Russian language can be used in this technical solution, not limited to: 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, the Transition-based dependency parsing approach, commonly known in the art, is applied. This approach consists in trying 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 desired parse tree will be obtained, which allows to obtain sufficiently high accuracy and achieve fairly high speeds when processing text.
[0061] Arc-standard system - один из наиболее популярных подходов реализации transition-based системы. Система описывается конфигурацией, состоящей из трех частей: с = (s, b, А),  [0061] 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 is the data buffer;
[0064] А - множество зависимостей.  [0064] A is a plurality of dependencies.
[0065] Изначально конфигурация для последовательности символов wlt ... , wn Следующая перед обработкой: [0065] Initially, the configuration for the character sequence w lt ..., w n is Next before processing:
[0066] s = [ROOT] - в стеке один служебный символ;  [0066] s = [ROOT] - on the stack, one service symbol;
[0067] b = [wlt ... » wn] - в буфере вся последовательность символов; [0067] b = [w lt ... " w n ] - the entire sequence of characters in the buffer;
ю [0068] A = 0 - множество зависимостей пусто. Yu [0068] A = 0 - the set of dependencies is empty.
[0069] Конечная конфигурация после обработки следующая:  [0069] The final configuration after processing is as follows:
[0070] s = [ROOT] - в стеке один служебный символ;  [0070] s = [ROOT] - on the stack, one service symbol;
[0071] b— пуст;  [0071] b is empty;
[0072] А - содержит искомое дерево разбора.  [0072] A - contains the desired parsing tree.
[0073] Будем считать s*, где i = (1 , 2, ...), i-м верхним элементом стека, bt , i = (1 , 2, ...) - i-й элемент буфера данных. [0073] We assume that s *, where i = (1, 2, ...), is the i-th top element of the stack, b t , 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 - удаление Ъ из буфера и добавление его в стек;  [0075] SHIFT - removing b from the buffer and adding it to the stack;
[0076] LEFT_ARC - добавляет в А связь от sr к s2, с определенной меткой типа связи, и удаляет s2 из стека; [0076] LEFT_ARC - Adds a link from s r to s 2 to A with a specific label of the type of link, and removes s 2 from the stack;
[0077] RIGHT_ARC - аналогично LEFT_ARC, только с заменой
Figure imgf000013_0001
и s2.
[0077] RIGHT_ARC - similar to LEFT_ARC, only with replacement
Figure imgf000013_0001
and s 2 .
[0078] SWAP: возвращает из стека второй элемент в буфер.  [0078] SWAP: returns the second element from the stack to the buffer.
[0079] Таким образом, получается всего |Т | = 2Л^+1 возможных действий, где Nt - количество типов меток зависимости. Цель синтаксического парсера 210 текста - выбрать наиболее подходящее действие по данной конфигурации. [0079] Thus, it turns out all | T | = 2L ^ + 1 possible actions, where N t 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] To train an artificial neural network, it is necessary to generate the most suitable sequence of actions based on available data. At each step, the configuration will contain the necessary data, and the action is the answer.
[0081] Результатом работы синтаксического парсера 210 текста является дерево разбора, где для каждого элемента фразы указан его родитель и тип зависимости. Для оценки результатов работы синтаксического парсера могут использовать следующие метрики:  [0081] The result of the operation of the text parser 210 is a parse tree, where for each element of the phrase its parent and the type of dependency are indicated. The following metrics can be used to evaluate the results of a syntactic 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 the correct 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 млн рубелй" [0086] Выход:
Figure imgf000014_0001
Figure imgf000015_0001
[0085] Entrance: Request: “a person wants to take a loan for 100 million rubles tomorrow” [0086] Exit:
Figure imgf000014_0001
Figure imgf000015_0001
[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 to determine its usefulness and suitability for solving the task. The difficulties associated with the solution of 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] Для решения этой задачи в данном техническом решении формируют векторную модель слов пользовательского ввода. Главным достоинством векторной модели является возможность поиска и ранжирования документов по подобию, то есть по их близости в векторном пространстве за счет определения расстояния между словами. [0089] Координаты векторов формируются таким образом, чтобы косинусное или евклидово расстояние между векторами близких по смыслу слов было меньше, чем расстояние между векторами далеких по смыслу слов. При этом отдельные компоненты вектора могут отражать некоторую конкретную категорию, например в первой компоненте может содержаться информация о времени (прошлое - настоящее - будущее), во второй о физическом размере (маленький - большой ), в третьем о стоимости (дорогой - дешевый) и т.д. [0088] To solve this problem, in this technical solution, a vector model of user input words is generated. 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] The coordinates of the vectors are formed so that the cosine or Euclidean distance between the vectors of words that are close in meaning is less than the distance between the vectors of words that are far from the meaning. In this case, the individual components of the vector may reflect some specific category, for example, the first component may contain information about time (past - present - future), the second about the physical size (small - large), in the third about the cost (expensive - cheap), and t .d.
[0090]3атем классифицируют посредством модуля 130 ведения диалога с пользователем по меньшей мере часть пользовательского ввода для формирования ответа. [0090] 3 then, at least a portion of the user input for generating a response is classified by the user dialogue unit 130.
[0091] Система 100 содержит модуль 130 ведения диалога с пользователем, отвечающий за ведение многоступенчатого диалога с пользователем, повторное использование контекста диалога или использования данных из доступных внешних сервисов.  [0091] The system 100 comprises a user dialogue module 130 responsible for maintaining a multi-stage user dialogue, reusing the dialogue context, or using data from available external services.
[0092] Данный модуль 130 используется для того, чтобы отдельные сценарии диалога с пользователем по новым тематикам можно было создавать без единой дополнительной строчки программного кода / с небольшим и несложным объёмом кода, чтобы это решение:  [0092] This module 130 is used so that individual scripts of dialogue with the user on new topics can be created without a single additional line of program code / with a small and uncomplicated amount of code, so that this solution:
[0093] позволяло не программистам заводить новые тематики;  [0093] allowed non-programmers to start new topics;
[0094] было легче в поддержке.  [0094] was easier to support.
[0095] При этом архитектура модуля 130 позволяет встраивание со своими (совместимыми с архитектурой решения) подпрограммами, которые отвечают отдельным тематикам и могут быть произвольной сложности.  [0095] Moreover, the architecture of module 130 allows embedding with its own (architecture-compatible solutions) routines that correspond to individual 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 a conversation with the user, interview a client for a given set of questions, module 130 may use an approach based on the algorithm for filling in slots or forms (from the English Slot Filling), widely known in the art.
[0097] При использовании данного подхода могут определять два типа сценариев:  [0097] When using this approach, two types of scenarios can be defined:
• линейные сценарии диалога, в которых собирается информация, необходимая для ответа на запрос пользователя из базы данных 150 и/или внешних источников информации, и • нелинейные сценарии, в которых собираемая информация зависит от предыдущих ответов пользователя. • linear dialogue scenarios in which information is collected that is necessary to respond to a user request from the database 150 and / or external sources of information, and • non-linear scenarios in which the information collected depends on the user's previous responses.
[0098] При таком подходе каждый линейный сценарий представляется в виде формы, состоящей из набора полей, временем хранения формы и подготовленного ответа. Ответ может представлять собой цепочку произвольных действий и выполняется после заполнения всех обязательных полей формы.  [0098] With this approach, each linear scenario is presented in the form of a form consisting of a set of fields, the storage time of the form, and the prepared response. The answer can be a chain of arbitrary actions and is performed after filling all the required fields of the form.
[0099] Каждое поле формы задаётся в виде набора свойств:  [0099] Each form field is defined as a set of properties:
• значение по умолчанию;  • default value;
• уточняющий вопрос для заполнения данного поля;  • a clarifying question to fill out this field;
• обязательность заполнения (если поле не заполнено, но обязательно - будет задан уточняющий вопрос в диалоге пользователю);  • Mandatory filling (if the field is not filled, but required - a clarifying question will be asked in the dialogue to the user);
• функция для заполнения (одна из заранее заготовленных, которая из результата предобработки текста или использования вспомогательных внешних сервисов/баз данных извлекает значение для заполнения поля);  • a function for filling (one of the pre-prepared ones, which extracts the value for filling out the field from the result of text preprocessing or using auxiliary external services / databases);
• возможность использовать значение поля формы из контекста другим формам и возможность заполнить поле значением из контекста;  • the ability to use the value of the form field from the context to other forms and the ability to fill the field with the value from the context;
• время жизни значения поля (после которого оно будет очищено) и другие.  • the lifetime of the field value (after which it will be cleared) and others.
[00100] Нелинейные сценарии при таком подходе задаются в виде однонаправленного ациклического графа форм с указанием начальной для сценария формы. В таком случае все формы являются аналогичными формам линейных сценариев и заполняются аналогично, но между ними существуют возможности переходов. Возможность перехода от заполнения одной формы к другой задаётся в виде накладываемых ограничений на значения полей первой.  [00100] Non-linear scenarios with this approach are defined as a unidirectional acyclic graph of forms indicating the initial form for the script. In this case, all forms are similar to the forms of linear scenarios and are filled in the same way, but there are transition possibilities between them. The ability to switch from filling out one form to another is specified in the form of imposed restrictions on the values of the fields of the first.
[00101] Таким образом, модуль 130 для классификации запросов работает по следующему алгоритму:  [00101] Thus, the module 130 for the classification of requests operates according to the following algorithm:
[00102] 1. Получает обработанный (шаг 402) и распознанный (шаг 403) на предыдущем шаге текст, полученный из модуля 120 предобработки текста; [00103] 2. Составляет упорядоченный список сценариев для прохода по ним: последние для данного пользователя, а затем все оставшиеся. Каждый сценарий может быть представлен одной формой и относится к одной теме/запросу/необходимой услуге; [00102] 1. Gets processed (step 402) and recognized (step 403) in the previous step the text obtained from the module 120 text processing; [00103] 2. Makes up an ordered list of scripts to go through: the last for this user, and then all the rest. Each scenario can be presented in one form and relates to one topic / request / necessary service;
[00104] 3. Условия попадания в тот или иной сценарий задаются в виде правил, встраиваемых произвольных классификаторов, примеров, которые используются для классификации платформенным методом, использующимся и в модуле 140 ответа на часто задаваемые вопросы, или их комбинации. Последние для пользователя сценарии проверяются на предмет возможности заполнения полей формы клиентским запросом, и в случае успешности управление передаётся на них. В противном случае может использоваться иерархическая классификация для составления списка наиболее вероятных сценариев проверки, после чего проверяются специфичные для них условия попадания в сценарий;  [00104] 3. The conditions for getting into a particular scenario are specified in the form of rules, embedded arbitrary classifiers, examples that are used for classification by the platform method, which is also used in the module 140 for answering frequently asked questions, or combinations thereof. The last scenarios for the user are checked for the possibility of filling out the form fields with a client request, and if successful, control is transferred to them. Otherwise, hierarchical classification can be used to compile a list of the most probable verification scenarios, after which the specific conditions for getting into the script 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. In this case, the user is returned a response from this script by filling out the script form. If there is no significant difference in the probability of two past different scenarios, the user may be asked a clarifying question, which one is implied ..
[00106] В тех случаях, когда модуль 130 ведения диалога не включает ни одного сценария, соответствующего запросу пользователя, используется модуль 140 ответа на часто задаваемые вопросы. Данный модуль 140 используется, когда не требуется ни ведения диалога, ни клиентно- зависимых ответов, а только ответы на часто задаваемые вопросы. Для добавления новых тем нужны минимальные усилия: только список самих вопросов, ответов на них и возможных перифразировок вопросов (хотя поиск и допускает произвольность, но большее количество примеров всё же улучшает качество).  [00106] In cases where the dialogue module 130 does not include any script corresponding to the user's request, the frequently asked questions answer module 140 is used. This module 140 is used when neither dialogue nor client-dependent answers are required, but only answers to frequently asked questions. To add new topics, minimal effort is needed: only a list of the questions themselves, answers to them and possible periphrases of the questions (although the search allows for arbitrariness, a large number of examples still improve quality).
[00107] Пример работы:  [00107] An example of operation:
Вход: "Привет"  Login: Hello
Выход: "Привет-привет. :)"  Exit: "Hi-Hi. :)"
Вход: "что у меня с просрочкой" Выход: Для уточнения информации о наличии просроченной задолженности Вам необходимо позвонить по Ns телефона 8-800-333-31-38" Entrance: "what I have overdue" Exit: To clarify information about the presence of arrears, you need to call Ns phone 8-800-333-31-38 "
[00108] Необходимые данные для работы данного модуля 140 могут быть следующими:  [00108] The necessary data for the operation of this module 140 may be as follows:
5 [00109] эталонное название вопроса для навигации,  5 [00109] the reference name of the question for navigation,
[00110] ответ для пользователя,  [00110] a response for the user,
[00111] каналы передачи данных, в которых этот вопрос доступен,  [00111] data channels in which this question is available,
[00112] позитивные и негативные примеры запросов (позитивные - это запросы, которые должны вести к этому ответу, негативные - похожие на ю позитивные запросы, которые не должны вести к этому ответу).  [00112] positive and negative examples of queries (positive ones are queries that should lead to this answer, negative ones are similar to positive queries that shouldn't lead to this answer).
[00113] Классификация запроса по пользовательским тематикам из модуля 130 и модуля 140 в некоторых реализациях может быть объединена. После определения тематики управление передаётся в соответствующий модуль.  [00113] The classification of the request by user topics from module 130 and module 140 may be combined in some implementations. After determining the topics, control is transferred to the appropriate module.
15 [00114] В некоторых вариантах реализации для поиска нужного сценария нормализованный текст пользовательского ввода преобразовывают в вектор слов (формируют векторную модель слов) с помощью статистической меры TF-IDF, используемой для оценки важности слова в контексте документа, являющегося частью коллекции документов 20 или корпуса.  15 [00114] In some embodiments, to search for the desired scenario, the normalized text of user input is converted into a vector of words (form a vector model of words) using the statistical measure TF-IDF used to assess the importance of a word in the context of a document that is part of a collection of documents 20 or corpus .
[00115] TF-IDF - статистическая мера, используемая для оценки важности слова в контексте документа, являющегося частью коллекции документов или корпуса. Вес некоторого слова пропорционален количеству употребления этого слова в документе, и обратно пропорционален частоте 25 употребления слова в других документах коллекции.  [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 collection of documents or corpus. The weight of a word is proportional to the amount of use of this word in the document, and inversely proportional to the frequency of 25 use of the word in other documents of 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 document relevance to a search query, when calculating the proximity measure of documents during clustering.
зо [00117] TF (term frequency - частота слова) - отношение числа вхождения некоторого слова к общему количеству слов документа.Zo [00117] TF (term frequency) is the ratio of the number of occurrences of a word to the total number of words in a document.
Значимость слова в пределах отдельного документа может быть определена следующей характеристикой:
Figure imgf000020_0001
The significance of a word within a single document can be determined by the following characteristic:
Figure imgf000020_0001
[00118] где щ - число вхождений слова tt в документ d; Ek^k -общее число слов в данном пользовательском запросе и/или документе. [00118] where u is the number of occurrences of the word t t in document d; E k ^ k is the total number of words in a given 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 certain word occurs in collection documents.
[00120] Учёт IDF уменьшает вес широкоупотребительных слов. Для каждого уникального слова в пределах конкретной коллекции документов существует только одно значение IDF. IDF-характеристика определяется следующим отношением:
Figure imgf000020_0002
[00120] IDF accounting reduces the weight of commonly used words. For each unique word within a particular collection of documents, there is only one IDF value. The IDF characteristic is defined by the following relation:
Figure imgf000020_0002
[00121] где \D\ - количество документов в корпусе; | dt => t* | - количество документов, в которых встречается tt. [00121] where \ D \ is the number of documents in the enclosure; | d t => t * | - the number of documents in which t t occurs.
[00122] Таким образом, мера TF-IDF является произведением двух сомножителей: tf · idf(t, d, D ) = tf(t, d ) x idf (t, D).  [00122] Thus, the measure TF-IDF is the product of two factors: tf · idf (t, d, D) = tf (t, d) x idf (t, D).
[00123] Большой вес в мере TF-IDF получают слова с высокой частотой в пределах конкретного документа и с низкой частотой употреблений в других документах. [00123] Words with a high frequency within a particular document and with a low frequency of use in other documents receive high weight in the TF-IDF measure.
[00124] Мера TF-IDF часто используется для представления документов коллекции в виде числовых векторов, отражающих важность использования каждого слова из некоторого набора слов (количество слов набора определяет размерность вектора) в каждом документе. Подобная модель называется векторной моделью и даёт возможность сравнивать тексты, сравнивая представляющие их вектора в какой либо метрике (евклидово расстояние, косинусная мера, манхэттенское расстояние, расстояние Чебышева и др.), то есть, производя кластерный анализ.  [00124] The TF-IDF measure is often used to represent collection documents as numerical vectors reflecting the importance of using each word from a certain set of words (the number of words in a set 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 any metric (Euclidean distance, cosine measure, Manhattan distance, Chebyshev distance, etc.), that is, by performing cluster analysis.
[00125] В данном техническом решении для формирования выходных данных (шаг 404, как показано на Фиг. 4) в диалоге может использоваться [00125] In this technical solution, for generating output data (step 404, as shown in Fig. 4), a dialog can be used
Word2vec — программный инструмент анализа семантики естественных языков, представляющий собой технологию, которая основана на дистрибутивной семантике и векторном представлении слов. Word2vec - software tool for analyzing semantics of natural languages, which is a technology that is based on distributive semantics and vector representation of words.
[00126] Word2vec предполагает нахождение связей между семантикой слов согласно предположению, что слова, находящиеся в похожих контекстах, имеют  [00126] Word2vec suggests finding relationships between the semantics of words under the assumption that words in similar contexts have
тенденцию значить похожие вещи, т.е. быть семантически близкими, как это показано на Фиг. 5. Например, word2vec позволяет использовать «математику» на словах: «король»-«мужчина»+ «женщина» = «королева». Более формально задача стоит так: максимизация косинусной близости между векторами слов (скалярное произведение векторов), которые появляются рядом друг с другом, и минимизация косинусной близости между векторами слов, которые не появляются друг рядом с другом. Рядом друг с другом в данном случае значит в близких контекстах. a tendency to mean similar things, i.e. be semantically close, as shown in FIG. 5. For example, word2vec allows you to use “math” in words: “king” - “man” + “woman” = “queen”. More formally, the task is as follows: maximizing the cosine proximity between the word vectors (scalar product of vectors) that appear next to each other, and minimizing the cosine proximity between the 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 conducted an analysis of the algorithms” or “Scientists conducted a study of the algorithms” are quite similar. Word2vec analyzes these contexts and concludes that the words “analysis” and “research” are close in meaning.
[00128] Например, для слова "кофе" word2vec может выдать следующие [00128] For example, for the word “coffee,” word2vec may produce the following
15 ближайших соседей в формате "слово - косинусное расстояние": 15 nearest neighbors in the format "word - cosine distance":
[00129] коффе 0.734483;  [00129] coffee 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] coffee shop 0.636362;
[00134] какао 0.619801 ;  [00134] cocoa 0.619801;
[00135] эспрессо 0.599390;  [00135] espresso 0.599390;
[00136] кофя 0.595211 ;  [00136] coffee 0.595211;
[00137] цикорий 0.594247;  [00137] chicory 0.594247;
[00138] кофэ 0.593993;  [00138] coffee 0.593993;
[00139] копучино 0.587324;  [00139] copuccino 0.587324;
[00140] шоколад 0.585655;  [00140] chocolate 0.585655;
[00141] капучинно 0.580286;  [00141] cappuccino 0.580286;
[00142] кардамоном 0.566781 ; [00143] латте 0.563224. [00142] cardamom 0.566781; [00143] Latte 0.563224.
[00144] Для формирования ответа пользователю (шаг 404) в некоторых вариантах реализации изобретения используют векторы всех слов, которые входят в пользовательский ввод данных, определяют между ними среднее (центроид) расстояние, после чего определяют уже косинусное расстояние между словами пользовательского ввода и центроида.  [00144] In order to formulate a response to the user (step 404), in some embodiments of the invention, the vectors of all the words that are included in the user input are used, the average (centroid) distance between them is determined, and then the cosine distance between the words of the user input and the centroid is determined.
[00145] В некоторых вариантах реализации используют вместо word2vec, такие векторные модели как GloVe, FastText и др., не ограничиваясь.  [00145] In some embodiments, instead of word2vec, vector models such as GloVe, FastText, etc. are used, but are not 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, without limitation, can be used for vector representation of words.
[00147] Затем по мультииндексу векторов вопросов из FAQ (база данных часто задаваемых вопросов пользователями), который находится в базе данных 150, ранжируется несколько максимально похожих по евклидову расстоянию или косинусному сходству. Мультииндекс— обобщение понятия целочисленного индекса до векторного индекса, которое нашло применение в различных областях математики, связанных с функциями многих переменных. Косинусное сходство — это мера сходства между двумя векторами предгильбертового пространства, которая используется для измерения косинуса угла между ними.  [00147] Then, according to the multi-index of the question vectors from the FAQ (a database of frequently asked questions by users), which is located in the database 150, several most similar in terms of Euclidean distance or cosine similarity are ranked. A 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. Cosine similarity is a measure of similarity between two vectors of the pre-Hilbert space, which is used to measure the cosine of the angle between them.
[00148] Если даны два вектора признаков (в данном случае два вектора слов), А и В, то косинусное сходство, cos(0), может быть представлено с использованием их скалярного произведения и нормы:
Figure imgf000022_0001
[00148] If two feature vectors are given (in this case two word vectors), A and B, then the cosine similarity, cos (0), can be represented using their scalar product and norm:
Figure imgf000022_0001
[00149] В некоторых вариантах реализации для определения максимально похожих вопросов, которые заранее известны, и ответы на них, может использоваться в качестве метрики расстояние Минковского (L1 ), Евклидово расстояние (L2), Мера Жаккарда. [00149] In some embodiments, to determine the most similar questions that are known in advance, and the answers to them, Minkowski distance (L1), Euclidean distance (L2), and Jacquard measure can be used as a metric.
[00150] Например, если у нас имеется фраза «Джессика любит апельсины и мандарины», которая может быть представлена как вектор слов A (A: [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 tangerines,” 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 should be borne in mind that the meaning in these phrases is semantically similar, since the “citrus” in the parse tree is the parent of the words “oranges” and “tangerines”.
[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 couple (question, answer) (if the chance of an irrelevance of the answer is sufficient), or switch to the operator .
[00152] Потенциально, система 100 может решить выводить в нужном месте список этих вопросов на выбор пользователя, если это позволяет графический интерфейс пользователя или требует какая-то отдельная команда. Для поддержки такого режима достаточно передать в этот модуль 140 дополнительный параметр, означающий возврат списка лучших вариантов для форматирования вместо самого текста одного.  [00152] Potentially, the system 100 may decide to display a list of these questions at the right place for the user to choose, if the graphical user interface allows it or requires a separate command. To support this mode, it is enough to pass an additional parameter to this module 140, which means returning a 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 in the database is preliminarily generated, and then when a new user input arrives, the Word Mover’s Distance method proposed in the information source is applied [1].
[00154] При использовании данного подхода находят для каждого слова из одной фразы ближайшего соседа из другой. Word Mover’s Distance (WMD) - это минимальное расстояние для перехода из одной фразы в другую, как показано на Фиг. 3.  [00154] Using this approach, for each word from one phrase, the closest neighbor from another 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 in this approach can be determined as follows.
[00156] Пусть имеется набор векторов слов и расстояний между словами для двух фраз: например, вопрос звучит после предобработки текста как «здравствовать как купить авто кредит», а ответ должен быть «привет давать кредит машина».
Figure imgf000023_0001
Figure imgf000024_0001
[00156] Let there be a set of word vectors and word spacing for two phrases: for example, the question sounds after the preprocessing of the text as “hello how to buy a car loan”, and the answer should be “hi give a loan to a car”.
Figure imgf000023_0001
Figure imgf000024_0001
[00157] Далее модуль 140 берет минимальное значение расстояния между словами из каждого столбца, из каждой строки, после чего их суммируют, делят на общее количество слов (нормализуют) и получают «стоимость перехода из одной фразы в другую»: [00157] Next, module 140 takes the minimum value of the distance between words from each column, from each row, after which they are summed, divided by the total number of words (normalized), and get the "cost of switching 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 = [00158] (0.64 + 0.90 + 0.00 + 0.39 + 0.64 + 0.82 + 0.88 + 0.39 + 0.00) / 9 =
0.52 0.52
[00159] В некоторых вариантах реализации могут осуществлять нормализацию на общее количество уникальных токенов или на количество уникальных токенов во фразе, не ограничиваясь.  [00159] In some embodiments, the implementation can normalize the total number of unique tokens or the number of unique tokens in a phrase, not limited to.
[00160] В некоторых вариантах реализации для темы «Как заблокировать карты» может ошибочно подходить «Я залочил кредитку, как отменить?». В таких случаях хранят в базе данных 150 такие негативные примеры, их связь между собой по семантике, и учитывают это в дальнейшей работе.  [00160] In some implementations, the topic “How to block cards” may be mistakenly approached “I have secured a credit card, how to cancel?”. In such cases, such negative examples are stored in the database 150, their relation to each other in semantics, and this is taken into account in future 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 the database 150, 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 own weight of each word, for example, its frequency of occurrence.
[00163] Если х - доля всех тем, в которых встречается слово W, а у - доля всех примеров в данной теме, в которых встречается слово W, домножают расстояния между словами на 1 - ху для осуществления нормализации. [00163] If x is the proportion of all topics in which the word W occurs, and y is the proportion of all examples in this topic in which the word W occurs, multiply the distance between words by 1 - x y 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 that the phrases “ATM ate a card” and “card ate an ATM” are identical after lemmatization. To solve this problem, you can use syntactic information from the syntactic parser 210 of the text, which displays the tree of parsing words. In a particular embodiment, the parser 210 displays an error because the “card ate ATM” design cannot be used. To correct this situation, a cost matrix for 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 make it possible to make antonyms further in the distance between words, and synonyms are closer in word2vec from the point of view of, for example, Euclidean distance, without significantly damaging the distances of other words in space, use the approaches described in the prior art (source of information [2]) e.g. retrofitting.
[00166] Если ни на одном из предыдущих шагов (функционирование модуля 130 и модуля 140) не удалось подобрать ответ пользователю в диалоге графического интерфейса пользователя, то пользователю будет выдано сообщение об этом, либо пользователь будет переключен на оператора. В некоторых случаях может произойти предложение переключить пользователя на оператора для связи по другому каналу передачи данных.  [00166] If at none of the previous steps (the operation of module 130 and module 140) failed to find the answer to the user in the dialog of the graphical user interface, the user will be notified or the user will be switched to the operator. In some cases, a suggestion may be made to switch the user to an operator for communication on another data channel.
[00167] В конкретном варианте реализации, не ограничиваясь, может быть выбран режим работы, симулирующий отсутствие самого чат бота и плавно переводящий на оператора при практически любом непонятном запросе пользователя (так сделано из-за незначительного объёма контента чат-бота): [00167] In a specific embodiment, without limitation, an operating mode can be selected that simulates the absence of the chat bot itself and smoothly translates to the operator with almost any obscure user request (this is done due to the insignificant amount of chat bot content):
[00168] если чат-бот ожидает ответа на заданный им вопрос и получает сообщение, которое не может распознать модуль 130 или модуль 140, то он даёт ещё одну попытку пользователю (сообщая ему об этом) и в случае повторения переводит на оператора; [00169] если чат бот не ожидает ответа, а находится просто в ожидании запроса от пользователя и получает нераспознаваемое сообщение, то сразу переводит пользователя на оператора. [00168] if the chatbot expects an answer to the 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 of this) and, if repeated, transfers to the operator; [00169] if the chat bot does not expect a response, but is just waiting 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 behavior of the module sets up a special parameter of the form v = [2,3,6]. In the given example, the chat bot will behave as follows:
[00171] при получении 1-го нераспознанного сообщения факт его существования забывается после v[1] = 2 распознанных сообщений;  [00171] upon receipt of the 1st unrecognized message, the fact of its existence is forgotten after v [1] = 2 recognized messages;
[00172] при получении 2-го нераспознанного сообщения факт его существования забывается после v[2] = 3 распознанных сообщений;  [00172] upon receipt of the 2nd unrecognized message, the fact of its existence is forgotten after v [2] = 3 recognized messages;
[00173] при получении 3-го нераспознанного сообщения факт его существования забывается после v[3] = 6 распознанных сообщений;  [00173] upon receipt of the 3rd unrecognized message, the fact of its existence is forgotten after v [3] = 6 recognized messages;
[00174] получение 4-го нераспознанного сообщения переводит пользователя на оператора (или, более мягко, предлагает ему это сделать в графическом интерфейсе пользователя).  [00174] receiving the 4th unrecognized message takes the user to the operator (or, more gently, invites him to do this in the graphical user interface).
[00175] В общем случае, если перевод на оператора не требуется, выводится одно случайное сообщение из заготовок с единым смыслом: сообщается пользователю, что ничего не найдено.  [00175] In the general case, if a transfer to the operator is not required, one random message from blanks with a single meaning is displayed: it is informed to the user that nothing was found.
[00176] Иллюстративные варианты реализации, описанные здесь, могут воплощаться в операционной среде, содержащей выполняемые компьютером команды (например, программное обеспечение), установленной на компьютер, в аппаратных средствах, или в комбинации программного обеспечения и аппаратных средств. Выполняемые компьютером команды могут быть написаны на компьютерном языке программирования или могут воплощаться в аппаратной логике. Если написаны на языке программирования в соответствии с признанным стандартом, такие команды могут выполняться на множестве аппаратных платформ и для интерфейсов множества операционных систем. Хотя не ограничиваясь этим, компьютерные программы системы программного обеспечения для воплощения настоящего способа могут быть написаны на любом количестве подходящих языков программирования, таких как, например, язык гипертекстовой разметки (HTML), динамический HTML, расширяемый язык разметки (XML), расширяемый язык таблиц стилей (XSL), язык семантики стиля и спецификаций документов (DSSSL), каскадные таблицы стилей (CSS), язык интеграции синхронизированных мультимедийных данных (SMIL), язык разметки документов для беспроводной связи (WML), JavaTM, JiniTM, С, C++, Perl, UNIX Shell, Visual Basic или Visual Basic Script, язык разметки событий виртуальной реальности (VRML), ColdFusionTM или другие компиляторы, ассемблеры, интерпретаторы или другие компьютерные языки или платформы. [00176] The illustrative embodiments described herein may be embodied in an operating environment comprising computer-executable instructions (eg, software) installed on a computer, in hardware, or in a combination of software and hardware. Computer-executable instructions 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 many hardware platforms and for interfaces of many operating systems. Although not limited to this, software system computer programs for implementing the present 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 style sheet language (XSL), style semantics language and document specifications (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, markup language for virtual reality events (VRML), ColdFusionTM, or other compilers, assemblers, interpreters, or other computer languages or platforms.
[00177] Система 100 может быть реализована посредством архитектуры, как показано на Фиг. 6, и включать следующие компоненты, показанные ниже, в том числе процессор 610. В конкретном варианте реализации настоящего технического решения, процессор 610 может включать в себя один или несколько процессоров и/или один или несколько микроконтроллеров, выполненных с возможностью выполнять инструкции для выполнения операций, связанных с работой вышеупомянутого способа для выстраивания диалога с пользователем в удобном для пользователя канале. В различных вариантах реализации настоящего технического решения, процессор 610 может быть реализован в виде однокристальных, многокристальных и/или электрических компонентов, включая одну или несколько интегральных схем и печатных плат. Процессор 610 может опционально содержать блок кэш-памяти (не показан) для временного локального хранения инструкций, данных или компьютерных адресов. Например, процессор 610 может включать в себя один или несколько процессоров или один или несколько контроллеров, относящихся к конкретным задачам или единый многофункциональный процессор или контроллер.  [00177] The system 100 may be implemented by architecture, as shown in FIG. 6, and include the following components shown below, including processor 610. In a specific embodiment of the present technical solution, processor 610 may include one or more processors and / or one or more microcontrollers configured to execute instructions for performing operations related to the operation of the aforementioned method for building a dialogue with the user in a user-friendly channel. In various embodiments of the present technical solution, 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 comprise a cache block (not shown) for temporarily locally storing instructions, data, or computer addresses. For example, the processor 610 may include one or more processors or one or more controllers related to specific tasks or a single multifunction processor or controller.
[00178] Процессор 610 оперативно связан с модулем 620 ввода-вывода данных, аудиомодулем 630.  [00178] A processor 610 is operatively coupled to a data input / output module 620, an audio module 630.
[00179] В представленном варианте реализации настоящего технического решения, модуль 620 ввода-вывода данных может быть реализован в виде сенсорного экрана, который выполняет функциональность как устройства ввода (путем фиксирования пользовательских команд в виде прикосновений), так и устройства пользовательского вывода (т.е. дисплея). [00179] In the presented embodiment of the present technical solution, the data input / output module 620 can be implemented as a touch screen that performs the functionality of both an input device (by fixing user commands in the form of touches) and a user output device (ie display).
Другими словами, сенсорный экран представляет собой дисплей, который определяет наличие и положение пользовательского ввода-прикосновения. В альтернативных вариантах реализации настоящего технического решения, модуль 620 ввода-вывода может быть реализован как отдельный дисплей и отдельное устройство ввода. Тем не менее, в других альтернативных вариантах реализации настоящего технического решения, модуль 620 ввода- вывода может включать в себя физическую клавиатуру (содержащую одну или несколько физических кнопок) в дополнение к сенсорному экрану. In other words, the touch screen is a display that determines the presence and position of the user input-touch. In alternative embodiments of the present technical solution, I / O module 620 can be implemented as a separate display and a separate input device. However, in other alternative embodiments of the present technical solution, the input / output module 620 may include a physical keyboard (containing one or more physical buttons) in addition to the touch screen.
[00180] Процессор 610 дополнительно связан с модулем 640 памяти, которая содержит базу данных 150. Модуль 640 памяти может охватывать один или несколько носителей и в целом предоставлять место для хранения компьютерного кода для реализации вышеупомянутого способа передачи информации о р2р-переводе (например, программного и/или аппаратного обеспечения). Например, модуль 640 памяти может включать в себя различные материальные машиночитаемые носители, включая постоянное запоминающее устройство (ПЗУ) и/или оперативное запоминающее устройство (ОЗУ). Как известно специалистам в данной области техники, ПЗУ однонаправленно передает данные и инструкции процессору 610, а ОЗУ обычно используется для передачи данных и инструкций в двустороннем порядке.  [00180] The processor 610 is further associated with a memory module 640, which contains a database 150. The memory module 640 may span one or more media and generally provide storage space for computer code to implement the aforementioned method for 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 well known to specialists in this field of technology, ROM unidirectionally transfers data and instructions to processor 610, and RAM is usually used to transfer 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 (eg, Secured Digital or SD card, multimedia eMMD cards), along with other types of memory, bilaterally connected to the processor 610. The information may 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 (eg, SD cards) can be downloaded to system 100 on a temporary or permanent basis (using, for example, one or more additional ports).
[00182] Модуль 640 памяти может хранить среди прочего серию машиночитаемых инструкций, при выполнении которых процессор 610 (а также другие компоненты системы 100) настраиваются на выполнение различных операций, описанных здесь.  [00182] The memory module 640 may store, among other things, a series of machine-readable instructions upon execution of 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, the system 100 may further comprise a wireless module 650 and sensor module 660, both of which are coupled to processor 610 to simplify various functions of system 100.
[00184] Модуль 650 беспроводной связи может быть создан для работы через одну или несколько беспроводных сетей, например, беспроводную персональную сеть (WPAN) (такую как, BLUETOOTH WPAN, И К персональная сеть), WI-FI сеть (например, 802.11 a/b/g/n WI-FI сеть, сеть стандартов 802.11 ), WI-MAX сеть, мобильную сотовую сеть. В качестве мобильной сотовой сети может использоваться, например, сеть глобальной системы мобильной связи (GSM), сеть развитого стандарта GSM с увеличенной скоростью передачи данных (EDGE), сеть универсальной мобильной телекоммуникационной системы (UMTS) или сеть долговременного развития (LTE). Дополнительно, модуль 650 беспроводной связи может включать в себя хостинг протоколы, таким образом, что система 100 может быть выполнена как базовая станция для беспроводных устройств.  [00184] Wireless module 650 may be designed to operate over one or more wireless networks, such as a wireless personal area network (WPAN) (such as a BLUETOOTH WPAN, IK personal area network), a WI-FI network (eg, 802.11 a / b / g / n WIFI 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) network, a developed GSM standard with an increased data rate (EDGE), a universal mobile telecommunication system (UMTS) network or a long-term development network (LTE) can be used. Additionally, wireless communication module 650 may include hosting protocols, so 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 the various functions of the system 100. Some examples of implementation of the sensor module 660 may include one or more of devices: an accelerometer, a temperature measuring device environment, a device for measuring the force of gravity, a gyroscope, a device for measuring illumination, a device for measuring the acceleration force, a 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. [00186] A power supply module 670 is also provided for providing power to one or more components of a system 100.
В некоторых вариантах осуществления настоящего технического решения, модуль 670 источника питания может быть реализован как литий-ионный аккумулятор. Тем не менее, могут быть использованы другие типы аккумуляторных (и обычных) батареек. Естественно, в других вариантах осуществления настоящего технического решения дополнительно или альтернативно к использованию батареи, модуль 670 источника питания может быть реализован как главный источник питания, выполненный с возможностью присоединения системы 100 к главному источнику питания, например, стандартному кабелю питания и вилке. In some embodiments of the present technical solution, the power supply module 670 may be implemented as a lithium-ion battery. However, other types may be used. rechargeable (and ordinary) batteries. Naturally, in other embodiments of the present technical solution, in addition to or alternatively to using a battery, the power supply module 670 may be implemented as a main power source configured to connect the system 100 to a main power source, for example, a standard power cable and plug.
[00187] В некоторых вариантах осуществления настоящего технического решения, различные компоненты системы 100 могут быть соединены друг с другом через одну или несколько шин (включая аппаратное и/или программное обеспечение), эти шины не пронумерованы. В качестве неограничивающего примера, одна или несколько шин могут включать в себя ускоренный графический порт (AGP) или другие графические порты, улучшенную архитектуру шины промышленного стандарта (EISA), переднюю шину (FSB), гипертранспортную шину (НТ), шину промышленной стандартной архитектуры (ISA), соединение INFINIBAND, LPC-шину, шину памяти, шину микроканальной архитектуры (MCA), шину соединения периферийных компонентов (PCI), шину соединения периферийных компонентов типа экспресс (PCI-Х), шину последовательного интерфейса обмена данными с накопителями информации (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), шину расширенной шинной архитектуры для микроконтроллеров (АМВА), или любую другую подходящую шину или комбинацию двух или более шин. [00188] Система 100 в некоторых вариантах реализации при помощи модулей «speech-to-text» и «text-to-speech» может быть использована для голосового обслуживания (IVR) и/или голосового управления мобильным приложением. [00187] In some embodiments of the present technical solution, various components of the system 100 can be connected to each other via one or more buses (including hardware and / or software), these buses are not numbered. By way of non-limiting example, one or more of the buses may include an accelerated graphics port (AGP) or other graphics ports, enhanced industry standard bus architecture (EISA), front bus (FSB), hyper transport bus (HT), industry standard bus architecture ( ISA), INFINIBAND connection, LPC bus, memory bus, microchannel architecture bus (MCA), peripheral component bus (PCI), express peripheral component bus (PCI-X), serial data bus from the drive and information (SATA), local video electronic association (VLB) bus, universal asynchronous transceiver (UART) interface, serial data bus for integrated circuit communication (I2C), serial peripheral interface bus (SPI), Secure Digital (SD) memory interface, and MultiMediaCard (MMS), Memory Stick (MS), Secure Digital Input Output (SDIO), multi-channel buffered serial port (McBSP) bus, universal serial bus (USB), universal memory controller bus (GPMC), random access synchronous dynamic memory controller (SDRC) bus, general-purpose input / output bus (GPIO), separate video signal bus (S-Video), serial display interface bus (DSI), bus extended bus architecture for microcontrollers ( AMBA), or any other suitable tire or a combination of two or more tires. [00188] The system 100 in some embodiments using the 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] Those skilled in the art will understand that in the present description, the expression “receiving data” from a user means receiving by the electronic device data from the user in the form of an electronic (or other) signal. In addition, those skilled in the art will understand that displaying data to a user through a graphical user interface component (for example, an electronic device screen and the like) may include transmitting a signal to a graphical user interface component, this signal contains data that can be processed, and at least a portion of this data may be displayed to the user through a graphical user interface component.
[00190] Некоторые из этих этапов, а также передача-получение сигнала хорошо известны в данной области техники и поэтому для упрощения были опущены в конкретных частях данного описания. Сигналы могут быть переданы-получены с помощью оптических средств (например, оптоволоконного соединения), электронных средств (например, проводного или беспроводного соединения) и механических средств (например, на основе давления, температуры или другого подходящего параметра). [00190] Some of these steps, as well as signal transmission-reception, are well known in the art and therefore, have been omitted in specific 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 apparent to those skilled in the art. The preceding description is provided as an example only and is not subject to any restrictions. Thus, the scope of the present technical solution is limited only by the scope of the attached claims.
ИСПОЛЬЗУЕМЫЕ ИСТОЧНИКИ ИНФОРМАЦИИ USED INFORMATION SOURCES
[00192] 1. Kusner М. et al. From word embeddings to document distances [00192] 1. Kusner M. et al. From word embeddings to document distances
//International Conference on Machine Learning. - 2015. - C. 957-966. // International Conference on Machine Learning. - 2015 .-- C. 957-966.
[00193] 2. Faruqui M. et al. Retrofitting word vectors to semantic lexicons [00193] 2. Faruqui M. et al. Retrofitting word vectors to semantic lexicons
//arXiv preprint arXiv: 1411.4166. - 2014. [00194] 3. Пруцков А. В. Генерация и определения форм слов естественных языков на основе их последовательных преобразований //Вестник Рязанского государственного радиотехнического университета. - 2009. - Ns. 27. - С. 51. // arXiv preprint arXiv: 1411.4166. - 2014. [00194] 3. Prutskov A. V. Generation and definitions of word forms of natural languages based on their successive transformations // Bulletin of the Ryazan State Radio Engineering University. - 2009. - Ns. 27.- S. 51.

Claims

ФОРМУЛА FORMULA
1. Способ для выстраивания диалога с пользователем в удобном для пользователя канале, включающий следующие шаги: 1. A method for building a dialogue with a user in a user-friendly channel, comprising the following steps:
• получают посредством процессора, функционально соединенного с базой данных, данные пользовательского ввода; • receive, by means of a processor functionally connected to the database, user input data;
• осуществляют предобработку пользовательского ввода посредством его разбиения на предложения и слова, причем • pre-process user input by dividing it into sentences and words, moreover
о исправляют орфографические ошибки пользователя посредством использования модуля исправления опечаток;  o correct spelling errors of the user through the use of the module for correcting typos;
о выполняют лемматизацию каждого слова из пользовательского ввода;  o perform lemmatization of each word from user input;
о формируют структуру зависимостей слов друг от друга в пользовательском вводе посредством использования синтаксического парсера;  about form the structure of the dependencies of words from each other in user input by using a syntactic parser;
• формируют векторную модель слов пользовательского ввода; • form a vector model of user input words;
• классифицируют посредством модуля ведения диалога с пользователем по меньшей мере часть пользовательского ввода для формирования ответа; • classify by means of the dialogue module with the user at least part of the user input to form a response;
• формируют ответ для пользователя для отображения в графическом интерфейсе пользователя;  • form a response for the user to display in the graphical user interface;
• предоставляют посредством процессора по меньшей мере один ответ на распознанный пользовательский ввод данных. • provide at least one response to the recognized user data input by the processor.
2. Способ по п. 1 , характеризующийся тем, что при осуществлении предобработки пользовательского ввода дополнительно исправляют опечатки в пользовательском вводе посредством подмодуля исправления опечаток. 2. The method according to p. 1, characterized in that during the preprocessing of user input, typos in the user input are additionally corrected by means of a typo correction submodule.
3. Способ по п. 1 , характеризующийся тем, что при осуществлении предобработки пользовательского ввода дополнительно выполняют токенизацию числительных из пользовательского ввода. 3. The method according to p. 1, characterized in that when performing preprocessing of user input, tokenization of numerals from user input is additionally performed.
4. Способ по п. 1 , характеризующийся тем, что синтаксический парсер текста для анализа пользовательского текста использует рекуррентные нейронные сети. 4. The method according to p. 1, characterized in that the syntactic parser of the text for the analysis of user text uses recurrent neural networks.
5. Способ по п. 1 , характеризующийся тем, что при классификации пользовательского ввода модуль ведения диалога использует алгоритм заполнения слотов.  5. The method according to p. 1, characterized in that when classifying user input, the dialogue module uses a slot filling algorithm.
6. Способ по п. 1 , характеризующийся тем, что при классификации посредством модуля ведения диалога с пользователем пользовательского ввода определяют линейные сценарии диалога или нелинейные сценарии диалога.  6. The method according to claim 1, characterized in that during the classification, linear dialog scripts or non-linear dialog scripts are determined by means of a dialogue module with a user input user.
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 CBOW and / or Skip-gram model is used.
8. Способ по п. 1 , характеризующийся тем, что при формировании ответа для пользователя для отображения в графическом интерфейсе пользователя определяют класс, к которому относится пользовательский ввод.  8. The method according to claim 1, characterized in that when forming the response for the user to display in the graphical user interface, the class to which the user input relates is determined.
9. Способ по п. 1 , характеризующийся тем, что при формировании ответа для пользователя для отображения в графическом интерфейсе пользователя в случае отсутствии ответа в диалоге, переключают его на оператора.  9. The method according to p. 1, characterized in that when forming the response for the user to display in the graphical user interface in the absence of an answer in the dialog, switch it to the operator.
10. Система для выстраивания диалога с пользователем в удобном для пользователя канале, содержащая:  10. A system for building a dialogue with a user in a user-friendly channel, comprising:
• модуль предобработки текста, выполненный с возможностью получения пользовательского ввода и его лемматизации, исправления в нем опечаток, токенизации и синтаксическом анализе;  • a text preprocessing module, configured to receive user input and lemmatize it, correct typos in it, tokenize, and parse;
• модуль ведения диалога с пользователем, выполненный с возможностью получения из модуль предобработки текста обработанного текста пользовательского ввода и классификации, по меньшей мере, части пользовательского ввода для формирования ответа; • модуль ответа на часто задаваемые вопросы, выполненный с возможностью получения пользовательского ввода из модуля ведения диалога с пользователем и формирования ответа для пользователя для отображения в графическом интерфейсе пользователя • a dialogue module with the user, configured to receive from the text preprocessing module the processed text of the user input and classifying at least a portion of the user input to form a response; • a module for answering frequently asked questions, configured to receive user input from a module for conducting a dialogue with a user and generating an answer for the user for displaying in the graphical user interface
PCT/RU2018/000352 2018-05-31 2018-05-31 Method and system for creating a dialog with a user in a channel convenient for said user WO2019231346A1 (en)

Applications Claiming Priority (2)

Application Number Priority Date Filing Date Title
RU2018120199 2018-05-31
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
WO2019231346A1 true WO2019231346A1 (en) 2019-12-05

Family

ID=66636962

Family Applications (1)

Application Number Title Priority Date Filing Date
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

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
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

Families Citing this family (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

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
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

Also Published As

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

Similar Documents

Publication Publication Date Title
Vajjala et al. Practical natural language processing: a comprehensive guide to building real-world NLP systems
US10418032B1 (en) System and methods for a virtual assistant to manage and use context in a natural language dialog
CN110462730B (en) Facilitating end-to-end communication with automated assistants in multiple languages
WO2018028077A1 (en) Deep learning based method and device for chinese semantics analysis
WO2017196784A1 (en) Ontology discovery based on distributional similarity and lexico-semantic relations
US8165887B2 (en) Data-driven voice user interface
WO2021013466A1 (en) Neural relation extraction within and across sentence boundaries
CN100361124C (en) System and method for word analysis
RU2688758C1 (en) Method and system for arranging dialogue with user in user-friendly channel
CN112579733A (en) Rule matching method, rule matching device, storage medium and electronic equipment
US20220147719A1 (en) Dialogue management
KR20150042533A (en) Apparatus for analyzing complex sentence, and recording medium therefor
CN112149403A (en) Method and device for determining confidential text
KR102182248B1 (en) System and method for checking grammar and computer program for the same
EP4080381A1 (en) Method and apparatus for generating patent summary information, and electronic device and medium
Lee Natural Language Processing: A Textbook with Python Implementation
CN107423293A (en) The method and apparatus of data translation
EA041671B1 (en) METHOD AND SYSTEM FOR BUILDING DIALOGUE WITH USER IN DATA TRANSMISSION CHANNEL
CN110321404A (en) Entry choosing method, device, electronic equipment and the storage medium of study of words
Mote Natural Language Processing-A Survey
RU2762702C2 (en) System and method for automated assessment of intentions and emotions of users of dialogue system
KR101071948B1 (en) Automated classification method of sentential types in korea with morphological analysis and the system using the same
Ahmed A CHATBOT SYSTEM FOR KURDISH SPEAKERS BASED ON NATURAL LANGUAGE PROCESSING
Plhák Dialogue-based Exploration of Graphics for Users with a Visual Disability
Narayan et al. Pre-Neural Approaches

Legal Events

Date Code Title Description
121 Ep: the epo has been informed by wipo that ep was designated in this application

Ref document number: 18920330

Country of ref document: EP

Kind code of ref document: A1

NENP Non-entry into the national phase

Ref country code: DE

122 Ep: pct application non-entry in european phase

Ref document number: 18920330

Country of ref document: EP

Kind code of ref document: A1