FR3118509A1 - Automatic understanding of multi-statements in natural language expressions - Google Patents
Automatic understanding of multi-statements in natural language expressions Download PDFInfo
- Publication number
- FR3118509A1 FR3118509A1 FR2105128A FR2105128A FR3118509A1 FR 3118509 A1 FR3118509 A1 FR 3118509A1 FR 2105128 A FR2105128 A FR 2105128A FR 2105128 A FR2105128 A FR 2105128A FR 3118509 A1 FR3118509 A1 FR 3118509A1
- Authority
- FR
- France
- Prior art keywords
- expression
- instruction
- elementary sub
- representative
- separators
- Prior art date
- Legal status (The legal status 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 status listed.)
- Pending
Links
- 230000014509 gene expression Effects 0.000 title claims abstract description 87
- 238000000034 method Methods 0.000 claims abstract description 45
- 230000011218 segmentation Effects 0.000 claims abstract description 18
- 238000013473 artificial intelligence Methods 0.000 claims description 26
- 238000004891 communication Methods 0.000 claims description 17
- 238000012545 processing Methods 0.000 claims description 13
- 238000004590 computer program Methods 0.000 claims description 7
- 230000015654 memory Effects 0.000 claims description 7
- 230000008569 process Effects 0.000 claims description 3
- 238000000926 separation method Methods 0.000 claims description 3
- 239000000725 suspension Substances 0.000 claims 1
- 230000006870 function Effects 0.000 description 10
- 238000012549 training Methods 0.000 description 7
- 238000013515 script Methods 0.000 description 6
- 238000013528 artificial neural network Methods 0.000 description 4
- 238000004422 calculation algorithm Methods 0.000 description 3
- 230000000306 recurrent effect Effects 0.000 description 3
- 230000007704 transition Effects 0.000 description 3
- 241000238558 Eucarida Species 0.000 description 2
- 230000004075 alteration Effects 0.000 description 2
- 230000000295 complement effect Effects 0.000 description 2
- 238000009434 installation Methods 0.000 description 2
- 238000002372 labelling Methods 0.000 description 2
- 238000012986 modification Methods 0.000 description 2
- 230000004048 modification Effects 0.000 description 2
- 230000000717 retained effect Effects 0.000 description 2
- ORILYTVJVMAKLC-UHFFFAOYSA-N Adamantane Natural products C1C(C2)CC3CC1CC2C3 ORILYTVJVMAKLC-UHFFFAOYSA-N 0.000 description 1
- 238000004378 air conditioning Methods 0.000 description 1
- 238000004458 analytical method Methods 0.000 description 1
- 230000002457 bidirectional effect Effects 0.000 description 1
- 238000004364 calculation method Methods 0.000 description 1
- 239000003086 colorant Substances 0.000 description 1
- 238000001514 detection method Methods 0.000 description 1
- 238000010438 heat treatment Methods 0.000 description 1
- 230000010354 integration Effects 0.000 description 1
- 238000010801 machine learning Methods 0.000 description 1
- 238000004519 manufacturing process Methods 0.000 description 1
- 239000011159 matrix material Substances 0.000 description 1
- 230000006403 short-term memory Effects 0.000 description 1
- 230000011664 signaling Effects 0.000 description 1
- 238000009987 spinning Methods 0.000 description 1
- 238000012546 transfer Methods 0.000 description 1
- 238000013519 translation Methods 0.000 description 1
- 239000013598 vector Substances 0.000 description 1
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F40/00—Handling natural language data
- G06F40/30—Semantic analysis
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F40/00—Handling natural language data
- G06F40/20—Natural language analysis
- G06F40/279—Recognition of textual entities
- G06F40/289—Phrasal analysis, e.g. finite state techniques or chunking
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F40/00—Handling natural language data
- G06F40/20—Natural language analysis
- G06F40/279—Recognition of textual entities
- G06F40/289—Phrasal analysis, e.g. finite state techniques or chunking
- G06F40/295—Named entity recognition
Landscapes
- Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- Health & Medical Sciences (AREA)
- Artificial Intelligence (AREA)
- Audiology, Speech & Language Pathology (AREA)
- Computational Linguistics (AREA)
- General Health & Medical Sciences (AREA)
- Physics & Mathematics (AREA)
- General Engineering & Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Machine Translation (AREA)
Abstract
Un procédé est destiné à comprendre automatiquement des expressions représentatives d’une instruction multiple comportant au moins deux instructions simples représentatives chacune d’un ordre. Ce procédé comprend, en cas de réception d’une expression, une première étape (100) dans laquelle on segmente de façon automatisée l’instruction multiple représentée par l’expression reçue en instructions simples, et une seconde étape (110) dans laquelle on détermine de façon automatisée un champ d’application parmi un ensemble de champs d’application pour chacune des instructions simples de la segmentation. Figure pour l’abrégé : Fig. 3A method is intended to automatically understand expressions representative of a multiple instruction comprising at least two simple instructions each representative of an order. This method comprises, in the event of reception of an expression, a first step (100) in which the multiple instruction represented by the expression received is segmented in an automated manner into simple instructions, and a second step (110) in which automatically determines a field of application among a set of fields of application for each of the simple instructions of the segmentation. Figure for abstract: Fig. 3
Description
La présente invention concerne les procédés (ou méthodes) de compréhension automatique d’expressions textuelles en langage naturel (issues d’expressions parlées ou écrites), et plus précisément les procédés qui sont basés sur la segmentation automatique d’instructions multiples contenues dans des expressions (ou phrases) en langage naturel.The present invention relates to methods (or methods) for the automatic understanding of textual expressions in natural language (resulting from spoken or written expressions), and more precisely to methods which are based on the automatic segmentation of multiple instructions contained in expressions (or sentences) in natural language.
Comme le sait l’homme de l’art, la segmentation automatique d’instructions multiples est un sous-domaine récent du domaine général de la compréhension automatique du langage parlé (ou SLU (« Spoken Language Understanding »)).As known to those skilled in the art, automatic multi-statement segmentation is a recent subfield of the general field of Spoken Language Understanding (SLU).
La méthode de segmentation automatique d’instructions multiples offrant actuellement les « meilleurs » résultats est la méthode à base d’intelligence artificielle proposée par Rohan Shet dans l’article « Segmenting multi-intent queries for spoken language understanding » (publié en 2019). Elle utilise à la fois l’incorporation de mots (ou « word embedding ElMo ») qui exploite la structure des mots, des réseaux de neurones récurrents (ou RNNs (« Recurrent Neural Networks »)) basés sur des architectures de type LSTM (« Long Short-Term Memory »)), et une méthode de reconnaissance d’entités nommées (ou NER (« Named-Entity Recognition »)) pour identifier des objets textuels pertinents (mot séparateur, début de segment, fin segment). La méthode NER consiste à extraire de l’information dans un texte en cherchant des objets textuels (de type mot ou groupe de mots) pouvant être classés dans des catégories telles que les noms propres, les entreprises, les lieux, les quantités.The automatic multi-statement segmentation method currently offering the “best” results is the artificial intelligence-based method proposed by Rohan Shet in the article “Segmenting multi-intent queries for spoken language understanding” (published in 2019). It uses both word embedding (or “word embedding ElMo”) which exploits the structure of words, recurrent neural networks (or RNNs (“Recurrent Neural Networks”)) based on LSTM type architectures (“ Long Short-Term Memory”), and a named entity recognition method (or NER (“Named-Entity Recognition”)) to identify relevant textual objects (separator word, start of segment, end of segment). The NER method consists of extracting information from a text by searching for textual objects (of the word or group of words type) that can be classified into categories such as proper names, companies, places, quantities.
Cette méthode de segmentation automatique d’instructions multiples n’apporte pas une entière satisfaction en raison de son taux d’erreur assez important, et donc ne peut pas être utilisée à elle seule pour générer des scripts automatiques destinés à commander ou alimenter des fonctions automatisées. Ce taux d’erreur important résulte du fait que l’intelligence artificielle ne connaît pas le contexte de chaque instruction simple et donc nécessite un très grand nombre de données d’apprentissage de qualité pour configurer ses réseaux de neurones, ce qui est très difficile à produire puisqu’elles doivent concerner de très nombreuses applications souvent très différentes et de très nombreux jeux d’instructions.This method of automatic segmentation of multiple instructions does not provide complete satisfaction because of its fairly high error rate, and therefore cannot be used on its own to generate automatic scripts intended to control or feed automated functions. . This high error rate results from the fact that artificial intelligence does not know the context of each simple instruction and therefore requires a very large amount of quality learning data to configure its neural networks, which is very difficult to produce since they must relate to very many often very different applications and very many sets of instructions.
Il existe aussi deux solutions commercialisées sous les marques déposées OkGoogle® et Siri® et gérant des champs d’application très divers. Mais OkGoogle® gère certaines instructions multiples lorsqu’elles comprennent des instructions simples séparées par le mot « et », et Siri® ne gère apparemment pas du tout les instructions multiples.There are also two solutions marketed under the registered trademarks OkGoogle® and Siri® and managing very diverse fields of application. But OkGoogle® handles some multi-statements when they include single statements separated by the word "and", and Siri® apparently doesn't handle multi-statements at all.
Il peut ainsi être souhaité de prévoir un procédé de compréhension automatique d’expressions textuelles en langage naturel (issues d’expressions parlées ou écrites) qui permette de s’affranchir d’au moins une partie des problèmes et contraintes précités.It may thus be desirable to provide a process for the automatic understanding of textual expressions in natural language (resulting from spoken or written expressions) which makes it possible to overcome at least some of the aforementioned problems and constraints.
Il est donc notamment proposé un procédé, d’une part, destiné à permettre la compréhension automatique d’expressions représentatives d’une instruction multiple comportant au moins deux instructions simples représentatives chacune d’un ordre (ou d’une commande), et, d’autre part, comprenant, en cas de réception d’une expression :
- une première étape dans laquelle on segmente de façon automatisée l’instruction multiple représentée par l’expression reçue en instructions simples, et
- une seconde étape dans laquelle on détermine de façon automatisée un champ d’application parmi un ensemble de champs d’application pour chacune des instructions simples de la segmentation.
- a first step in which the multiple instruction represented by the expression received is segmented in an automated manner into simple instructions, and
- a second step in which a scope of application is determined automatically from among a set of scopes for each of the simple instructions of the segmentation.
Ainsi, on peut désormais déterminer pour chaque instruction multiple, représentée par une expression reçue, des instructions simples, puis on peut déterminer le contexte de traitement ciblé par chacune de ces instructions simples déterminées, ce qui permet d’améliorer notablement la compréhension des instructions multiples pouvant, éventuellement, porter sur des domaines d’application différents.Thus, it is now possible to determine for each multiple instruction, represented by a received expression, simple instructions, then it is possible to determine the processing context targeted by each of these determined simple instructions, which makes it possible to significantly improve the understanding of the multiple instructions. possibly relating to different fields of application.
Le procédé de compréhension selon l’invention peut comporter d’autres caractéristiques qui peuvent être prises séparément ou en combinaison, et notamment :
- dans un premier mode de réalisation, dans sa première étape on peut comparer chaque sous-partie élémentaire de ladite expression reçue à des séparateurs contenus dans un ensemble de séparateurs (prédéfini ou configurable), afin de déterminer chaque séparateur contenu dans l’expression reçue, puis on peut considérer que les sous-parties élémentaires situées avant ou après un séparateur déterminé sont représentatives d’une instruction simple ;
- dans ce premier mode de réalisation, dans la première étape on peut utiliser un ensemble de séparateurs comprenant des signes de ponctuation choisis dans un groupe comportant une virgule, un point-virgule, un point et des points de suspension et des mots de séparation choisis dans un autre groupe comportant les mots et, puis, ensuite, enfin, après et aussi ;
- dans un deuxième mode de réalisation, dans sa première étape on peut utiliser une intelligence artificielle pour classer chaque sous-partie élémentaire de l’expression reçue dans une catégorie qui est choisie parmi une première catégorie de séparateurs et une seconde catégorie de mots autres que des séparateurs, puis pour considérer que les sous-parties élémentaires situées avant ou après une sous-partie élémentaire classée dans la première catégorie de séparateurs sont représentatives d’une instruction simple ;
- dans un troisième mode de réalisation, dans sa première étape on peut utiliser une intelligence artificielle pour déterminer dans l’expression reçue chaque sous-partie élémentaire représentant un début d’instruction simple et chaque sous-partie élémentaire représentant une fin d’instruction simple, puis pour considérer que les sous-parties élémentaires comprises entre une sous-partie élémentaire incluse et représentant un début d’instruction simple et une autre sous-partie élémentaire incluse et représentant une fin d’instruction simple suivant ce début d’instruction simple sont représentatives d’une même instruction simple ;
- dans le deuxième ou troisième mode de réalisation, dans la première étape on peut utiliser l’intelligence artificielle et une méthode de reconnaissance d’entités nommées pour effectuer le classement de chaque sous-partie élémentaire de l’expression reçue ;
- en présence de la toute dernière option, dans la première étape on peut utiliser l’intelligence artificielle et la méthode de reconnaissance d’entités nommées en association avec une couche dite à champ aléatoire conditionnel pour effectuer le classement de chaque sous-partie élémentaire de l’expression reçue ;
- dans sa seconde étape on peut utiliser une intelligence artificielle pour déterminer un contexte de chaque instruction simple, puis pour déterminer le champ d’application de chaque instruction simple en fonction du contexte déterminé pour cette dernière.The comprehension method according to the invention may comprise other characteristics which may be taken separately or in combination, and in particular:
- in a first embodiment, in its first step, each elementary sub-part of said received expression can be compared with separators contained in a set of separators (predefined or configurable), in order to determine each separator contained in the received expression , then we can consider that the elementary sub-parts located before or after a determined separator are representative of a simple instruction;
- in this first embodiment, in the first step, a set of separators can be used comprising punctuation marks chosen from a group comprising a comma, a semicolon, a period and ellipsis and chosen separation words in another group comprising the words and, then, then, finally, after and also;
- in a second embodiment, in its first step, an artificial intelligence can be used to classify each elementary sub-part of the expression received in a category which is chosen from among a first category of separators and a second category of words other than separators, then to consider that the elementary sub-parts located before or after an elementary sub-part classified in the first category of separators are representative of a simple instruction;
- in a third embodiment, in its first step, an artificial intelligence can be used to determine in the expression received each elementary sub-part representing a beginning of a simple instruction and each elementary sub-part representing an end of a simple instruction , then to consider that the elementary sub-parts comprised between an elementary sub-part included and representing a beginning of simple instruction and another elementary sub-part included and representing an end of simple instruction following this beginning of simple instruction are representative of the same simple instruction;
- in the second or third embodiment, in the first step, artificial intelligence and a named entity recognition method can be used to classify each elementary sub-part of the expression received;
- in the presence of the very last option, in the first stage one can use artificial intelligence and the method of recognition of named entities in association with a so-called conditional random field layer to carry out the classification of each elementary sub-part of the expression received;
- in its second step, an artificial intelligence can be used to determine a context for each simple instruction, then to determine the scope of each simple instruction according to the context determined for the latter.
L’invention propose également un programme d’ordinateur téléchargeable depuis un réseau de communication et/ou enregistré sur un support lisible par ordinateur et/ou exécutable par au moins un processeur. Ce programme d’ordinateur se caractérise par le fait qu’il comprend des instructions pour l’exécution des étapes d’un procédé de compréhension du type de celui présenté ci-avant, lorsque le programme est exécuté sur au moins un équipement à processeur(s) ou au moins un ordinateur.
L’invention propose également un dispositif de compréhension destiné à permettre la compréhension automatique d’expressions représentatives d’une instruction multiple comportant au moins deux instructions simples représentatives chacune d’un ordre (ou d’une commande). Ce dispositif de compréhension se caractérise par le fait qu’il comprend au moins une unité de traitement et au moins une mémoire propres, en cas de réception d’une expression, à effectuer les opérations consistant :
- à segmenter de façon automatisée l’instruction multiple représentée par l’expression reçue en instructions simples, et
- à déterminer de façon automatisée un champ d’application parmi un ensemble de champs d’application pour chacune des instructions simples de la segmentation.
The invention also proposes a comprehension device intended to allow the automatic comprehension of expressions representative of a multiple instruction comprising at least two simple instructions each representative of an order (or of a command). This comprehension device is characterized in that it comprises at least one processing unit and at least one memory capable, in the event of reception of an expression, of carrying out the operations consisting of:
- automatically segmenting the multiple statement represented by the received expression into single statements, and
- in automatically determining a scope of application among a set of scopes for each of the simple instructions of the segmentation.
L’invention sera mieux comprise à l’aide de la description qui va suivre, donnée uniquement à titre d’exemple et faite en se référant aux dessins annexés dans lesquels :The invention will be better understood with the aid of the following description, given solely by way of example and made with reference to the appended drawings in which:
L’invention a notamment pour but de proposer un procédé de compréhension, et un dispositif de compréhension 1 associé, destinés à permettre la compréhension automatique d’expressions textuelles en langage naturel (issues d’expressions écrites ou parlées) qui sont chacune représentatives d’une instruction multiple comportant au moins deux instructions simples représentatives chacune d’un ordre (ou d’une commande).The aim of the invention is in particular to propose a method of comprehension, and an associated comprehension device 1, intended to allow the automatic comprehension of textual expressions in natural language (resulting from written or spoken expressions) which are each representative of a multiple instruction comprising at least two simple instructions each representing an order (or a command).
On a schématiquement et fonctionnellement représenté sur la
Le procédé de compréhension, selon l’invention, est mis en œuvre lorsqu’un objet électronique 2 reçoit, via au moins une interface qu’il comprend, une expression textuelle (ou phrase) en langage naturel (issue d’une expression écrite ou parlée) et qui doit être comprise pour contrôler ou piloter ou lancer au moins une fonction ou un programme que cet objet électronique 2 assure ou comprend ou qui est assurée ou compris(e) par au moins un autre objet électronique auquel cet objet électronique 2 est couplé (directement ou indirectement, par exemple via un réseau de communication (éventuellement non filaire)). On notera que l’interface précitée peut être une interface d’entrée (éventuellement de communication) ou une interface homme/machine (comme par exemple un microphone ou un clavier (éventuellement digital et faisant éventuellement partie d’un écran tactile)).The comprehension method, according to the invention, is implemented when an electronic object 2 receives, via at least one interface that it understands, a textual expression (or sentence) in natural language (resulting from a written expression or spoken) and which must be understood to control or drive or launch at least one function or program that this electronic object 2 provides or includes or which is provided or included by at least one other electronic object to which this electronic object 2 is coupled (directly or indirectly, for example via a communication network (possibly wireless)). It will be noted that the aforementioned interface can be an input interface (possibly communication) or a man/machine interface (such as for example a microphone or a keyboard (possibly digital and possibly forming part of a touch screen)).
On considère dans ce qui suit, à titre d’exemple illustratif, que l’objet électronique 2 est un équipement de communication utilisé par un utilisateur. Par exemple, cet équipement de communication 2 peut être un téléphone intelligent mobile (ou « smartphone »), une tablette électronique, une console de jeu, une montre connectée, ou un ordinateur (fixe ou portable). Mais l’objet électronique 2 peut être de n’importe quel type dès lors qu’il peut recevoir des expressions textuelles en langage naturel (issues d’expressions écrites ou parlées) représentatives d’instructions multiples. Ainsi, il pourrait s’agir, par exemple, d’un serveur de communication ou d’un appareil (éventuellement électroménager) ou d’un robot communicant ou d’un capteur connecté (ou communicant) ou encore d’un équipement de contrôle ou de pilotage (par exemple d’un système d’alarme, d’un système de verrouillage d’ouvrant(s), d’un système de surveillance, d’un système d’éclairage, d’un système de signalisation, d’un système de chauffage/climatisation, d’un véhicule, d’une machine, d’une installation, ou d’un bâtiment).It is considered in what follows, by way of illustrative example, that the electronic object 2 is a communication device used by a user. For example, this communication equipment 2 can be a mobile smart telephone (or “smartphone”), an electronic tablet, a game console, a connected watch, or a computer (fixed or portable). But the electronic object 2 can be of any type provided that it can receive textual expressions in natural language (resulting from written or spoken expressions) representative of multiple instructions. Thus, it could be, for example, a communication server or a device (possibly a household appliance) or a communicating robot or a connected (or communicating) sensor or control equipment or control (for example of an alarm system, an opening locking system, a surveillance system, a lighting system, a signaling system, a heating/air conditioning system, a vehicle, a machine, an installation, or a building).
Par ailleurs, on considère ici, à titre d’exemple illustratif, que l’objet électronique 2 (ici un équipement de communication) reçoit des expressions textuelles (issues d’expressions écrites ou parlées) fournies par son utilisateur et qu’il doit comprendre pour piloter au moins une fonction assurée ou contrôlée par un équipement de communication 4 (par exemple un équipement de contrôle d’une installation domotique équipant un bâtiment).Furthermore, it is considered here, by way of illustrative example, that the electronic object 2 (here a communication device) receives textual expressions (resulting from written or spoken expressions) provided by its user and that it must understand to drive at least one function ensured or controlled by a communication device 4 (for example a device for controlling a home automation installation equipping a building).
Comme illustré non limitativement par l’exemple d’algorithme de la
Dans la première étape 100, du procédé de compréhension, on (le dispositif de compréhension 1) segmente de façon automatisée l’instruction multiple qui est représentée par une expression (en langage naturel) reçue en instructions simples (au moins deux).In the first step 100, of the comprehension method, one (the comprehension device 1) automatically segments the multiple instruction which is represented by an expression (in natural language) received into simple instructions (at least two).
Dans la seconde étape 110, du procédé de compréhension, on (le dispositif de compréhension 1) détermine de façon automatisée un champ d’application parmi un ensemble de champs d’application pour chacune des instructions simples de la segmentation qui a été déterminée dans la première étape 100. On entend ici par « champ d’application » un domaine contextuel regroupant un ensemble d’au moins un appareil électronique ou d’au moins une fonction ou d’au moins un programme (local ou distant) concerné(e) par un ordre d’une instruction simple et auquel on peut accéder via une interface ouverte par un programme informatique.In the second step 110, of the comprehension method, one (the comprehension device 1) automatically determines a field of application from among a set of fields of application for each of the simple instructions of the segmentation which has been determined in the first step 100. Here, “scope” means a contextual domain grouping together a set of at least one electronic device or at least one function or at least one program (local or remote) concerned by a command of a simple instruction and which can be accessed via an interface opened by a computer program.
Grâce à l’invention, on peut désormais déterminer pour chaque instruction multiple, représentée par une expression reçue, des instructions simples, puis on peut déterminer le contexte de traitement ciblé par chacune de ses instructions simples déterminées. Cela permet d’améliorer notablement la compréhension des expressions (ou instructions multiples), pouvant, éventuellement, porter sur des domaines d’application différents, et donc de diminuer notablement le taux d’erreur de compréhension permettant ainsi l’utilisation des instructions multiples pour commander ou alimenter des fonctions automatisées après une traduction en script d’automatisation.Thanks to the invention, it is now possible to determine for each multiple instruction, represented by a received expression, simple instructions, then it is possible to determine the processing context targeted by each of its determined simple instructions. This makes it possible to significantly improve the understanding of expressions (or multiple instructions), possibly relating to different fields of application, and therefore to significantly reduce the comprehension error rate, thus allowing the use of multiple instructions to command or power automated functions after translation into an automation script.
Par exemple, dans la seconde étape 110 on peut utiliser une intelligence artificielle pour déterminer un contexte de chaque instruction simple, puis pour déterminer le champ d’application de chaque instruction simple en fonction du contexte déterminé pour cette dernière. Le contexte d’une instruction simple peut être une classe de champs d’application choisie parmi plusieurs prédéfinies. Si aucun contexte n’est reconnu pour une instruction simple, alors cette instruction simple peut être associée à une classe inactive. Une classe inactive signifie que l’on considère une classification de type « AUTRE » ou « INDÉFINIE » signifiant que l’on n’est pas en capacité de déterminer un contexte correspondant aux contextes initialement possibles. Par exemple, des contextes possibles peuvent être « interagir avec une imprimante » ou « interagir avec une cafetière », et une demande en langage naturel peut être « quel temps fait-il demain ? ». Dans ce cas, la demande ne peut être ni classifiée en imprimante ni en cafetière et donc on a une classe inactive.For example, in the second step 110, an artificial intelligence can be used to determine a context for each simple instruction, then to determine the scope of application of each simple instruction according to the context determined for the latter. The context of a simple statement can be a class of scopes chosen from several predefined ones. If no context is recognized for a simple statement, then this simple statement can be associated with an inactive class. An inactive class means that we consider a classification of type "OTHER" or "UNDEFINED" meaning that we are not able to determine a context corresponding to the initially possible contexts. For example, possible contexts could be "interact with a printer" or "interact with a coffee maker", and a natural language request could be "what's the weather tomorrow?" ". In this case, the request cannot be classified as a printer or a coffee maker and therefore we have an inactive class.
Pour réaliser la détermination de contexte on peut utiliser un classificateur de contexte basé sur un modèle de type BERT, proposé par Jacob Devlin dans l’article « BERT: Pre-training of Deep Bidirectional Transformers for Language Understanding ») (publié en 2019), basé sur l’architecture « Transformers » (proposée par Ashish Vaswani, Noam Shazeer, Niki Parmar, Jakob Uszkoreit, Llion Jones, Aidan N. Gomez, Lukasz Kaiser, Illia Polosukhin dans l’article « attention is all you need », 2017), avec de préférence une couche linéaire en sortie dont la taille de sortie correspond au nombre de contextes détectables plus une unité (la classe inactive). C’est cette couche linéaire qui permettra la détection finale du contexte. Un tel modèle requiert une quantité moindre de données d’entraînement (ou d’apprentissage) que celle nécessaire à un réseau de neurones récurrents (ou RNN) basé sur une architecture de type LSTM, et de surcroit converge plus rapidement qu’un RNN.To perform context determination, a context classifier based on a BERT type model, proposed by Jacob Devlin in the article "BERT: Pre-training of Deep Bidirectional Transformers for Language Understanding") (published in 2019), can be used. based on the "Transformers" architecture (proposed by Ashish Vaswani, Noam Shazeer, Niki Parmar, Jakob Uszkoreit, Llion Jones, Aidan N. Gomez, Lukasz Kaiser, Illia Polosukhin in the article "attention is all you need", 2017) , with preferably a linear output layer whose output size corresponds to the number of detectable contexts plus one unit (the inactive class). It is this linear layer that will allow the final detection of the context. Such a model requires less training (or learning) data than that required for a recurrent neural network (or RNN) based on an LSTM-type architecture, and moreover converges more quickly than an RNN.
Le classificateur de contexte utilise pour fonctionner un jeu de données contenant quelques centaines de phrases (ou expressions) dans lesquelles des classes de champs d’application sont représentées. De préférence, les phrases (ou expressions) sont réparties de façon équilibrée entre les différentes classes. On notera qu’un ajout de contexte au sein de l’intelligence artificielle assurant la fonction de classificateur de contexte nécessite un nouvel entrainement de ce dernier, mais ce nouvel entrainement est peu coûteux en temps car le nombre de données nécessaires est raisonnable.The context classifier uses to operate a dataset containing a few hundred sentences (or expressions) in which classes of application fields are represented. Preferably, the sentences (or expressions) are distributed in a balanced way between the different classes. It should be noted that an addition of context within the artificial intelligence ensuring the function of context classifier requires a new training of the latter, but this new training is inexpensive in time because the number of data necessary is reasonable.
On notera également que l’on peut aussi réaliser une détermination de contexte inter instructions simples d’une même instruction complexe afin d’obtenir des expressions (ou des scripts résultant de la compréhension de ces expressions) encore plus naturel(le)s et plus fiables en entrée des objets électroniques implémentant les fonctions concernées.It will also be noted that it is also possible to carry out a determination of the context between simple instructions of the same complex instruction in order to obtain expressions (or scripts resulting from the understanding of these expressions) that are even more natural and more reliable input of electronic objects implementing the functions concerned.
A titre d’exemple, on peut avoir deux champs d’application, l’un étant une multiprise couplée à des lampes de quatre couleurs différentes (et donc dont chaque couleur peut être choisie), l’autre étant un boîtier décodeur (ou « set-top box ») permettant de choisir une chaîne de télévision ou de radio. Si un utilisateur fournit l’expression « mets la verte puis mets RMC Découverte après si le chien est dans la pièce alors tu le laveras », celle-ci représente une instruction multiple que le dispositif de compréhension 1 va segmenter en trois segments : un premier segment « mets la verte » (première instruction simple), un deuxième segment « mets RMC Découverte » (deuxième instruction simple), et un troisième segment « si le chien est dans la pièce alors tu le laveras » (troisième instruction simple se présentant sous la forme d’une règle). Ensuite, le dispositif de compréhension 1 va associer les trois segments respectivement à trois champs d’application : « mets la verte » est associé à la « multiprise » (cette première association constitue une première intention), « mets RMC Découverte » est associé au boîtier décodeur (cette deuxième association constitue une deuxième intention), et « si le chien est dans la pièce alors tu le laveras ». Dans ce dernier cas, aucun champ d’application ne permet de détecter la présence d’un chien ou encore de le laver, et donc la règle ne peut pas être associée à un champ d’application connu ce qui interdit la détermination d’une troisième association et donc d’une troisième intention. Dans cet exemple seules les première et deuxième intentions pourront ensuite être transformées en commandes et paramètres bas niveau : de la première intention est extraite la commande « allumer (ou « on ») » et le paramètre « vert », et de la deuxième intention est extraite la commande « mettre la chaîne de télévision » et le paramètre « RMC Découverte ».By way of example, we can have two fields of application, one being a power strip coupled to lamps of four different colors (and therefore each color of which can be chosen), the other being a decoder box (or " set-top box”) allowing you to choose a television or radio channel. If a user provides the expression "put the green then put RMC Découverte afterwards if the dog is in the room then you will wash it", this represents a multiple instruction that the comprehension device 1 will segment into three segments: a first segment "put the green" (first simple instruction), a second segment "put RMC Découverte" (second simple instruction), and a third segment "if the dog is in the room then you will wash it" (third simple instruction appearing as the form of a ruler). Then, the comprehension device 1 will associate the three segments respectively with three fields of application: "put on the green" is associated with the "power strip" (this first association constitutes a first intention), "put RMC Découverte" is associated with the set-top box (this second association constitutes a second intention), and “if the dog is in the room then you will wash it”. In the latter case, no field of application makes it possible to detect the presence of a dog or even to wash it, and therefore the rule cannot be associated with a known field of application, which prohibits the determination of a third association and therefore of a third intention. In this example, only the first and second intentions can then be transformed into low-level commands and parameters: from the first intention is extracted the command “light up (or “on”)” and the parameter “green”, and from the second intention is extracted the command “put the television channel” and the parameter “RMC Découverte”.
Au moins trois modes de réalisation peuvent être envisagés pour mettre en œuvre la première étape 100.At least three embodiments can be considered for implementing the first step 100.
Dans un premier mode de réalisation, dans la première étape 100 on (le dispositif de compréhension 1) peut comparer chaque sous-partie élémentaire de l’expression reçue à des séparateurs qui sont contenus dans un ensemble de séparateurs (prédéfini ou configurable), afin de déterminer chaque séparateur contenu dans l’expression reçue. On entend ici par « sous-partie élémentaire » un mot ou un signe de ponctuation. Puis, on peut considérer que les sous-parties élémentaires qui sont situées avant ou après un séparateur déterminé sont représentatives d’une instruction simple.In a first embodiment, in the first step 100 one (the comprehension device 1) can compare each elementary sub-part of the expression received with separators which are contained in a set of separators (predefined or configurable), in order to to determine each separator contained in the received expression. The term “elementary sub-part” is understood here to mean a word or a punctuation mark. Then, we can consider that the elementary sub-parts which are located before or after a determined separator are representative of a simple instruction.
En d’autres termes, à partir d’un ensemble de séparateurs, le dispositif de compréhension 1 va découper (ou segmenter) une instruction multiple en une liste d’instructions simples séparées deux à deux par un séparateur reconnu au sein de cet ensemble. Chaque séparateur reconnu est alors supprimé (et donc n’est pas intégré dans une instruction simple).In other words, from a set of separators, the comprehension device 1 will cut (or segment) a multiple instruction into a list of simple instructions separated two by two by a separator recognized within this set. Each recognized separator is then removed (and therefore not integrated into a simple instruction).
Par exemple, dans la première étape 100 on peut utiliser un ensemble de séparateurs comprenant, d’une part, des signes de ponctuation qui sont choisis dans un groupe comportant une virgule, un point-virgule, un point et des points de suspension, par exemple, et, d’autre part, des mots de séparation qui sont choisis dans un autre groupe comportant les mots « et », « puis », « ensuite », « enfin », « après » et « aussi », par exemple.For example, in the first step 100 one can use a set of separators comprising, on the one hand, punctuation marks which are chosen from a group comprising a comma, a semicolon, a period and ellipsis, for example, and, on the other hand, separation words which are chosen from another group comprising the words "and", "then", "then", "finally", "after" and "also", for example.
A titre d’exemple, un utilisateur peut fournir l’expression « Allume la lampe verte et éteins la lampe rouge enfin mets ARTE ». Dans ce cas, le dispositif de compréhension 1 va transformer cette expression en une suite d’instructions simples [« Allume la lampe verte », « éteins la lampe rouge », « mets ARTE »].As an example, a user can provide the expression “Turn on the green light and turn off the red light finally put ARTE on”. In this case, the comprehension device 1 will transform this expression into a series of simple instructions [“Turn on the green lamp”, “turn off the red lamp”, “turn on ARTE”].
Ce premier mode de réalisation est basé sur une analyse lexicale classique sous-partie élémentaire à sous-partie élémentaire (ou « mot à mot ») reposant sur des règles et la connaissance de l’ensemble des séparateurs qui sont utilisables dans une langue donnée. Il résulte du fait qu’une personne formule généralement une instruction multiple en séparant ses instructions simples uniquement par des séparateurs. Sa mise en œuvre ne nécessite pas l’utilisation d’une intelligence artificielle, et ne requiert pas de données d’entrainement (ou d’apprentissage). Par exemple, cette mise en œuvre peut être basée sur un script qui réalise un filtre de comparaison dans lequel chaque sous-partie élémentaire d’une expression reçue est comparée à l’ensemble de séparateurs. Dans la pratique, le script peut être représenté par un algorithme consistant à ajouter des espaces autour des caractères spéciaux et de ponctuation (« , », « ; » « - », « ’ », …) de l’instruction multiple, puis à comparer chaque sous-partie élémentaire de l’expression aux séparateurs de l’ensemble de séparateurs, puis à couper l’expression au niveau de chaque séparateur ayant fait l’objet d’un ajout d’espace puis d’une reconnaissance au sein de l’ensemble de séparateurs.This first embodiment is based on a classic lexical analysis elementary subpart to elementary subpart (or “word by word”) based on rules and knowledge of all the separators that can be used in a given language. It results from the fact that a person usually formulates a multiple statement by separating his single statements only by separators. Its implementation does not require the use of artificial intelligence, and does not require training (or learning) data. For example, this implementation may be based on a script that performs a comparison filter in which each elementary subpart of a received expression is compared against the set of separators. In practice, the script can be represented by an algorithm of adding spaces around the special and punctuation characters (“,”, “;” “-”, “'”, …) of the multi-statement, then comparing each elementary subpart of the expression to the separators in the set of separators, then breaking the expression at each separator that was appended with space and then matched within the set of separators.
Dans un deuxième mode de réalisation, dans la première étape 100 on (le dispositif de compréhension 1) peut utiliser une intelligence artificielle pour classer chaque sous-partie élémentaire de l’expression reçue dans une catégorie qui est choisie parmi une première catégorie de séparateurs et une seconde catégorie de mots autres que des séparateurs. Puis, on (le dispositif de compréhension 1) peut utiliser les résultats de classification de cette intelligence artificielle pour considérer que les sous-parties élémentaires qui sont situées avant ou après une sous-partie élémentaire classée dans la première catégorie de séparateurs sont représentatives d’une instruction simple.In a second embodiment, in the first step 100 one (the comprehension device 1) can use an artificial intelligence to classify each elementary sub-part of the expression received in a category which is chosen from among a first category of separators and a second category of words other than separators. Then, one (the understanding device 1) can use the classification results of this artificial intelligence to consider that the elementary sub-parts which are located before or after an elementary sub-part classified in the first category of separators are representative of a simple statement.
En d’autres termes, l’intelligence artificielle classe chaque sous-partie élémentaire de l’expression dans une catégorie parmi deux : soit il s’agit d’un séparateur, soit il ne s’agit pas d’un séparateur. Cela permet de déterminer les séparateurs dans une expression sans qu’une liste exhaustive de séparateurs ne soit nécessaire. Dès lors qu’un séparateur est trouvé, l’instruction multiple est segmentée sans que ce séparateur ne soit intégré à l’une des instructions simples.In other words, the artificial intelligence classifies each elementary subpart of the expression into one of two categories: either it is a separator or it is not a separator. This makes it possible to determine the separators in an expression without requiring an exhaustive list of separators. As soon as a separator is found, the multi-statement is segmented without this separator being integrated into one of the simple statements.
A titre d’exemple, un utilisateur peut fournir l’expression « Allume la lampe verte tout en mettant ARTE ». Dans ce cas, le dispositif de compréhension 1 va transformer cette expression en une suite d’instructions simples [« Allume la lampe verte », « mettant ARTE »].As an example, a user can provide the expression “Turn on the green lamp while putting ARTE on”. In this case, the comprehension device 1 will transform this expression into a series of simple instructions ["Turn on the green lamp", "turn on ARTE"].
Par exemple, dans la première étape 100, pour le deuxième mode de réalisation on peut utiliser l’intelligence artificielle et une méthode de reconnaissance d’entités nommées (ou NER (« Named-Entity Recognition ») pour effectuer le classement de chaque sous-partie élémentaire de l’expression reçue. Dans ce cas, on peut combiner une architecture de type BERT à la méthode NER. Cela permet d’améliorer encore la compréhension des expressions et donc de réduire encore le taux d’échec.For example, in the first step 100, for the second embodiment, it is possible to use artificial intelligence and a method of recognition of named entities (or NER (“Named-Entity Recognition”) to carry out the classification of each sub- elementary part of the expression received. In this case, a BERT type architecture can be combined with the NER method. This makes it possible to further improve the understanding of the expressions and therefore to further reduce the failure rate.
On notera que dans la première étape 100 on peut utiliser l’intelligence artificielle et la méthode de reconnaissance d’entités nommées (ou NER) en association avec une couche dite à champ aléatoire conditionnel (ou CRF (« Conditional Random Field »)) pour effectuer le classement de chaque sous-partie élémentaire de l’expression reçue. Cela permet d’améliorer encore plus la compréhension des expressions et donc de réduire encore plus le taux d’échec.It will be noted that in the first step 100 one can use artificial intelligence and the method of recognition of named entities (or NER) in association with a so-called conditional random field layer (or CRF (“Conditional Random Field”)) for carry out the classification of each elementary sub-part of the expression received. This further improves the comprehension of expressions and therefore further reduces the failure rate.
Dans un troisième mode de réalisation, dans la première étape 100 on (le dispositif de compréhension 1) peut utiliser une intelligence artificielle pour déterminer dans l’expression reçue chaque sous-partie élémentaire qui représente un début d’instruction simple et chaque sous-partie élémentaire qui représente une fin d’instruction simple. Puis, on (le dispositif de compréhension 1) peut utiliser cette intelligence artificielle pour considérer que les sous-parties élémentaires qui sont comprises entre une sous-partie élémentaire incluse et représentant un début d’instruction simple et une autre sous-partie élémentaire incluse et représentant une fin d’instruction simple suivant ce début d’instruction simple sont représentatives d’une même instruction simple.In a third embodiment, in the first step 100 one (the comprehension device 1) can use an artificial intelligence to determine in the expression received each elementary sub-part which represents a beginning of a simple instruction and each sub-part elementary which represents a simple end of instruction. Then, one (the comprehension device 1) can use this artificial intelligence to consider that the elementary sub-parts which are included between an elementary sub-part included and representing a beginning of simple instruction and another elementary sub-part included and representing a simple instruction end following this simple instruction start are representative of the same simple instruction.
En d’autres termes, l’intelligence artificielle considère que toutes les sous-parties élémentaires qui sont comprises entre ce qu’elle estime être un début d’instruction simple et une fin d’instruction simple (tous deux inclus) constituent cette instruction simple.In other words, the artificial intelligence considers that all the elementary subparts that are included between what it considers to be a simple instruction start and a simple instruction end (both inclusive) constitute this simple instruction .
A titre d’exemple, un utilisateur peut fournir l’expression « Allume la lampe verte tout en mettant ARTE ». Dans ce cas, le dispositif de compréhension 1 va déterminer que le mot « allume » est le début d’une première instruction simple, le mot « verte » est la fin de la première instruction simple, le mot « mettant » est le début de la seconde instruction simple et le mot « ARTE » est la fin de la seconde instruction simple, puis va transformer cette expression en une suite d’instructions simples [« Allume la lampe verte », « mettant ARTE »].As an example, a user can provide the expression “Turn on the green lamp while putting ARTE on”. In this case, the comprehension device 1 will determine that the word “ignite” is the start of a first simple instruction, the word “green” is the end of the first simple instruction, the word “putting” is the start of the second simple instruction and the word "ARTE" is the end of the second simple instruction, then will transform this expression into a series of simple instructions ["Turn on the green lamp", "put ARTE"].
Par exemple, dans ce troisième mode de réalisation on peut utiliser une intelligence artificielle à architecture de type BERT et la méthode de reconnaissance d’entités nommées (ou NER), éventuellement en association avec une couche à champ aléatoire conditionnel (ou CRF (« Conditional Random Field »)) pour effectuer la détermination des début et fin d’instruction simple d’une expression reçue. Cela permet d’améliorer encore plus la compréhension des expressions et donc de réduire encore plus le taux d’échec.For example, in this third embodiment, it is possible to use an artificial intelligence with BERT type architecture and the method of recognition of named entities (or NER), possibly in association with a conditional random field layer (or CRF ("Conditional Random Field")) to perform simple statement start and end determination of a received expression. This further improves the comprehension of expressions and therefore further reduces the failure rate.
Il est ici rappelé que l’architecture BERT, qui peut être utilisée pour la NER dans les deuxième et troisième modes de réalisation décrits ci-avant, utilise sa propre technique de découpage d’expression en jetons (ou « tokens » - mot complet ou morceau de mot) et sa propre technique d’incorporation de mots (ou « word-embedding » - les jetons sont représentés sous forme de vecteurs qui sont directement utilisés par l’architecture pour faire une prédiction). Les jetons déterminés sont envoyés à l’architecture BERT, et en aval de cette dernière on place une couche linéaire afin de réaliser une classification de chacun des jetons dans diverses classes prédéfinies (une fonction « softmax »(classique dans le domaine de l’intelligence artificielle) est appliquée en sortie de la couche linéaire). Sans la couche CRF, pour chaque jeton, un label est déterminé en fonction du score d’émission maximum, afin que les labels des différents jetons soient fixés indépendamment les uns des autres, mais des aberrations peuvent apparaitre. C’est pourquoi il est avantageux d’utiliser en plus une couche CRF qui diminue ces aberrations. En effet, l’ajout d’une couche CRF permet de prendre en compte non seulement les scores d’émissions des labels mais aussi les scores de transitions possibles d’un label à l’autre. Les scores qui constituent la matrice de transitions sont les paramètres de la couche CRF qui sont optimisés durant l’entraînement (ou apprentissage) de l’intelligence artificielle. Avec la couche CRF, les labels d’une expression ne sont plus choisis indépendamment, car pour chaque expression une suite de labels est décidée de manière à minimiser les scores d’émissions et de transitions de la suite de labels.It is recalled here that the BERT architecture, which can be used for NER in the second and third embodiments described above, uses its own technique for splitting expression into tokens (or "tokens" - complete word or piece of word) and its own technique of embedding words (or "word-embedding" - the tokens are represented in the form of vectors which are directly used by the architecture to make a prediction). The determined tokens are sent to the BERT architecture, and downstream of the latter a linear layer is placed in order to classify each of the tokens in various predefined classes (a "softmax" function (classic in the field of intelligence artificial) is applied at the output of the linear layer). Without the CRF layer, for each token, a label is determined according to the maximum emission score, so that the labels of the different tokens are set independently of each other, but aberrations may appear. This is why it is advantageous to additionally use a CRF layer which reduces these aberrations. Indeed, the addition of a CRF layer makes it possible to take into account not only the emission scores of the labels but also the scores of possible transitions from one label to another. The scores that constitute the transition matrix are the parameters of the CRF layer that are optimized during the training (or learning) of the artificial intelligence. With the CRF layer, the labels of an expression are no longer chosen independently, because for each expression a sequence of labels is decided in such a way as to minimize the scores of emissions and transitions of the sequence of labels.
On notera que l’ajout d’une couche CRF en sortie de l’architecture BERT peut se faire via PyTorch (bibliothèque logicielle Python open source d’apprentissage machine) en instanciant un optimiseur pour les paramètres du modèle CRF (en utilisant Adam), puis en envoyant la sortie de la partie NER dans la couche CRF (modification de la méthode de transfert (ou « forward »), puis en sommant le coût du traitement effectué par la partie NER et le coût du traitement effectué par la couche CRF (lors de la rétropropagation, PyTorch calcule automatiquement les gradients relatifs aux paramètres de la couche CRF en même temps que ceux de l’architecture BERT lors de l’appel à la méthode de retour en arrière (ou « backward ») sur la somme des coûts), puis en mettant à jour les paramètres de la couche CRF (appel à la méthode « step » de l’optimiseur).It should be noted that adding a CRF layer at the output of the BERT architecture can be done via PyTorch (open source machine learning Python software library) by instantiating an optimizer for the parameters of the CRF model (using Adam), then by sending the output of the NER part into the CRF layer (modification of the transfer method (or "forward"), then by summing the cost of the processing carried out by the NER part and the cost of the processing carried out by the CRF layer ( during backpropagation, PyTorch automatically calculates the gradients relating to the parameters of the CRF layer at the same time as those of the BERT architecture when calling the backward method on the sum of the costs ), then by updating the parameters of the CRF layer (call to the “step” method of the optimizer).
Dans le cas du deuxième mode de réalisation, on peut, en complément de ce qui est décrit ci-dessus, utiliser trois classes : « B-SEP » (début de séparateur) et « I-SEP » (suite de séparateur après un B-SEP), et « O » (autres cas). Pour chaque jeton, le label retenu est celui qui est associé au score maximum. L’expression reçue est scindée à l’emplacement où un séparateur est détecté (« B-SEP » et éventuellement au moins un « I-SEP »), ce séparateur est ignoré et une liste d’instructions simples est obtenue.In the case of the second embodiment, it is possible, in addition to what is described above, to use three classes: “B-SEP” (beginning of separator) and “I-SEP” (continuation of separator after a B -MS), and “O” (other cases). For each token, the label retained is the one associated with the maximum score. The received expression is split at the location where a separator is detected ("B-SEP" and optionally at least one "I-SEP"), this separator is ignored and a list of simple statements is obtained.
A titre d’exemple, un utilisateur peut fournir l’expression « Allume la lampe rouge tout en mettant ARTE ». Dans ce cas, le dispositif de compréhension 1 détermine la suite de mots Allume la lampe rouge tout en mettant ARTE, et associe respectivement à ces mots la suite de labels O O O O B-SEP I-SEP O O, ce qui lui permet d’aboutir à la segmentation « Allume la lampe rouge » « mettant ARTE » (car « tout » est labélisé « B-SEP » et « en » est labélisé « I-SEP »).As an example, a user can provide the expression “Turn on the red lamp while putting ARTE on”. In this case, the comprehension device 1 determines the sequence of words Light the red lamp while putting ARTE on, and associates respectively with these words the sequence of labels O O O O B-SEP I-SEP O O, which allows it to arrive at the segmentation “Turn on the red lamp” “put ARTE” (because “everything” is labeled “B-SEP” and “en” is labeled “I-SEP”).
Dans le cas du deuxième mode de réalisation avec une couche CRF en complément en sortie, la labélisation et la méthode de segmentation restent identiques. Cependant le choix des labels n’est plus obtenu uniquement à partir des scores de sortie de l’architecture BERT. C’est en effet la couche CRF qui décide de la suite de labels la plus probable.In the case of the second embodiment with a CRF layer as a complement at the output, the labeling and the segmentation method remain identical. However, the choice of labels is no longer obtained solely from the output scores of the BERT architecture. It is indeed the CRF layer which decides on the most probable sequence of labels.
Dans le cas du troisième mode de réalisation, on peut, en complément de ce qui est décrit plus haut, utiliser trois classes : « BOS » (« Begin Of Sentence » - début d’expression) et « EOS » (« End Of Sentence » - fin d’expression), et « O » (« other » - autre cas). Pour chaque label, celui dont le score est maximum est retenu, comme dans le cas du deuxième mode de réalisation (avec partie NER mais sans couche CRF). Chaque instruction simple à l’issue de la segmentation débute à un label BOS et termine à un label EOS, les mots non encadrés sont ignorés.In the case of the third embodiment, it is possible, in addition to what is described above, to use three classes: "BOS" ("Begin Of Sentence" - beginning of expression) and "EOS" ("End Of Sentence - end of expression), and "O" ("other" - other case). For each label, the one whose score is maximum is retained, as in the case of the second embodiment (with NER part but without CRF layer). Each simple instruction at the end of the segmentation starts at a label BOS and ends at a label EOS, the unframed words are ignored.
A titre d’exemple, un utilisateur peut fournir l’expression « Allume la lampe rouge tout en mettant ARTE ». Dans ce cas, le dispositif de compréhension 1 détermine la suite de mots Allume la lampe rouge tout en mettant ARTE, et associe respectivement à ces mots les labels BOS O O EOS O O BOS EOS, ce qui lui permet d’aboutir à la segmentation « Allume la lampe rouge » « mettant ARTE ».As an example, a user can provide the expression “Turn on the red lamp while putting ARTE on”. In this case, the comprehension device 1 determines the sequence of words Turn on the red lamp while turning on ARTE, and respectively associates these words with the labels BOS O O EOS O O BOS EOS, which enables it to end up with the segmentation "Turn on the red lamp” “putting ARTE”.
Dans le cas du troisième mode de réalisation avec une couche CRF en complément en sortie, la labélisation et la méthode de segmentation restent identiques.In the case of the third embodiment with a CRF layer as a complement at the output, the labeling and the segmentation method remain identical.
On notera que l’apprentissage des intelligences artificielles, utilisées par le dispositif de compréhension 1, se fait au moyen de jeux de données d’apprentissage qui peuvent être des instructions caractéristiques dans une langue donnée et/ou des lignes de données produites à partir de structures de phrase (ou « masterspins ») dans lesquelles certains mots parcourent des listes (cette production est appelée en anglais « content spinning »). Un exemple de quatre expressions générées à partir du masterspin {Allume | Eteins} la lampe {verte | rouge} donne les quatre possibilités « Allume la lampe verte », « Allume la lampe rouge », « Eteins la lampe verte » et « Eteins la lampe rouge ». Au lieu d’utiliser des lignes de données produites à partir de masterspins, on peut utiliser des jeux de données d’apprentissage générés à partir de la plate-forme de reconnaissance vocale intégrée SNIPS, par exemple sur les domaines d’instruction nécessaires.It will be noted that the learning of the artificial intelligences, used by the comprehension device 1, is done by means of sets of learning data which can be characteristic instructions in a given language and/or lines of data produced from sentence structures (or "masterspins") in which certain words run through lists (this production is called "content spinning"). An example of four expressions generated from the masterspin {Allume | Turn off} the {green | red} gives the four possibilities “Turn on the green lamp”, “Turn on the red lamp”, “Turn off the green lamp” and “Turn off the red lamp”. Instead of using data lines produced from masterspins, one can use training datasets generated from the integrated speech recognition platform SNIPS, for example on the necessary instruction domains.
Comme illustré non limitativement sur la
L’unité de traitement 5 peut, par exemple, être un processeur, éventuellement de signal numérique (ou DSP (« Digital Signal Processor »)). La mémoire 6 stocke des fichiers de données et de programme(s) d’ordinateur dont les instructions sont destinées à être exécutées par l’unité de traitement 5 (ou processeur). Cette mémoire 6 peut, par exemple, être de type RAM (« Random Access Memory »). Cette unité de traitement 5 et cette mémoire 6 sont agencées pour effectuer ensemble les opérations contribuant à la compréhension automatique d’expressions (écrites ou parlées).The processing unit 5 can, for example, be a processor, possibly a digital signal processor (or DSP (“Digital Signal Processor”)). Memory 6 stores data files and computer program(s) whose instructions are intended to be executed by processing unit 5 (or processor). This memory 6 can, for example, be of the RAM (“Random Access Memory”) type. This processing unit 5 and this memory 6 are arranged to perform together the operations contributing to the automatic understanding of expressions (written or spoken).
Dans l’exemple illustré non limitativement sur la
Le calculateur 1 peut être réalisé sous la forme d’une combinaison de circuits ou composants électriques ou électroniques (ou « hardware »), éventuellement micro-programmés ou micro-câblées, et de modules logiciels (ou « software »).The computer 1 can be made in the form of a combination of electrical or electronic circuits or components (or “hardware”), possibly micro-programmed or micro-wired, and software modules (or “software”).
On notera également que l’invention n’est pas limitée aux modes de réalisation décrits précédemment. Il apparaîtra en effet à l'homme de l'art que diverses modifications peuvent être apportées aux modes de réalisation décrits ci-dessus, à la lumière de l'enseignement qui vient de lui être divulgué. Dans la présentation détaillée de l’invention qui est faite précédemment, les termes utilisés ne doivent pas être interprétés comme limitant l’invention aux modes de réalisation exposés dans la présente description, mais doivent être interprétés pour y inclure tous les équivalents dont la prévision est à la portée de l'homme de l'art en appliquant ses connaissances générales à la mise en œuvre de l'enseignement qui vient de lui être divulgué.It will also be noted that the invention is not limited to the embodiments described above. It will indeed appear to those skilled in the art that various modifications can be made to the embodiments described above, in the light of the teaching which has just been disclosed to them. In the detailed presentation of the invention which is made above, the terms used must not be interpreted as limiting the invention to the embodiments set out in the present description, but must be interpreted to include therein all the equivalents whose provision is within the reach of those skilled in the art by applying their general knowledge to the implementation of the teaching which has just been disclosed to them.
Il apparaît clairement qu’un procédé/dispositif de compréhension tel que celui décrit précédemment permet de rendre les phrases ou expressions en langage naturel plus intuitives en acceptant plusieurs instructions simples à la fois, de rendre la sélection du champ d’automatisation transparente pour l’utilisateur ou la machine, de limiter notablement les erreurs de compréhension des instructions multiples et de réduire les traitements manuels lors des phases d’intégration dans de nouvelles configurations de composants. En outre, ils permettent de simplifier l’écriture et l’exécution des scripts en ajoutant de l’intelligence dans la création et l’exécution de ceux-ci.It is clear that an understanding process/device such as the one described above makes it possible to make sentences or expressions in natural language more intuitive by accepting several simple instructions at the same time, to make the selection of the automation field transparent for the user or the machine, to significantly limit misunderstandings of multiple instructions and to reduce manual processing during the integration phases in new component configurations. In addition, they simplify the writing and execution of scripts by adding intelligence in the creation and execution of these.
Claims (10)
caractérisé en ce qu’il comprend, en cas de réception d’une expression :
- une première étape (100) dans laquelle on segmente de façon automatisée l’instruction multiple représentée par ladite expression reçue en instructions simples, et
- une seconde étape (110) dans laquelle on détermine de façon automatisée un champ d’application parmi un ensemble de champs d’application pour chacune desdites instructions simples de ladite segmentation.
characterized in that it comprises, upon receipt of an expression:
- a first step (100) in which the multiple instruction represented by said expression received is segmented in an automated manner into simple instructions, and
- a second step (110) in which a scope of application is determined automatically from among a set of scopes for each of said simple instructions of said segmentation.
caractérisé en ce qu’il comprend au moins une unité de traitement (5) et au moins une mémoire (6) propres, en cas de réception d’une expression, à effectuer les opérations consistant :
- à segmenter de façon automatisée l’instruction multiple représentée par ladite expression reçue en instructions simples, et
- à déterminer de façon automatisée un champ d’application parmi un ensemble de champs d’application pour chacune desdites instructions simples de ladite segmentation.
characterized in that it comprises at least one processing unit (5) and at least one memory (6) capable, in the event of reception of an expression, of performing the operations consisting of:
- automatically segmenting the multiple statement represented by said received expression into single statements, and
- automatically determining a scope from among a set of scopes for each of said simple instructions of said segmentation.
Priority Applications (2)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
PCT/IB2021/062514 WO2022144847A1 (en) | 2020-12-31 | 2021-12-31 | Method for automatically understanding multiple instructions in natural language expressions |
EP21848298.2A EP4272108A1 (en) | 2020-12-31 | 2021-12-31 | Method for automatically understanding multiple instructions in natural language expressions |
Applications Claiming Priority (2)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
FR2014296 | 2020-12-31 | ||
FR2014296A FR3118527A1 (en) | 2020-12-31 | 2020-12-31 | Method for automatic understanding of expressions in natural language, and associated understanding device |
Publications (1)
Publication Number | Publication Date |
---|---|
FR3118509A1 true FR3118509A1 (en) | 2022-07-01 |
Family
ID=77226870
Family Applications (2)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
FR2014296A Pending FR3118527A1 (en) | 2020-12-31 | 2020-12-31 | Method for automatic understanding of expressions in natural language, and associated understanding device |
FR2105128A Pending FR3118509A1 (en) | 2020-12-31 | 2021-05-17 | Automatic understanding of multi-statements in natural language expressions |
Family Applications Before (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
FR2014296A Pending FR3118527A1 (en) | 2020-12-31 | 2020-12-31 | Method for automatic understanding of expressions in natural language, and associated understanding device |
Country Status (1)
Country | Link |
---|---|
FR (2) | FR3118527A1 (en) |
Citations (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US20200110805A1 (en) * | 2018-10-05 | 2020-04-09 | Verint Americas Inc. | Identifying Relational Segments |
US20200257857A1 (en) * | 2019-02-07 | 2020-08-13 | Clinc, Inc. | Systems and methods for machine learning-based multi-intent segmentation and classification |
US20200342874A1 (en) * | 2019-04-26 | 2020-10-29 | Oracle International Corporation | Handling explicit invocation of chatbots |
-
2020
- 2020-12-31 FR FR2014296A patent/FR3118527A1/en active Pending
-
2021
- 2021-05-17 FR FR2105128A patent/FR3118509A1/en active Pending
Patent Citations (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US20200110805A1 (en) * | 2018-10-05 | 2020-04-09 | Verint Americas Inc. | Identifying Relational Segments |
US20200257857A1 (en) * | 2019-02-07 | 2020-08-13 | Clinc, Inc. | Systems and methods for machine learning-based multi-intent segmentation and classification |
US20200342874A1 (en) * | 2019-04-26 | 2020-10-29 | Oracle International Corporation | Handling explicit invocation of chatbots |
Non-Patent Citations (2)
Title |
---|
DEVLIN JACOB ET AL: "BERT: Pre-training of Deep Bidirectional Transformers for Language Understanding", 24 May 2019 (2019-05-24), XP055834934, Retrieved from the Internet <URL:https://arxiv.org/pdf/1810.04805.pdf> [retrieved on 20210825] * |
SHET ROHAN ET AL: "SEGMENTING MULTI-INTENT QUERIES FOR SPOKEN LANGAUGE UNDERSTANDING", 2 March 2019 (2019-03-02), XP055867744, Retrieved from the Internet <URL:https://www.essv.de/pdf/2019_141_147.pdf?id=75> [retrieved on 20211201] * |
Also Published As
Publication number | Publication date |
---|---|
FR3118527A1 (en) | 2022-07-01 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
US11394667B2 (en) | Chatbot skills systems and methods | |
US11087094B2 (en) | System and method for generation of conversation graphs | |
US11544310B2 (en) | Method for adaptive conversation state management with filtering operators applied dynamically as part of a conversational interface | |
US20190103111A1 (en) | Natural Language Processing Systems and Methods | |
US10803253B2 (en) | Method and device for extracting point of interest from natural language sentences | |
US10431205B2 (en) | Dialog device with dialog support generated using a mixture of language models combined using a recurrent neural network | |
US10169466B2 (en) | Persona-based conversation | |
WO2002067142A2 (en) | Device for retrieving data from a knowledge-based text | |
CN107430616A (en) | The interactive mode of speech polling re-forms | |
US20200004822A1 (en) | Method and device for extracting attributes associated with centre of interest from natural language sentences | |
US20200312297A1 (en) | Method and device for extracting factoid associated words from natural language sentences | |
US10380261B2 (en) | Conversational language and informational response systems and methods | |
US11626103B2 (en) | Methods for natural language model training in natural language understanding (NLU) systems | |
CN111191450A (en) | Corpus cleaning method, corpus entry device and computer-readable storage medium | |
US11393455B2 (en) | Methods for natural language model training in natural language understanding (NLU) systems | |
CN110765313A (en) | Classified playing method and system for network video barrage | |
US11947909B2 (en) | Training a language detection model for language autodetection from non-character sub-token signals | |
CN114254158A (en) | Video generation method and device, and neural network training method and device | |
US20210271816A1 (en) | Methods for natural language model training in natural language understanding (nlu) systems | |
WO2022144847A1 (en) | Method for automatically understanding multiple instructions in natural language expressions | |
FR3118509A1 (en) | Automatic understanding of multi-statements in natural language expressions | |
CN111683174A (en) | Incoming call processing method, device and system | |
EP3660726A1 (en) | Method for determining a conversational agent on a terminal | |
US20230197211A1 (en) | Electronic apparatus and control method thereof | |
CN115098680B (en) | Data processing method, device, electronic equipment, medium and program product |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
PLFP | Fee payment |
Year of fee payment: 2 |
|
PLSC | Publication of the preliminary search report |
Effective date: 20220701 |
|
PLFP | Fee payment |
Year of fee payment: 3 |
|
PLFP | Fee payment |
Year of fee payment: 4 |