Brevet FR3072193A1 — publié le 20190412

EXÉCUTION ET CORRECTION DE COMMANDES DE LANGAGE CRYPTIQUE AVEC DES RÈGLES DYNAMIQUES DE SYNTAXE D'APPRENTISSAGE DOMAINE TECHNIQUE L'invention concerne de façon générale des procédés, des systèmes et des produits-programmes d'ordinateur pour l'apprentissage dynamique de langage et des solutions pour des tâches d'auto correction et d'auto complétion. CONTEXTE De nombreux langages de programmation différents existent avec des objectifs différents. Dans le secteur industriel, les sociétés ou des amalgames de sociétés ont développé leurs propres langages pour les communications ou les transactions à l'intérieur de leurs réseaux. Les interfaces de communication dans ces réseaux sont souvent strictement définies, mais les langages utilisés localement peuvent différer d'une société à une autre, même si elles ont le même objectif. L'industrie du voyage en est un exemple. De larges réseaux permettent des transactions automatisées entre les fournisseurs de services de voyage et les agences de voyages. Les réseaux de l'industrie du voyage sont connus sous le nom de systèmes de distribution mondiale (GDS) et utilisent leurs propres langages pour les interactions entre leurs utilisateurs. Ces langages sont généralement connus sous le nom de langages cryptiques, p. ex. Galileo, Amadeus Cryptic et Sabre Cryptic. Bien que les langages cryptiques soient utilisés pour le même objectif, les commandes formulées dans des langages cryptiques différents ont des règles de syntaxe différentes. Les caractéristiques de tous les langages cryptiques sont leurs phrases, généralement connues sous le nom de commandes cryptiques. Comme dans tout langage naturel, une phrase est formulée avec une combinaison de mots, donc chaque commande cryptique est formulée avec des combinaisons de mots cryptiques. Les mots cryptiques sont composés de symboles cryptiques qui sont essentiellement des caractères. Les mots cryptiques sont essentiellement formulés comme des abréviations du langage naturel c'est-à-dire des descriptions. Un exemple de mot cryptique est an dans Amadeus cryptique qui représente une disponibilité numérique ou nce qui signifie Nice (une ville dans le sud de la France). Une des spécificités des langages cryptiques est le manque de séparateurs explicites de mots. Par conséquent il est difficile de 2 déterminer, sans avoir une connaissance préalable approfondie de la syntaxe de langage cryptique, où s'arrête un mot et où commence l'autre. Cependant, cette connaissance est requise si l'interaction entre humain et ordinateur doit être facilitée en apportant des suggestions d'auto correction et d'auto complétion. Les problèmes de segmentation non apparents et de variation des syntaxes de langages cryptiques différents peuvent être mitigés en déclarant les règles de façon statique pour chaque construction de commande possible. Même si les langages cryptiques ont un nombre fini de constructions possibles, cet effort particulier est chronophage et consomme des ressources informatiques. La tâche de collecter et éventuellement de traduire ces règles dans un format plus approprié est aussi difficile que de les déclarer à partir d'un point zéro. Une autre possibilité d'aborder ces problèmes est de construire un procédé d'apprentissage dynamique automatisé qui extrait les règles à partir des données d'utilisateur. La raison la plus notable pour une telle approche dynamique est peut-être d'avoir un désir de capacité à apprendre les règles de tous les langages cryptiques. Par ailleurs, si de nouvelles règles sont déclarées dans le futur, le système pourra toujours fonctionner correctement. RÉSUMÉ Selon un premier aspect, un procédé pour l'auto complétion et l'auto correction de langage cryptique avec un apprentissage dynamique des règles de syntaxe est présenté. Un langage cryptique contient des commandes cryptiques qui sont composées de mots cryptiques non segmentés. Les mots cryptiques sont composés de symboles cryptiques. Le procédé comprend deux processus automatiques, un processus d'extraction de connaissances générales et un processus d'auto correction et d'auto complétion d'exécution. Le processus d'extraction de connaissances générales apprend la syntaxe du langage cryptique. À partir d'une base de données, une collection, ordonnée temporellement de commandes cryptiques entrées, connue comme un ensemble de données de formation, est reçue. Le processus d'extraction de connaissances générales segmente ces commandes cryptiques en symboles cryptiques et crée un arbre n-gramme de niveau du symbole qui utilise les informations dans l'ensemble des commandes cryptiques segmentées en symboles cryptiques. L'arbre n-gramme de niveau symbole capture l'information n-gramme entre les symboles cryptiques et est stocké par le processus d'extraction de connaissances générales. 3 Le processus d'extraction de connaissances générales détermine les positions des séparateurs entre les mots cryptiques à l'intérieur des commandes cryptiques en appliquant un vote majoritaire hiérarchique qui utilise l'information de l'arbre n-gramme de niveau symbole. Le vote majoritaire hiérarchique comprend quatre phases. Premièrement, il arrange les procédures pour la séparation de texte en groupes. Deuxièmement, les procédures de séparation de texte déterminent les positions des séparateurs de mots cryptiques en suivant leurs règles. Troisièmement, un vote de premier niveau paizili les procédures de séparation de texte à l'intérieur de chaque groupe détermine des positions intérimaires pour les séparateurs de mots cryptiques. Quatrièmement, un second niveau de vote parmi les groupes détermine les positions finales des séparateurs de mots cryptiques. Le processus d'extraction de connaissances générales traite les segments de commandes cryptiques en mots cryptiques sur la base des positions finales déterminées par le vote majoritaire hiérarchique. Avec cette information, un arbre n-gramme de niveau mot et un arbre n-gramme de niveau symbole lié au mot sont créés. L'arbre n-gramme de niveau mot capture l'information n-gramme entre les mots cryptiques. L'arbre n-gramme de niveau symbole lié au mot capture l'information n-gramme entre les symboles cryptiques à l'intérieur des mots cryptiques. Les deux sont stockées pour un usage ultérieur. Le processus d'extraction de connaissances générales extrait par ailleurs des identifiants (IDs) de commandes cryptiques à partir des commandes cryptiques en utilisant les informations de l'arbre n-gramme de niveau mot. Une ID de commande cryptique est le premier mot cryptique au commencement d'une commande cryptique. Le processus d'extraction de connaissances générales stocke un ensemble de données de formation modifiées contenant les IDs de commandes cryptiques ordonnées temporellement. Avec cette information, un n-gramme de niveau commande qui capture l'information n-gramme entre les IDs de commandes cryptiques est créé et stocké. Le processus d'auto correction et d'auto complétion d'exécution reçoit via une interface utilisateur, une commande cryptique d'exécution qui est, soit vide, soit composée d'au moins un symbole cryptique. Il génère des suggestions d'auto correction et d'auto complétion pour la commande cryptique d'exécution qui sont basées sur Tes informations de connaissance extraites concernant le langage cryptique stocké dans les arbres n-gramme de niveau symbole, de niveau symbole lié au mot, de niveau mot et de niveau commande. Ensuite, les suggestions d'auto correction et d'auto complétion pour la commande cryptique d'exécution sont renvoyées via 4 l'interface utilisateur. Par ailleurs, l'ensemble de données de formation stocké des commandes cryptiques est actualisé pour que la commande cryptique d'exécution soit complète et correcte en ajoutant la commande cryptique d'exécution. Selon un second aspect, un système informatique est fourni qui est arrangé pour satisfaire les caractéristiques du procédé présenté. Selon un troisième aspect, un produit-programme d'ordinateur stocké sur un support non transitoire lisible par ordinateur est fourni, dans lequel le code de programme exécuté sur un système informatique est arrangé pour mettre en oeuvre les caractéristiques du procédé présenté ici. -BRÈVE DESCRIPTION DES DESSINS La description suivante des modes de réalisation est basée sur un ensemble de figures qui les accompagnent illustrant des modes de réalisation et dans lesquelles des nombres de références similaires renvoient à des messages et à des éléments similaires. La Fig.1 illustre un environnement d'exploitation exemplaire ; La Fig. 2 montre une représentation de couches d'une architecture logicielle exemplaire pour le procédé décrit ; La Fig. 4 démontre une organisation de connaissances avec un arbre n-gramme ; La Fig. 3 présente un organigramme du processus d'extraction de connaissances générales ; La Fig. 5 montre un exemple de séparation d'une commande cryptique en mots cryptiques avec un vote majoritaire hiérarchique La Fig. 6 présente un organigramme du processus d'auto correction et d'auto complétion d'exécution ; La Fig. 7 permet de visualiser un exemple de procédure de génération de suggestions d'auto complétion ; La Fig. 8 montre la procédure basique de génération de suggestions d'auto correctio La Fig. 9 montre des tableaux exemplaires de notation de l'algorithme Needle -Wunsch ; et Les Figs. 10 et 11 sont des représentations visuelles des versions incrémentales de l'algorithme Needleman-Wunsch qui sont décrites dans les présentes. DESCRIPTION DE MODES DE RÉALISATION OPTIONNELS ET DESCRIPTION DÉTAILLÉE D'EXEMPLES ILLUSTRÉS DANS LES DESSINS La Fig. 1 illustre un environnement d'exploitation exemplaire. Avant qu'une description détaillée des dessins ne soit présentée, des déclarations d'ordre plus général concernant les modes de réalisation exemplaires sont présentées. Comme déjà mentionné ci-dessus, l'objet des discussions concerne des procédés, des systèmes et des produits-programmes d'ordinateur pour l' apprentissage dynamique de langage et l'apport de solutions pour les taches d'auto correction et d'auto complétion. Il concerne un procédé d'auto apprentissage qui est capable d'extraire des connaissances sur les langages cryptiques à partir des données d'utilisateur avant que des informations de syntaxe et des propositions d'auto correction et d'auto complétion ne soient proposées aux utilisateurs. L'objectif technique de l'apprentissage dynamique d'un langage uniquement à partir des entrées de l'utilisateur et non par une grammaire, une syntaxe et un dictionnaire prédéfinis, ainsi que le renvoi de suggestions d'auto correction et d'auto complétion à l'utilisateur qui sont basées sur les connaissances apprises, est généralement de faciliter l'interaction humain-ordinateur et d'améliorer les suggestions données. Dans certains modes de réalisation, la génération de suggestions d'auto complétion pour la commande cryptique d'exécution comprend la recherche des IDs de commandes cryptiques les plus probables dans l'arbre n-gramme de niveau commande en commençant à la racine et en stockant les IDs de commandes cryptiques suivantes les plus probables dans une liste de suggestions d'auto complétion. Dans certains modes de réalisation, pour que la commande cryptique d'exécution soit complète et correcte, le processus d'auto correction et d'auto complétion extrait une ID de commande cryptique d'exécution à partir de la commande cryptique d'exécution complète en utilisant l'information de l'arbre n-gramme de niveau mot stocké. L'1D de commande cryptique d'exécution extraite est ajouté à la tin de la liste de niveau commande d'exécution. La liste de niveau commande d'exécution actualisée est par la suite stockée. 6 Dans certains modes de réalisation, la génération de suggestions d'auto complétion pour la commande cryptique d'exécution lorsqu'elle est vide, comprend de trouver le chemin dans l'arbre n-gramme de niveau commande stocké qui correspond le mieux avec la liste de ni veau commande d'exécution et de stocker les lDs de commandes cryptiques suivantes les plus probables dans une liste de suggestions d'auto complétion. Dans certains modes de réalisation, la génération de suggestions d'auto complétion traite une commande cryptique d'exécution qui n'est pas vide, donc, composée d'au moins un symbole cryptique. Au commencement, elle traverse l'arbre n-gramme de niveau mot en commençant par la racine et en procédant avec les mots cryptiques suivants de la commande cryptique d'exécution jusqu'au dernier noeud correspondant. Après quoi, elle recherche les mots cryptiques suivants les plus probables du dernier noeud dans l'arbre n-gramme de niveau mot et stocke les mots cryptiques suivants les plus probables dans la liste des suggestions d'auto complétion. La génération de suggestions d'auto complétion détermine par ailleurs le suffixe, représentant les symboles cryptiques à la fin de la commande cryptique d'exécution qui ne correspondent pas à un noeud dans l'arbre n-gramme de niveau mot. Si le suffixe n'est pas vide, il traverse l'arbre n-gramme de niveau symbole lié au mot en commençant à la racine et en procédant avec les symboles cryptiques suivants du suffixe jusqu'au dernier noeud correspondant et, à partir de là, continue vers toutes les feuilles. Finalement, il stocke les chemins résultants les plus probables, correspondant aux mots cryptiques, dans la liste de suggestions d'auto complétion. Dans certains modes de réalisation, la génération de suggestions d'auto complétion pour la commande cryptique d'exécution, lorsqu'elle est composée d'au moins un symbole cryptique met en oeuvre l'algorithme Needleman-Wunsch sur la commande cryptique d'exécution et sur les chemins dans l'arbre n-gramme de niveau mot stocké. Après avoir trouvé les mots cryptiques ou les séquences de mots cryptiques ayant les meilleures notations correspondantes, celle-ci sont stockées dans une liste de suggestions d'auto correction. Certains modes de réalisation mettent en oeuvre l'algorithme Needleman-Wunsch de façon incrémentale. Dans un premier exemple, l'aleorithme compare la commande cryptique d'exécution de façon incrémentale avec chaque mot de chaque chemin dans l'arbre n-gramme de niveau mot stocké. Dans un second exemple, l'algorithme compare de façon incrémentale chaque nouveau symbole cryptique entré dans la commande cryptique d'exécution avec un chemin entier de l'arbre n-gramme de niveau mot stocké. Dans chacun des deux exemples, les tableaux de notation résultant de comparaisons antérieures sont stockés temporairement pour des performances de calcul. Dans des modes de réalisation exemplaires, certaines procédures de séparation de texte du processus d'extraction de connaissances générales sont spécifiées plus précisément. Des procédures de séparation de texte sont des combinaisons d'une entropie basée sur la procédure de segmentation avec, soit une procédure de moyenne mobile pondérée, une procédure de moyenne mobile exponentielle, ou une procédure de vote majoritaire. Dans certains modes de réalisation exemplaires, les procédures de séparation de texte sont des combinaisons d'une information mutuelle basée sur une procédure de segmentation orientée-limite avec soit une procédure de moyennes mobiles pondérées, une procédure de moyennes mobiles exponentielles ou une procédure de vote majoritaire. Dans certains modes de réalisation, les votes de premier niveau et/ou deuxième niveau dans le processus d'extraction de connaissances générales sont des votes égaux. Dans certains modes de réalisation, les commandes cryptiques dans l'ensemble de données de formation sont les seules commandes cryptiques de sessions antérieures d'utilisateur. Faisant maintenant référence aux dessins ; la Fig. 1 illustre un environnement d'exploitation exemplaire. L'environnement inclut un ou plusieurs dispositifs clients 1, un serveur 2, et une ou plusieurs bases de données 3. Les dispositifs clients communiquent avec le serveur par l'intermédiaire d'un ou de plusieurs réseaux privés publics 4, p. ex. l'Intemet ou un réseau local. Le serveur 2 est connecté avec une ou plusieurs bases de données 3. Comme expliqué de façon plus détaillée ci-dessous, les bases de données 3 contiennent des données brutes et des connaissances extraites. Chaque système client 1 qui peut être un ordinateur de bureau, un ordinateur portable, une tablette informatique, un smartphone ou tout autre dispositif informatique pertinent, est implémenté sur un ou plusieurs dispositifs ou systèmes informatiques tels que le système informatique exemplaire S. Le système informatique inclut un processeur 501, une mémoire 502 et une interface de réseau 503. Par ailleurs, il peut inclure un écran 504, une unité de contrôle d'interface 505 et/ou un dispositif et un curseur de saisie alphanumérique 506. Le serveur inclut un processeur 201, une mémoire 202 et une interface de réseau 203 pour communiquer avec les clients 1. Il est arrangé pour héberger les programmes d'ordinateur avec un ensemble d'instructions pour mettre en ruvre le procédé de la façon décrite dans les présentes. Un ensemble d'instructions exécutables (c.-à-d. un logiciel) pour mettre en oeuvre 8 l'une quelconque ou toutes les méthodologies décrites dans les présentes, réside entièrement, au moins partiellement, de façon permanente dans la mémoire du serveur. Lorsque les instructions sont exécutées, les données du processus correspondantes résident dans la mémoire principale et/ou le processeur. Le serveur 2 est connecté à une ou plusieurs bases de données 3. Les bases de données contiennent des données de formation telle qu'un ensemble prédéfini de commandes cryptiques ou de commandes cryptiques entrées antérieurement. Les bases de données 3 incluent une connaissance extraite des données de formation. Cette connaissance est organisée en arbres n-gramme qui capturent l'information n-gramme relatives aux symboles cryptiques, aux mots cryptiques et aux IDs de commandes cryptiques dans l'ensemble des données de formation. Dans certains modes de réalisation, les données de formation et la connaissance extraite sont stockées dans la mémoire 202 du serveur et dans chaque mémoire 502 des systèmes client I qui ne sont pas dans des bases de données séparées 3. Dans d'autres modes de réalisation, les systèmes client I hébergent entièrement ou partiellement des programmes d'ordinateur qui sont arrangés pour satisfaire des caractéristiques du procédé comme décrit dans les présentes. Le serveur 2 héberge en plus des programmes d'ordinateur qui sont arrangés pour satisfaire les caractéristiques restantes du procédé. Selon une architecture logicielle exemplaire, le logiciel est, par exemple, programmé sur trois couches. Dans la représentation de couches de niveau abstrait de la Fig.2, ces trois couches sont : une couche de présentation 6, une couche logique 7 et une couche de données 8. L'architecture à trois couches permet aux parties spécifiques du procédé d'être programmées de façon modulaire au niveau du client et/ou du serveur. Par conséquent selon des facteurs cryptiques, p. ex. les ressources de calcul, la vitesse de connexion du réseau, la charge actuelle du réseau ou la capacité de la mémoire, pour satisfaire les caractéristiques du procédé les parties programmées du logiciel peuvent fonctionner sur des systèmes logiquement et/ou géographiquement indépendants. La couche de présentation 6 contient l'interface utilisateur 601, p. ex. une interface de ligne de commande, une interface graphique d'utilisateur, ou une interface vocale d'utilisateur qui permettent l'interaction humain-ordinateur. L'interface utilisateur 601 se situera habituellement sur les systèmes client I. Via l'interface utilisateur, l'entrée de l'utilisateur est transférée à la couche logique 7. Après le calcul des suggestions d'auto complétion et d'auto correction, celles-ci sont transférées vers l'utilisateur via l'interface utilisateur. La couche logique 7 est la partie centrale de l'architecture logicielle exemplaire. Cette couche interagit avec les deux autres couches et contient la logique du procédé tel qu'il est décrit dans les présentes. Elle contient principalement deux processus, le processus d'auto correction et d'auto complétion d'exécution 701 et le processus d'extraction de connaissances générales 702. Le processus d'auto correction et d'auto complétion d'exécution 701 reçoit une entrée de l'utilisateur, utilise les données de connaissance stockées dans la couche de données et stocke les entrées sous forme de données de formation dans la couche de données. Par ailleurs, les suggestions d'auto complétion et d'auto correction y sont calculées et transférées à l'interface utilisateur. Le processus d'extraction de connaissances générales 702 communique uniquement avec la couche de données 8, utilise les données de formation 801 et génère et stocke les données de connaissance 802. La couche de données 8 organise les données de formation 801 qui sont des données brutes consistant de commandes cryptiques ordonnées de façon temporaire et la donnée de connaissance 801 qui est une connaissance extraite structurée dans des arbres n-gramme. La connaissance qui est extraite par le processus d'extraction de connaissances générales 702 et organiser en arbres n-gramme. Les arbres n-gramme capturent les probabilités conditionnelles parmi les entités qui sont prises en considération, p. ex. les caractères, les mots ou les nombres ainsi que les symboles cryptiques, les mots cryptiques ou les commandes cryptiques. À titre d'illustration, la Fig. 3 montre un ensemble de données de formation de cinq mots de langage naturel et la génération de l'arbre n-gramme de niveau caractère correspondant. Un arbre n-gramme est composé d'un noeud de racine 10 et de plusieurs chemins vers les feuilles I l . Chaque chemin reflète une séquence d'entités. Le nombre d'occurrences des entités à une position spécifique du chemin est additionné et stocké à chaque noeud pour un usage ultérieur. La valeur d'un bord d'un noeud parent avec une profondeur à un noeud enfant s avec une profondeur i de l'arbre n-gramme peut être calculée par la formule Ni (silseq- count(seqi...1+ si) count(seqi_i) avec si étant l'entité du noeud enfant, sech_i étant la séquence i-1 des entités à partir de la racine du noeud parent et + étant la concaténation de deux séquences, des entités ou une séquence avec une entité. La valeur de count(seqi_i) dénote le nombre d'occurrences de seqi_i dans les données de formation et peut être directement trouvée dans l'arbre dans le 10 dernier noeud de la séquence. Le calcul de la valeur de bord correspond à la probabilité conditionnelle d'observation si après se qi_i. Ces probabilités conditionnelles sont aussi indiquées dans chacun des arbres n-gramme exemplaires de la Fig. 3. Par exemple. la probabilité du premier caractère peut être directement déterminée à partir de l'arbre : la probabilité d'observation d'un « h » est 0,8 et l'observation d'un « g » est 0,2. Autrement, comme autre exemple, nous avons la séquence «h-e-1 ». Si cela est observé, le prochain caractère comprend la même probabilité «1 » ou «m ». Le processus d'extraction de connaissances générales 702 génère trois niveaux d'arbres n-gramme : un arbre n-gramme de niveau symbole et un arbre n-gramme de niveau symbole lié au mot, un arbre n-gramme de niveau mot et un arbre n-gramme de niveau commande. Chaque structure de donnée d'arbre individuel capture des granularités différentes d'information n-gramme. L'arbre n-gramme de niveau symbole capture l'information n-gramme entre les symboles cryptiques, l'arbre n-gramme de niveau mot entre les mots cryptiques et l'arbre n-gramme de niveau commande entre les commandes cryptiques. La Fig. 4 montre un organigramme d'une version basique du processus d'extraction de connaissances générales 702. Au cours d'une première étape 12, le processus récupère la donnée de formation 801 dans la base de données ou dans une mémoire locale. Cette donnée de formation 801 consiste de commandes cryptiques ordonnées. Une commande cryptique est une collection de mots cryptiques ordonnés. Un mot cryptique : l'ID de la commande cryptique, est plus important que les autres. Ce mot est le porteur d'informations opérationnelles et le premier mot de la commande. Les mots cryptiques sont habituellement formulés sous forme d'abréviations de langage naturel signifiant des descriptions ; un exemple serait an dans la cryptique Amadeus qui représente la disponibilité numérique ou nce qui représente Nice (une ville dans le sud de la France). Les mots cryptiques sont composés de symboles cryptiques. Des exemples de telles commandes cryptiques sont anl 5iunparnce, an I .5 junparbeg et dneat 7. Dans un mode de réalisation, les symboles cryptiques font référence à des symboles ASCII individuels, mais cela n'est pas strictement défini. Dans d'autres modes de réalisation, les symboles cryptiques peuvent aussi faire référence à plus d'un caractère ASCII, p. ex. le nombre 17 qui est composé de deux caractères peut être considéré comme un symbole cryptique. Avec les données de formation 801, le processus commence à extraire la connaissance des trois niveaux. Le premier niveau est la connaissance de niveau symbole. Les commandes cryptiques 11 des données de formation sont segmentées en symboles cryptiques à l'étape 13. Par conséquent, tout analyseur qui sépare une séquence d'entités en entités seules peut être utilisé, p. ex. l'analyseur d'expressions rationnelles (regex) ou un analyseur de chaînes. Chaque commande cryptique est considérée séparément. À l'étape 14, l'arbre n-gramme de niveau symbole est créé de façon similaire à la description de la Fig. 3. Les symboles cryptiques de chaque commande cryptique définissent un chemin dans l'arbre n-gramme de niveau symbole. Après que toutes les commandes cryptiques des données de formation sont intégrées dans l'arbre de niveau symbole, les probabilités correspondantes sont calculées de la façon décrite ci-dessus. L'arbre n-gramme de niveau symbole final est ensuite stocké dans une base de données ou une autre mémoire à l'étape 15. Le second niveau est la connaissance de niveau mot. Les commandes cryptiques des données de formation sont segmentées en mots cryptiques à l'étape 16. Par conséquent, les informations de l'arbre n-gramme de niveau symbole générées antérieurement est nécessaire. Plusieurs procédures de segmentation de texte utilisent cette information. Elles sont combinées dans un procédé à vote hiérarchique qui est décrit plus en détail ci-dessous par référence à la Fig. 5. uand les positions de séparation finales de mots sont déterminées, les mots cryptiques des commandes cryptiques sont incorporés dans un arbre n-gramme de niveau mot. Par ailleurs, une variante de l'arbre n-gramme de niveau symbole est générée dans laquelle l'information n-gramme de niveau symbole est considérée comme étant liée aux mots cryptiques et non aux commandes cryptiques, c.-à-d. chaque chemine à partir de la racine vers les feuilles, illustre un mot cryptique. Cet arbre est par conséquent appelé arbre n-gramme de niveau symbole lié au mot. La même logique, similaire à la description de la Fig. 3 s'applique également à ces deux nouveaux arbres n-gramme. Après la génération de l'arbre n-gramme de niveau mot et de l'arbre de niveau symbole lié au mot à l'étape 17, ceux-ci sont stockés en mémoire à l'étape 18. Le troisième niveau est la connaissance au niveau de la commande. Ceci nécessite d'extraire les IDs de commandes cryptiques à partir des commandes cryptiques à l'étape 19. Par conséquent, sur la base de la connaissance de niveau mot, le premier mot de chaque commande cryptique est extrait. Du fait que la donnée de formation est temporairement ordonnée, il existe des relations parmi les commandes cryptiques dans le temps, telles que la position des symboles cryptiques dans les commandes cryptiques. Cela permet à nouveau la création d'un arbre n-gramme de niveau commande similaire à la description de la Fig. 3 qui se fait à l'étape 20. L'arbre n-gramme de niveau commande est finalement stocké dans la mémoire à l'étape 21 Pour déterminer les séparateurs de mots et pour générer la connaissance de niveau mot, un vote majoritaire hiérarchique est construit, pour déterminer les positions des séparateurs de mots cryptiques dans une commande cryptique 22. Dans l'exemple de la. Fig, 5, six procédures de segmentation de texte 23 sont utilisées et groupées en trois groupes 24. Une procédure de segmentation de texte 23 dans ce contexte est toute procédure qui détermine les positions pour diviser les séquences en parties. Dans certains modes de réalisation, ces procédures sont des procédures de segmentation basée sur l'entropie, des procédures de segmentation orientées-limite basée sur une information mutuelle et/ou ou une combinaison de celles-ci avec des procédures de moyenne mobile pondérée, des procédures de moyenne mobile exponentielle, ou des procédures de vote majoritaire. Certaines ou toutes les procédures de segmentation de texte peuvent suivre les mêmes règles, d'autres peuvent être totalement différentes. Faisant référence à l'exemple de la Fig. 5 : la commande cryptique 22 est anI5junparnce, qui devra être segmentée en mots cryptiques. La I e" procédure de segmentation de texte est une entropie basée sur la procédure de segmentation combinée avec une procédure de moyenne mobile pondérée et la 2` procédure de segmentation de texte une information mutuelle basée sur une procédure de segmentation orientée-limite. Les quatre autres procédures de segmentation sont l'une quelconque des procédures de segmentation de texte. La procédure exemplaire de segmentation basée sur l'entropie utilise les informations de l'arbre n-gramme de niveau symbole, avec X étant l'alphabet de la donnée de formation pour déterminer l'entropie. H(Xlseqi_ -EX s qi- g s qi_ La valeur d'entropie correspond aux distributions de probabilité de successeurs possibles d'une séquence de symboles cryptiques particulières seqi_i. Si les probabilités pour le caractère i potentiel sont dispersées parmi de nombreuses possibilités si- avec presque autant de probabilités équilibrées égales, la valeur d'entropie observée sera importante. Si d'autre part, il y a une probabilité n-gramme élevée pour un successeur, la valeur d'entropie est faible. Par conséquent, la valeur d'entropie explose si le nouveau symbole cryptique n'est pas clair, ce qui se produit le plus souvent à la fia d'un mot cryptique. Chaque fois que la valeur d'entropie augmente, la procédure de segmentation implique l'existence d'un séparateur de mots sur la position où l'entropie augmente. 13 La procédure de moyenne mobile pondérée est généralement une fonction de moyenne qui est définie au-dessus d'une fenêtre étendue et/ou glissante. Pour une combinaison avec une procédure de segmentation basée sur une entropie, la fenêtre est seulement étendue aux symboles cryptiques précédents parce que seuls ces derniers sont pertinents pour calculer l'entropie. L'information mutuelle exemplaire basée sur une procédure de segmentation orientée-limite utilise l'information mutuelle de l'arbre n-gramme de niveau symbole qui est défini comme rnt(seqAlseqB)= freq(seqA+seqa) freq(seqA) freq(seq13) Y Y avec seqA, seq R étant des séquences d'entités et + étant la concaténation de deux séquences. La valeur de freq(seqA) dénote le nombre d'occurrences de seqA et Y le nombre total d'entités dans la donnée de formation. Ces valeurs peuvent être extraites à partir des arbres n-gramme. Plus la valeur d'information mutuelle est élevée, plus il est probable que la séquence B suit la séquence A. Pour améliorer par ailleurs l'estimation d'une limite de mot, quatre valeurs différentes d'information mutuelle d'une fenêtre glissante autour de la limite de mot considérée sont envisagées. En prenant le minimum de celles-ci, on arrive à la formule finale de l'information mutuelle basée sur la procédure de segmentation orientée-limite. si 1) = min mi Mi Si_2 + Si_ il rni(s. 2 ÷ si_IIS- Si ) Une décision pour une limite de mots ut ensuite être atteinte si la valeur de cette formule est plus basse qu'un seuil. De retour maintenant à la segmentation de la commande cryptique an 5funparnce. L et be procédure de segmentation de texte arrivent à la segmentation anI15 funjparince, la. 2 anI15alunplarnIce, la e à an11 5iiimplarince et la 5e à an115VunIparnIce. Au fur et à mesure que les procédures de segmentation de texte sont groupées en trois groupes dans cet exemple, il y a trois votes de premier niveau parmi les procédures de séparation de texte à l'intérieur de chaque groupe au stade suivant. Dans certains modes de réalisation, ces votes sont des votes égaux D'autres procédures de vote sont possibles telles qu'un vote pondéré ou un vote dictatorial. Pour l'exemple de la Fig. 5, un vote égal est utilisé lequel est le plus visible sur le groupe 2. Il y a 3:0 votes pour une séparation entre an et 15..., 3:0 pour une séparation entre ... 15 et fun.... 14 2:1 pour une séparation entre ... jun et par... et 2:1 pour une séparation entre ...par et nce. Par conséquent, la décision du groupe est la segmentation anI15 junJparInce qui va dans un vote de second niveau parmi les groupes. La procédure de vote de second niveau peut être de nature différente, tel qu'un vote égal, un vote pondéré ou un vote dictatorial. Dans le présent exemple, un vote égal amène à la décision finale 25 du vote majoritaire hiérarchique : ani151funtparince. Ainsi, à l'aide de ce procédé de vote, l'extraction de connaissances générales segmente les commandes cryptiques en mots cryptiques, ici les mots an, jD, jun, par et nce et génère l'arbre n-gramme de niveau symbole lié au mot (voir Fig. 4). La Fig. 6 montre un organigramme du processus d'auto complétion et d'auto correction d'exécution basique 701. Une commande cryptique d'exécution, c'est-à-dire la saisie actuelle de l'utilisateur, est reçue à partir de l'interface utilisateur à l'étape 26. À la prochaine étape 27, le processus se divise en deux branches. Si l'entrée de l'utilisateur est une commande cryptique. complète et correcte, les suggestions d'autocorrection et d'auto complétion ne sont pas nécessaires, mais la commande cryptique est sauvegardée dans les données de formation, comme indiqué à l'étape 28. Cela permet un apprentissage dynamique des règles de syntaxe. La prochaine fois que le processus d'extraction de connaissances générales est amorcé, les données de formation contiennent ainsi plus d'informations. Dans certains modes de réalisation, cette branche du processus 701 d'auto correction et d'auto complétion d'exécution sauvegarde aussi temporairement une liste de niveau commande d'exécution ordonnée qui contient les IDs des commandes cryptiques d'exécution entrées précédemment dans la session actuelle d'utilisateur. Dans tout autre cas' c.-à-d. quand la commande cryptique est vide ou consiste d'au moins un symbole cryptique, le processus d'auto correction et d'auto complétion d'exécution génère une liste de suggestions d'auto corrections et d'auto complétions pour l'utilisateur à l'étape 29. Deux processus distincts sont désignés : une génération d`auto complétion 30 et une génération d'auto correction 31 qui renvoient toutes deux à une liste de suggestions. À l'étape 32, ces deux listes sont ensuite organisées en une liste finale de suggestions pour l'utilisateur. Dans certains modes de réalisation, les listes de suggestions ne contiennent aucun ordre ou ne sont pas ordonnées, par ex. par la probabilité de la suggestion ou des suggestions d'auto correction en premier lieu et des suggestions d'auto complétion en second lieu. Par ailleurs, la liste finale peut-être tronquée en un nombre de mots fixes au total et/ou en un nombre fixe de mots par 15 rapport à la catégorie de la suggestion. Des suggestions peuvent survenir dans les deux catégories, p. ex. les symboles cryptiques manquants à la fin d'une commande cryptique d'exécution amènent à une suggestion d'auto complétion et d'auto correction. Dans ces cas, une occurrence est effacée. À la fin de l'étape 33, a liste de suggestions est renvoyée à I 'utilisateur. Un mode de réalisation de la génération de suggestions d'auto complétion 30 est décrit dans la Fig. 7. Aux étapes 34 et 35, la commande cryptique d'exécution est analysée. Si la commande est vide, c.-à-d. l'utilisateur montre seulement l'intention d'entrer une commande cryptique d'exécution, mais ne l'a pas encore saisie et si la liste de niveau commande d'exécution est vide également, p. ex. il s'agit de la première entrée de l'utilisateur dans la session actuelle de l'utilisateur, l'étape 26 amène à la racine de l'arbre de niveau commande. Les commandes cryptiques avec la plus forte probabilité sur le bord de la racine de l'arbre n-gramme de niveau commande sont sélectionnés. Celles-ci sont ensuite stockées comme suggestions d'auto complétion à l'étape 37. Si la commande cryptique d'exécution est vide, mais que les listes d'exécution de niveau commande contiennent des entrées. il faut passer à l'étape 38. Les entrées de la liste sont comparées avec les entrées dans l'arbre n-gramme de niveau commande et le chemin qui correspond le mieux est sélectionné. À l'étape 39, les commandes cryptiques qui suivent le plus probablement le chemin correspondant sont stockées comme suggestions d'auto complétion. Si la commande cryptique d'exécution est composée d'au moins un symbole cryptique, le processus passe à l'étape 40 et commence à la racine de l'arbre n-gramme de niveau mot. Cet arbre est traversé à partir de la racine jusqu'au dernier mot cryptique correspondant à l'étape 4 L Les mots cryptiques qui suivent le plus probablement sont ensuite stockés dans la liste de suggestions d'auto complétion à l'étape 42. À l'étape 43, le suffixe, contenant les symboles cryptiques restants à la fin de la commande cryptique d'exécution qui ne correspondent à aucun mot cryptique, est déterminé. À l'étape 44, ce suffixe est analysé. Si le suffixe est vide, c.-à-d. que tous les symboles cryptiques des commandes cryptiques d'exécution peuvent être appariés à des mots cryptiques dans l'arbre n-gramme de niveau mot, le processus prend fin. Sinon, l'étape 45 mène à la racine de l'arbre n-gramme de niveau symbole lié au mot qui est traversé à l'étape 46 à partir de la racine en suivant les symboles cryptiques du suffixe jusqu'au dernier noeud correspondant. À l'étape 47, les chemins les plus probables à partir du dernier noeud 16 correspondant à chaque feuille atteignable sont déterminés. À l'étape 48, ceux-ci sont stockés dans la liste de suggestions d'auto complétion. Par exemple, si la commande cryptique d'exécution est an] 5jun l'arbre n-gramme de niveau mot est traversé de la racine à an et de 15 à fun. Les mots cryptiques ayant la plus forte probabilité de suivre le noeud jun peuvent être par (pour Paris), muc (pour Munich), et Ion (pour Londre). Ceux-ci seraient stockés dans la liste de suggestions et renvoyés. Si, dans un autre cas, la commande cryptique d'exécution est anl 5funp les mêmes activités décrites ci-dessus sont effectuées, mais en outre, le suffixe_k amène le procédé à chercher l'arbre n-gramme de niveau symbole lié au mot pour plus de suggestions d'auto complétion. Les mots cryptiques les plus probables commençant avec p peuvent être par (pour Paris), elt (pour Pékin). puai (pour Palma de Majorque) et im (pour Perth en Australie). Donc ces mots seront également inclus dans la liste de suggestions d'auto complétion et renvoyés. La Fig. 8 montre un organigramme pour un mode de réalisation de la génération de suggestions d'auto correction 31. À l'étape 49, la commande cryptique est analysée. Si la commande cryptique d'exécution est vide, il n'y a pas besoin de donner de suggestions d'auto correction. Par conséquent, des suggestions d'auto correction sont générées uniquement si des symboles cryptiques ont été entrés. Dans ce but, tous les chemins de l'arbre n-gramme de niveau mot sont comparés à la commande cryptique d'exécution. Les mots correspondant le mieux ou les séquences de mots (chemins) sont stockés dans la liste de suggestions d'autocorrection. À l'étape 50, un chemin de la racine à une feuille dans l'arbre n-gramme de niveau mot est sélectionné Dans ce mode de réalisation, l'algorithme Needleman-Wunsch est utilisé pour la comparaison de la commande cryptique d'exécution et de l'arbre n-gramme de niveau mot. L'étape 51 contient les étapes nécessaires à l'algorithme Needleman-Wunsch qui sont décrites ci-dessous. Ceci est effectué pour tous les chemins dans l'arbre n-gramme qui est illustré par les étapes 52 et 53. À la fin de l'étape 54, les séquences de mots correspondant le mieux sont stockées dans la liste d'auto corrections. L'algorithme Needleman-Wunsch détermine un tableau de notation avec des notations correspondantes de deux commandes cryptiques. Le tableau est basé sur une chaîne verticale 55, la commande cryptique du chemin dans l'arbre n-gramme de niveau mot et une chaîne horizontale 56, la commande cryptique d'exécution. Une représentation visuelle de ce tableau est montrée dans la Fig. 9. La première colonne du premier rang est préremplie avec des valeurs qui correspondent pour compléter le défaut d'appariement, c.-à-d. en commençant 17 de 0 dans le coin supérieur gauche et chaque mésappariement conduit à moins 1. Le tableau est calculé du haut à gauche au bas à droite en utilisant un principe simple, mais très efficace en ne tenant compte uniquement que des trois voisins de c j]. Ces voisins sont : le voisin à la diagonale supérieure gauche c[i-1, j-1]. le voisin supérieur c[i-1, j], et le voisin gauche c 1]. Plus précisément, il y a trois mouvements possibles : - En diagonale de c[i-1, j-1] à Vers le bas de c[i-1, j] à - 1,j - 1] + r - 1,j] + d - 11+ d - Vers la droite de c [i, j-1] à Le mouvement diagonale correspond â un appariement entre les symboles cryptiques si et si. Les valeurs basiques pour la récompense r et la pénalité d sont par exemple r = 1 si si = s1, 1 si si # sj et d = 1. Le mouvement vers le bas représente une introduction à un marqueur de symbole dans la chaîne horizontale. Ce mouvement inclut une pénalité pour l'incapacité à apparier un symbole dans la chaîne verticale. Un curseur est stocké dans le tableau indiquant quel mouvement a amené à la valeur d'une cellule. Une fois que le tableau entier est calculé, la façon dont le tableau a été calculé peut être reproduite à partir du coin droit inférieur. Cette façon de procéder indique comment les mots diffèrent (c.-à-d. s'ils sont égaux à l'exception d'un, de deux ou de plusieurs symboles et où se trouvent les différences. Au coin inférieur droit, une notation finale correspondante peut être trouvée qui, par ailleurs, peut être utilisée pour déterminer les meilleures séquences correspondantes à stocker dans la liste de suggestions d'auto correction. Dans certains modes de réalisation, une matrice de récompense est utilisée pour déterminer r =- récompense[s1,s1]. Dans ce cas, une correspondance doit être interprétée dans un sens plus large. Une correspondance indique que la récompense que l'on obtient à partir de la matrice de récompense est plus importante que la pénalité d. Une pénalité plus petite que la pénalité d est aussi considérée comme une récompense logique. La matrice de récompense est remplie avec les valeurs suivantes inspirées par le déplacement de caractères sur un clavier physique : Les symboles cryptiques sont appariés : la récompense est A Les symboles cryptiques sont des voisins proches la récompense est C Les symboles cryptiques sont des voisins éloignés : la récompense est F Les symboles cryptiques sont mésappariés : la récompense est M 18 Cette matrice de récompense est initialisée comme une matrice symétrique, signifiant que récompense [si, si] récompense[sps Les correspondances sont des symboles cryptiques qui sont simplement les mêmes. Les voisins proches sont des symboles cryptiques avec des caractères physiquement adjacents sur un clavier. Les voisins éloignés sont des symboles cryptiques avec leur caractère correspondant se trouvant une clé plus loin que les voisins proches. Enfin, les symboles cryptiques mésappariés sont tous les autres caractères sur le clavier. Par conséquent un bon choix est A > C > F > M, avec If étant négatif avec la valeur de la pénalité d. Des valeurs exemplaires sont A = 5, C = 3, F = 1 and M = - 1. Dans un exemple, la matrice de récompense a aussi la capacité d'apprendre la proximité logique des caractères entrés au cours de l'exécution. Chaque fois qu'une erreur de frappe particulière est reconnue, la récompense est augmentée. Afin d'éviter la croissance illimitée de récompense pour certains caractères, une approche lissante est appliquée dans la stratégie d'apprentissage. Ainsi, deux caractères, ayant été initialisés comme un mésappariement au début, peuvent converger vers une correspondance si l'utilisateur commute ces caractères assez souvent. Il est important de remarquer que la symétrie de la matrice disparaîtra au cours de l'exécution. Ceci un comportement souhaité puisqu'en raison de la forme asymétrique des mains humaines il y a un biais empirique intrinsèque vers une direction des erreurs. Il est peu probable de faire une erreur en utilisant le pouce qu'en utilisant l'index. Dans d'autres modes de réalisation, l'algorithme Needleman-Wunsch est mis en oeuvre sur la commande cryptique d'exécution et de façon incrémentale sur chaque mot dans les chemins de l'arbre n-gramme de niveau mot stocké. Une procédure exemplaire est décrite dans la Fig.1 0. La commande cryptique d'exécution est à nouveau représentée comme une chaîne horizontale dans le tableau de notation. Un premier tableau de notation est calculé avec le premier rang du tableau étant initialisé comme un mésappariement absolu. Â ce stade, l'algorithme NeedlemanWunsch d'origine est mis en oeuvre, entre la commande cryptique d'exécution et le premier mot cryptique d'un chemin dans l'arbre n-gramme de niveau mot en commençant par la racine. Le tableau de notation résultant est temporairement stocké. Ensuite, le prochain mot dans le chemin est comparé avec la commande cryptique d'exécution. Par conséquent, un tableau de notation vide est créé. Par contraste à l'initialisation du tableau de notation précédent, le premier rang est maintenant initialisé avec des valeurs du dernier rang du tableau de notation précédent. L'algorithme Needleman-Wunsch est à nouveau mis en oeuvre et le tableau de notation résultant est stocké. Cette procédure est répétée pour les prochains mots cryptiques dans le chemin. Tous 19 les tableaux de notation incrémentale sont mis ensemble pour obtenir une matrice entière de notation. Cette approche incrémentale présente plusieurs avantages parce qu'il y a plusieurs chemins dans l'arbre n-gramme de niveau mot qui coïncident sur beaucoup de noeuds. Dans l'exemple de la Fig. 10, la commande cryptique afr71171fullparince a les trois premiers noeuds dans l'arbre n-gramme de niveau mot en commun avec an! I 7[jullpatlInce. Les trois divisions après le noeud lui. Ainsi, avec la procédure incrémentale de l'algorithme Needleman-Wunsch, la comparaison avec les trois premiers noeuds n'a besoin d'être calculée qu'une fois. Cela résulte en une diminution substantielle de besoins de calcul et de mémoire. En outre, un critère s'arrêtant tôt peut par ailleurs réduire les besoins de calcul. De petites entrées dans le tableau de notation indiquent qu'il y a déjà de très grosses différences entre la commande cryptique d'exécution et le chemin dans l'arbre n-gramme de niveau mot jusqu'à ce point. Ainsi, un seuil peut empêcher le procédé de calculer d'autres tableaux de notation dans ce chemin. Une autre approche incrémentale de P algorithme Needleman-Wunsch est aussi appliquée dans d'autres modes de réalisation. Dans rexemple d'une approche incrémentale décrit précédemment, le tableau de notation est divisé horizontalement en fonction des mots dans l'arbre n-gramme de niveau mot. Dans cet exemple le tableau de notation est divisé verticalement selon de nouveaux symboles cryptiques entrés dans la commande cryptique d'exécution. La logique derrière cette division horizontale et verticale est la même. La seule différence vient de la forme des incréments. Dans le cas d'une division horizontale, les incréments sont de la taille d'un mot cryptique alors que dans le cas de la division verticale les incréments sont de la taille d'un symbole cryptique, Les deux versions incrémentales de l'algorithme Needleman-Wunsch peuvent être utilisées séparément ou peuvent aussi être combinées. Leur combinaison est illustrée dans la Fig.11. La commande cryptique d'exécution était anj171itillpar pour l'exécution précédente de l'algorithme Needleman-Wunsch. Les tableaux de notation incrémentale ont donc été calculés et ont été stockés. L'utilisateur saisit un nouveau symbole cryptique, dans cet exemple le n. Les tableaux de notation stockés précédemment reçoivent une nouvelle colonne et seules les notations correspondantes pour le nouveau symbole cryptique n doivent être calculées. Ceci peut à nouveau réduire de façon substantielle le calcul et les ressources de mémoire. 20 REVENDICATIONSUn procédé pour l'auto complétion et l'auto correction de tangage cryptique avec un apprentissage dynamique des règles de syntaxe, mené par un système informatique, le langage cryptique contient des commandes cryptiques dans lequel chaque commande cryptique est composée de mots cryptiques non segmentés, dans lequel chaque mot cryptique est composé de symboles cryptiques, le procédé comprenant deux processus automatiques, un processus d'extraction de connaissances générales et un processus d'auto complétion et d'auto correction d'exécution, dans lequel le processus d'extraction de connaissance générale comprend - la réception à partir d'une base de données d'un ensemble de données de formation contenant une collection de commandes cryptiques ordonnées temporellement ; - la segmentation des commandes cryptiques en symboles cryptiques ; la création d'un arbre n.-gramme de niveau symbole en utilisant l'information dans l'ensemble des commandes cryptiques segmentées en symboles cryptiques, dans laquelle l'arbre n-gramme de niveau symbole capture l'information n-gramme entre les symboles cryptiques ; - le stockage de l'arbre n-gramme de niveau symbole ; - la détermination des positions des séparateurs entre ]es mots cryptiques à l'intérieur des commandes cryptiques en appliquant un vote majoritaire hiérarchique qui utilise l'information de l'arbre n-gramme de niveau symbole, le vote majoritaire hiérarchique comprend : - le groupement au moins d'une procédure de séparation de texte dans au moins un groupe ; - la détermination, par ladite au moins une procédure de séparation de texte, des positions des séparateurs de mots cryptiques ; - la détermination, par un premier niveau de vote parmi les procédures de séparation de texte à l'intérieur de chaque groupe, des positions pour les séparateurs de mots cryptiques ; et par la suite - la détermination, par un second niveau de vote parmi les groupes, des positions finales pour les séparateurs de mots cryptiques ; 21 - la segmentation des commandes cryptiques en mots cryptiques sur la base des positions finales déterminées par le vote majoritaire hiérarchique ; la création d'un arbre n-gramme de niveau mot et d'un arbre n-gramme de niveau symbole lié au mot en utilisant l'information des commandes cryptiques segmentées en mots cryptiques, dans laquelle l'arbre n-gramme de niveau mot capture l'information n-gramme entre les mots cryptiques et l'arbre n-gramme de niveau symbole lié au mot capture l'information n-gramme entre les symboles cryptiques à l'intérieur des mots cryptiques ; - le stockage des arbres n-gramme de niveau mot et de niveau symbole lié au mot ; - l'extraction des IDs de commandes cryptiques à partir des commandes cryptiques, dans laquelle une ID de commande cryptique est le premier mot cryptique au commencement de la commande cryptique, en utilisant l'information de l'arbre n-gramme de niveau mot ; - le stockage d'un ensemble de données de formation modifiées contenant les IDs de commandes cryptiques ordonnées temporellement ; la création d'un arbre n-gramme de niveau commande en utilisant l'information de l'ensemble des données de formation modifiées, dans laquelle l'arbre n-gramme de niveau commande capture l'information n-gramme entre les IDs de commandes cryptiques ; et - le stockage de l'arbre n-gramme de niveau commande ; et le processus d'auto complétion et d'auto correction d'exécution comprend : - la réception, via une interface utilisateur, d'une commande cryptique d'exécution, dans laquelle la commande cryptique d'exécution est soit vide, soit composée d'au moins un symbole cryptique ; la génération de suggestions d'auto correction et d'auto complétion pour l'exécution de la commande cryptique, dans laquelle la génération des suggestions est basée sur les informations de connaissance extraites relatives au langage cryptique stocké au niveau symbole, au niveau symbole lié au mot et dans les arbres n-gramme de niveau commande ; - le renvoi, via l'interface utilisateur à l'utilisateur, des suggestions d'auto correction et d'auto complétion pour la commande cryptique d'exécution ; et - l'actualisation, pour que la commande cryptique d'exécution soit complète et correcte, dans la base de données, de l'ensemble de données de formation stocké 22 des commandes cryptiques en ajoutant la commande cryptique d'auto complétion d'exécution. 2. Le procédé selon la revendication I, dans lequel la génération des suggestions d'auto complétion, en réponse à une commande cryptique d'exécution vide, comprend; - la recherche des IDs de commandes cryptiques les plus probables dans l'arbre n- gramme de niveau commande en commençant à la racine ; et le stockage le plus probable suivant les IDs de commandes cryptiques dans une liste de suggestions d'auto complétion. 3. Le procédé selon l'une quelconque des revendications 1 ou 2, dans lequel le processus d'auto correction et d'auto complétion d'exécution, en réponse à la commande cryptique d'exécution s'avérant complète et correcte, comprend par ailleurs : - l'extraction d'un ID de commande cryptique d'exécution à partir de la cornu= e cryptique d'exécution complète, dans laquelle l'ID de commande cryptique d'exécution est le premier mot cryptique au commencement de la commande cryptique d'exécution finale, en utilisant l'information de l'arbre n-gramme de niveau mot stocké : - l'ajout de l'ID de commande cryptique d'exécution extraite à la fin de la liste de niveau commande d'exécution ; et le stockage de la liste de niveau commande d'exécution actualisée. 4. Le procédé selon la revendication 3, dans lequel la génération des suggestions d'auto complétion, en réponse à la commande cryptique d'exécution s'avérant vide, comprend : - la recherche, dans l'arbre n-gramme de niveau commande stocké du chemin correspondant le mieux à la liste de niveau commande d'exécution ; et - le stockage des IDs de commandes cryptiques les plus probables suivantes dans une liste de suggestions d'auto complétion. 5. Le procédé selon l'une quelconque des revendications I à 4, dans lequel la génération des suggestions d'auto complétion, en réponse à la commande cryptique d'exécution étant composé d'au moins un symbole cryptique, comprend : 23 la traversée de l'arbre n-gramme de niveau mot en commençant à la racine et en procédant avec les mots cryptiques suivants de la commande cryptique d'exécution jusqu'au dernier noeud correspondant ; - la recherche des mots cryptiques suivants les plus probables du dernier noeud dans l'arbre n-gramme de niveau mot ; - le stockage des mots cryptiques suivants les plus probables dans la liste des suggestions d'auto complétion; - la détermination du suffixe, dans lequel le suffixe représente les symboles cryptiques à la fin de la commande cryptique d'exécution qui ne correspondent pas à un noeud dans l'arbre n-gramme de niveau mot ; - en réponse au suffixe ne s'avérant pas vide : - la traversée de l'arbre n-gramme de niveau symbole lié au mot en commençant à la racine et en procédant avec les symboles cryptiques suivants du suffixe jusqu'au dernier noeud correspondant ; - la traversée de l'arbre n-gramme de niveau symbole lié au mot, à partir de là, vers toutes les feuilles ; et - le stockage des chemins résultants les plus probables, correspondant aux mots cryptiques, dans la liste des suggestions d'auto complétion ; 6. Le procédé selon l'une quelconque des revendications I à 5, dans lequel la génération des suggestions d'auto complétion, en réponse à la commande cryptique d'exécution étant composé d'au moins un symbole cryptique, comprend : - la mise en oeuvre de l'algorithme Needleman-Wunsch sur la commande cryptique d'exécution et sur l'arbre n-gramme de niveau mot stocké ; et - le stockage des mots cryptiques ou des séquences de mots cryptiques avec les meilleures notations correspondantes dans une liste de suggestions d'auto complétion. 7. Le procédé selon la revendication 6, dans lequel l'algorithme Needleman-Wunsch est mis en oeuvre sur la commande cryptique d'exécution et de façon incrémentale sur chaque mot dans les chemins de l'arbre n-gramme de niveau mot stocké, dans lequel le tableau de notations résultant de comparaisons antérieures est stocké temporairement. 24 8. Le procédé selon l'une quelconque des revendications 6 ou 7, dans lequel l'algorithme Needleman-Wunsch est mis en oeuvre de façon incrémentale sur chaque nouveau symbole cryptique entré de la commande cryptique d'exécution et sur l'arbre n-gramme de niveau mot stocké, dans lequel les tableaux résultants de notations des comparaisons antérieures sont temporairement stockés. 9. Le procédé selon l'une quelconque des revendications I à 8, dans lequel une procédure de séparation de texte du processus d'extraction de connaissances générales est une combinaison d'une entropie basée sur la procédure de segmentation avec soit : - une procédure de moyenne mobile pondérée ; - une procédure de moyenne mobile exponentielle ; ou - une procédure de vote majoritaire. 10. Le procédé selon l'une quelconque des revendications 1 à 9, dans lequel au moins une procédure de séparation de texte du processus d'extraction de connaissances générales est une combinaison d'une information mutuelle basée sur la procédure de segmentation orientée-limite avec soit : une procédure de moyenne mobile pondérée ; - une procédure de moyenne mobile exponentielle ; ou - une procédure de vote majoritaire. 11. Le procédé selon l'une quelconque des revendications 1 à 10, dans lequel au moins un des votes dans le processus d'extraction de connaissances générales est un vote égal. 12. Le procédé selon l'une quelconque des revendications 1 à 11, dans lequel les commandes cryptiques dans l'ensemble de données des formations sont les seules commandes cryptiques de sessions antérieures d'utilisateurs. 13. Un système informatique pour l'auto complétion et l'auto correction de langage cryptique avec un apprentissage dynamique des règles de syntaxe, le langage cryptique contenant des commandes cryptiques, dans lequel chaque commande cryptique est composée de mots cryptiques non segmentés, dans lequel chaque mot cryptique est composé de symboles cryptiques, le système comprenant : au moins un processeur ; et 25 une mémoire couplée à un ou à plusieurs processeurs, la mémoire stockant des données comprenant le code de programme qui, lorsqu'il est exécuté par un ou plusieurs processeurs, amène le système à mettre en oeuvre deux processus automatiques, un processus d'extraction de connaissances générales et un processus d'extraction de connaissances d'exécution, dans lequel le processus d'extraction de connaissance générale comprend la réception à partir d'une base de données d'un ensemble de données de formation contenant une collection de commandes cryptiques ordonnees temporellement ; - la segmentation des commandes cryptiques en symboles cryptiques ; - la création d'un arbre n-gramme de niveau symbole en utilisant l'information dans l'ensemble des commandes cryptiques segmentées en symboles cryptiques, dans laquelle l'arbre n-gramme de niveau symbole capture l'information n-gramme entre les symboles cryptiques ; - le stockage de l'arbre n-gramme de niveau symbole ; - la détermination des positions des séparateurs entre les mots cryptiques à l'intérieur des commandes cryptiques en appliquant un vote majoritaire hiérarchique qui utilise l'information de l'arbre n-gramme de niveau symbole, le vote majoritaire hiérarchique comprend : - le groupement au moins d'une procédure de séparation de texte dans au moins un groupe - la détermination, par ladite au moins une procédure de séparation de texte, des positions des séparateurs de mots cryptiques ; - la détermination, par un premier niveau de vote parmi les procédures de séparation de texte à l'intérieur de chaque groupe, des positions pour les séparateurs de mors cryptiques : et par la suite - la détermination, par un second niveau de vote parmi les groupes, des positions finales pour les séparateurs de mots cryptiques ; - la segmentation des commandes cryptiques en mots cryptiques sur la base des positions finales déterminées par la procédure de vote majoritaire hiérarchique ; - la création d'un arbre n-gramme de niveau mot et d'un arbre n-gramme de niveau symbole lié au mot en utilisant l'information des commandes cryptiques segmentées en mots cryptiques, dans laquelle l'arbre n-gramme de niveau mot capture l'information n-gramme entre les mots cryptiques et l'arbre n-gramme de 26 niveau symbole lié au mot capture l'information n-gramme entre les symboles cryptiques à l'intérieur des mots cryptiques ; - le stockage des arbres n-gramme de niveau mot et de niveau symbole lié au mot ; - l'extraction des IDs de commandes cryptiques à partir des commandes cryptiques, dans laquelle une ID de commande cryptique est le premier mot cryptique au commencement de la commande cryptique, en utilisant l'information de l'arbre n-gramme de niveau mot ; le stockage d'un ensemble de données de formation modifiées contenant les IDs de commandes cryptiques ordonnées temporellement ; - la création d'un arbre n-gramme de niveau commande en utilisant l'information de l'ensemble des données de formation modifiées, dans laquelle l'arbre n-gramme de niveau commande capture l'information n-gramme entre les IDs de commandes cryptiques ; et - le stockage de l'arbre n-gramme de niveau commande ; et le processus d'auto complétion d'exécution et d'auto correction comprend . - la réception, via une interface utilisateur, d'une commande cryptique d'exécution, dans laquelle la commande cryptique d'exécution est, soit vide, soit composée d'au moins un symbole cryptique ; - la génération de suggestions d'auto correction et d'auto complétion pour la commande cryptique d'exécution, dans laquelle la génération des suggestions est basée sur les informations de connaissance extraites relatives au langage cryptique stocké de niveau symbole et dans les arbres n-gramme de niveau commande ; - le renvoi, via l'interface utilisateur de l'utilisateur, des suggestions d'auto correction et d'auto complétion pour la commande cryptique d'exécution et - l'actualisation, pour que la commande cryptique d'exécution soit complète et correcte, dans la base de données, de l'ensemble des données de formation stocké des commandes cryptiques en ajoutant la commande cryptique d'exécution finale. 14. Le système informatique selon la revendication 13, dans lequel les instructions lors de l'exécution amènent par ailleurs le système à mettre en oeuvre le procédé selon l'une quelconque des revendications 2 à 12. 27 15. Un produit-programme d'ordinateur, stocké sur un support non transitoire lisible par ordinateur, dans lequel le code de programme exécuté sur un système informatique est arrangé pour mettre en oeuvre les étapes du procédé selon l'une quelconque des revendications 1 à I 2.