Brevet FR2941072A1 — publié le 20100716

Procédé et système de prédiction de texte La présente invention concerne le domaine de la prédiction de texte à partir d'un premier ensemble de caractères, par exemple saisi par un utilisateur. L'invention concerne en particulier un procédé et un système de prédiction de la suite d'un message textuel formé d'une séquence de caractères représentée par un signal d'entrée. De nombreuses applications utilisent des systèmes de prédiction pour assister un utilisateur dans la saisie de texte. De tels systèmes permettent notamment de pallier les difficultés liées à la miniaturisation des interfaces, par exemple dans les téléphones mobiles (12 touches), les � Pocket PC � ou � PDA � (avec des écrans tactiles réduits), interfaces dédiées au handicap... On connait des systèmes, comme par exemple le mode � T9 �, proposé dans les téléphones mobiles, qui déterminent a posteriori des caractères saisis de manière indéfinie. Ce type de système ne propose pas de suite aux caractères déjà saisis à l'utilisateur. D'autres systèmes de prédiction de l'art antérieur proposent quant à eux des suites aux caractères déjà saisis, mais sont confrontés à une difficulté portant sur le choix entre des propositions longues mais peu probables et des propositions courtes mais très probables. Les propositions longues permettent de progresser rapidement dans la saisie textuelle, mais elles conviennent rarement à l'utilisateur. Les propositions courtes répondent plus souvent à ses attentes, mais ne permettent pas une progression rapide. Les systèmes de l'art antérieur sont spécialisés sur l'une ou l'autre stratégie. Ils n'offrent 20 pas de possibilité de combiner ces deux stratégies. Par ailleurs, les propositions faites par les systèmes de l'art antérieur souffrent souvent d'un manque de pertinence sémantique ou grammaticale par rapport au début de phrase déjà saisi. Dans l'art antérieur, la prédiction n'est en général basée que sur le début du mot en cours 25 de saisie. Les mots précédents sont rarement pris en compte, et jamais d'une manière satisfaisante. Cette approche est motivée par le fait qu'il est très peu probable d'observer dans le corpus d'apprentissage, duquel le système essaye de déduire des propositions, une suite de mots identique à celle déjà saisie. Ainsi, tenir compte d'une suite de caractères déjà saisis plus longue serait trop contraignant pour le moteur de prédiction, qui serait alors presque toujours incapable 30 de faire des propositions. On connait des solutions qui s'attachent à essayer de contraindre les prédictions par des considérations syntaxiques, mais elles restent peu performantes et ne permettent pas de résoudre les problèmes d'incohérence lexicale. Le document US 2003 234821 Al décrit une technique de complétion du mot en cours de saisie dans laquelle un dictionnaire de mots auxquels sont adjoints des "argument codes" est utilisé. Par exemple, les arguments concernent le domaine de chaque mot : sport, musique ... Tous les mots entièrement saisis par l'utilisateur sont recherchés dans ce dictionnaire, de sorte à obtenir une liste des "arguments code" pertinents par rapport au texte déjà saisi. Etant donné un mot partiellement saisi, le dictionnaire est dans un premier temps scanné pour obtenir une liste des mots qui commencent de la même manière, ainsi que leurs � arguments code �. Ensuite, le système sélectionne au sein de cette liste la ou les entrées qui s'approchent au mieux des � arguments code � des mots précédents. Plus généralement, la méthode propose de sélectionner un ou des mots selon un critère de probabilité estimé à partir des mots déjà saisis. Ce type de méthode fonctionne mot par mot. Ainsi, il ne permet pas d'arbitrer entre différentes longueurs de prédiction. De plus, la probabilité est estimée d'après les mots déjà saisis, par exemple en se fondant sur le champ lexical. Cette probabilité permet de classer entre elles les entrées du dictionnaire correspondant au début de mot saisi par l'utilisateur, cependant, il n'y a aucune prise en compte des suites de mots possibles ou non dans la langue, et encore moins de leur fréquence. Un objet de la présente invention est d'accroître la pertinence des prédictions en tenant compte des mots précédant le ou les mots en cours de saisie, de manière peu contraignante. La présente invention vise également à améliorer l'arbitrage entre différentes longueurs de prédiction, de manière à pouvoir obtenir des propositions allant de quelques lettres à une phrase entière, en fonction d'un score estimé sur la base du corpus d'apprentissage. La présente invention trouve notamment des applications dans les interfaces de saisie de texte sur téléphone mobile, pour permettre une saisie rapide de messages textuels sur la base d'une interface de saisie avec un corpus textuel d'apprentissage qui est soit généraliste, soit composé de phrases propres de l'utilisateur. De manière générale, cette invention est applicable à tous les domaines où il est intéressant d'assister un utilisateur dans sa saisie de texte. En particulier, elle est applicable à tous les cadres d'utilisation courants nécessitant une réduction drastique des moyens d'interaction homme-machine : mobilité (� smartphone � / � PocketPC �), consoles de jeu vidéo, interfaces dédiées au handicap ... A cet effet, selon un premier aspect, la présente invention propose un procédé de traitement d'un signal d'entrée, mis en oeuvre par des moyens informatiques, pour prédire la suite d'un message textuel formé d'une séquence de caractères représentée par le signal d'entrée, comportant les étapes suivantes : a) déterminer des suites de caractères possibles pour compléter la séquence de caractères représentée par le signal d'entrée ; b) attribuer un score de prédiction à des caractères des suites de caractères possibles ; et c) sélectionner au moins une partie initiale d'au moins une suite possible pour former un candidat pour prédire la suite de la séquence de caractères représentée par le signal d'entrée, au moins en fonction des scores de prédiction associés aux caractères des suites possibles. Dans le cadre de la présente invention : - on entend par � séquence de caractères représentée par le signal d'entrée �, une suite de symboles pouvant représenter un texte. Ces symboles peuvent être de toute sorte, comme des lettres d'un alphabet, des chiffres, des signes de ponctuation, ou autre. Par exemple, le texte est obtenu d'un utilisateur via un clavier qui code les symboles et les transforme en signaux physiques, et on propose à l'utilisateur, par exemple via un écran, une ou plusieurs prédictions pour la suite du texte. - on entend par � sous-séquence de caractères �, une partie de caractères consécutifs de la séquence d'entrée. Dans la suite, on pourra désigner la sous séquence par � historique � ou � passé �. Dans certains cas, on envisagera plusieurs sous-séquences de caractères, ainsi on se référera à des historiques ou des passés au pluriel, et ce, pour un même message textuel à prédire. - on entend par � candidat �, une suite de caractères jugée comme potentiellement satisfaisante pour l'utilisateur pour compléter son message textuel. Bien entendu, on pourra proposer un ou plusieurs candidats à l'utilisateur. Les candidats peuvent correspondre à des � suites possibles � ou correspondre à une troncature de celles-ci selon les scores attribués. - les termes � message textuel �, � phrase �, ou encore � mot � sont utilisés pour la clarté de l'exposé et ne limitent pas les possibilités offertes par la présente invention. Ainsi, par exemple, un mot peut être considéré comme une phrase particulière. La présente invention, telle que défmie brièvement plus haut, se propose donc de prédire des fragments de mots, des mots entiers, des fragments de phrase, des phrases entières, ou autres. Les prédictions proposées sont par conséquent de longueur variable, en fonction d'un arbitrage fondé sur le score de prédiction, par exemple, les prédictions peuvent n'être composées que de quelques lettres ou d'une phrase entière. A titre d'exemple, à partir de la séquence d'entrée dans la langue française "Je suis he", la présente invention peut prédire "heureu" qui n'est pas un mot mais une suite de caractères commune aux mots "heureux" et "heureusement". Il en est de même pour la séquence d'entrée dans la langue française "Salut com", à partir de laquelle il est possible de prédire "comment ça va ?" ou "comment vas-tu ?" qui sont des candidats de plusieurs mots avec de la ponctuation. La présente invention permet par conséquent de proposer des prédictions qui sont pertinentes par rapport au texte déjà saisi, et plus conformes aux tournures classiques. La présente invention permet une grande flexibilité dans l'implémentation de stratégies d'arbitrage entre plusieurs candidats. En outre, l'utilisation de scores de prédiction pour les caractères des suites possibles permet une sélection aisée et rapide de candidats les plus pertinents. Dans des réalisations avantageuses, la prédiction est réalisée à partir d'un corpus de prédiction dont les caractères sont stockés dans une mémoire des moyens informatiques, et l'étape a) comporte les sous-étapes suivantes : al) déterminer un ensemble de sous-séquences de caractères consécutifs de la séquence d'entrée, chacune desdites sous-séquences se terminant par le dernier caractère de la séquence d'entrée ; a2) pour chaque sous-séquence, rechercher dans le corpus, des passages comportant la sous-séquence, et pour chaque passage trouvé, sélectionner un sous-passage commençant par le caractère suivant le dernier caractère commun au passage et à la sous-séquence, ledit sous-passage formant une suite de caractères possible. De plus, dans cette réalisation, les scores de prédiction sont calculés en fonction des résultats des recherches. Ainsi, on peut réaliser des prédictions qui tiennent compte de plusieurs longueurs de passés. On enrichit ainsi l'ensemble de suites possibles à considérer pour former des candidats. De manière avantageuse, les scores de prédiction tiennent compte de l'origine de chaque caractère comme résultat d'une recherche. Par cette mesure on peut par exemple arbitrer de manière très flexible entre taille de séquence prédite et pertinence de celle-ci, par exemple par rapport au corpus de recherche. Dans un mode de réalisation avantageux de l'invention, pour un caractère courant d'une suite possible courante, on prévoit en outre les étapes : d) rechercher au sein des résultats de chaque recherche, un ou plusieurs caractères suivant le caractère courant dans des passages du corpus ; e) attribuer à chaque caractère issu de l'étape d), un score d'occurrence dans les résultats de l'ensemble des recherches ; et f) calculer le score de prédiction associé au caractère courant au moins en fonction des scores d'occurrence attribués à l'étape e). Dans ce mode de réalisation, on peut opérer directement une sélection de suites possibles pertinentes dans les résultats des recherches des sous-séquences dans le corpus. On peut en outre prévoir que : - les sous-séquences déterminées à l'étape al) sont de tailles différentes, - lors de l'étape e), pour chaque caractère issu de l'étape d), on attribue un score composé calculé à partir de différents scores d'occurrence du caractère dans chacun des résultats de recherche, en accordant une importance aux scores qui est fonction de la taille de la sous- séquence sur laquelle a été réalisée chaque recherche, et - lors de l'étape f), on calcule le score de prédiction au moins en fonction du score composé. Ainsi, on peut affiner les scores, en établissant une pondération de plusieurs scores 20 calculés en fonction des recherches pour chaque sous-séquence. Selon une réalisation avantageuse, on recherche un successeur au caractère courant pour former le candidat, seulement si le score composé du caractère courant est supérieur à un premier seuil donné. Ainsi, on accélère le traitement par économie de calcul sur des suites possibles non 25 pertinentes, qui déboucheraient sur des candidats non pertinents pour l'utilisateur. De manière avantageuse, le score de prédiction du noeud courant correspond au : score composé si ce score est strictement inférieur à un deuxième seuil donné ; et la somme des scores de prédiction attribués aux caractères suivants qui sont strictement inférieurs au deuxième seuil, si le score composé est supérieur ou égal au deuxième 30 seuil. Le score ainsi défini permet d'agréger les suites possibles qui n'ont pas un score de prédiction assez important pour former une racine commune qui elle possède un score assez élevé pour former un candidat. On peut en outre prévoir les dispositions suivantes : g) organiser les suites possibles, selon une unique structure d'arbre de données comportant une racine et des noeuds dans laquelle : - un descendant de la racine de l'arbre de données comprend le premier caractère d'au moins une suite possible, - un noeud donné de l'arbre de données comprend un caractère donné d'une suite possible, et un noeud descendant du noeud donné comprend le caractère suivant le caractère donné dans au moins une suite possible ; h) attribuer et associer un score de prédiction à chaque noeud de l'arbre de données ; et i) sélectionner au moins une partie d'une suite possible, la partie étant comprise entre la racine et un noeud de l'arbre de données pour former un candidat pour prédire la suite de la séquence de caractères représentée par le signal d'entrée, au moins en fonction du score de prédiction associé au noeud final de ladite partie. Cette organisation des suites possibles en structure d'arbre permet de garder en mémoire, de manière compacte un grand nombre de suites possibles. Dans un mode de réalisation particulier, les sous-séquences commencent par des débuts de mot, le corpus est organisé en dictionnaire, et la réalisation du dictionnaire à partir d'un ensemble de phrases comporte les étapes suivantes : i) réaliser une troncature du corpus à partir d'un mot courant du corpus ; ii) réaliser une troncature du corpus à partir d'un mot suivant le mot courant dans le corpus iii) iv) le dictionnaire. On entend par � dictionnaire � un ensemble de caractères permettant la recherche de sous-séquence de caractères. Un tel dictionnaire peut être organisé de plusieurs manières, par exemple par ordre alphabétique, par ordre de taille des sous séquences. Le dictionnaire peut comporter des phrases comportant des mots, des chiffres, de la ponctuation ou tout autre caractère ou symbole. Le dictionnaire peut en outre comporter des mots seuls. Bien entendu, le dictionnaire peut comporter un texte entier formé de plusieurs phrases. Ainsi, on pourra y rechercher des passages entiers, formé de plusieurs phrases ou parties de phrases. Avantageusement, les prédictions peuvent être personnalisées par enrichissement du dictionnaire avec des textes saisis par l'utilisateur. répéter l'étape ii) un nombre donné de fois ; et classer les troncatures obtenues aux étapes i) à iii) par ordre lexicographique dans Avec le dictionnaire ainsi réalisé, il est plus facile de rechercher des candidats à partir des historiques de différentes tailles. D'autre part, l'implémentation du procédé est ainsi facilitée, et on gagne en temps de calcul. La présente invention a également pour objet une structure de données, obtenue par la 5 mise en oeuvre d'un procédé de traitement d'un signal d'entrée selon l'invention, pour organiser un ensemble de candidats pour prédire la suite d'une séquence de caractères. La présente invention a encore pour objet un programme informatique comportant des instructions pour la mise en oeuvre du procédé selon l'invention lorsque le programme est exécuté par un processeur. De plus, la présente invention vise aussi un support lisible par un 10 ordinateur sur lequel est enregistré un tel programme d'ordinateur. Selon un second aspect, la présente invention concerne un système de prédiction de la suite d'un message textuel formé d'une séquence de caractères d'entrée, caractérisé en ce qu'il comporte : - des moyens pour recevoir un signal représentant une séquence de caractères d'entrée du 15 message textuel ; - une première mémoire ; et - une unité de traitement adaptée pour : déterminer des suites de caractères possibles pour compléter la séquence de caractères représentée par le signal d'entrée, puis les stocker dans la mémoire ; 20 attribuer un score de prédiction à des caractères desdites suites de caractères possibles ; et sélectionner au moins une partie initiale d'au moins une suite possible pour former un candidat pour prédire la suite de la séquence de caractères représentée par le signal d'entrée, au moins en fonction des scores de prédiction associés aux caractères des suites possibles. En outre, on peut prévoir que la prédiction est réalisée à partir d'un corpus de prédiction 25 dont les caractères sont stockés dans une deuxième mémoire du système, et que l'unité de traitement est en outre adaptée pour : déterminer un ensemble de sous-séquences de caractères consécutifs de la séquence d'entrée, chacune desdites sous-séquences se terminant par le dernier caractère de la séquence d'entrée ; 30 rechercher, pour chaque sous-séquence, dans le corpus, des passages comportant la sous-séquence, et pour chaque passage trouvé, sélectionner un sous-passage commençant par le caractère suivant le dernier caractère commun au passage et à la sous-séquence, ledit sous-passage formant une suite de caractères possible, et calculer les scores de prédiction en fonction des résultats des recherches. Les avantages procurés par la structure de données, le programme informatique, et le système de prédiction, tels que succinctement exposés ci-dessus, sont identiques à ceux mentionnés plus haut en liaison avec le procédé de traitement d'un signal d'entrée selon l'invention. D'autres caractéristiques et avantages de l'invention apparaîtront à l'examen de la description détaillée ci-après, et des figures annexées parmi lesquelles: la figure 1 illustre les étapes du procédé de prédiction, selon un mode de réalisation de l'invention ; la figure 2 illustre certains objets manipulés lors des étapes illustrées sur la figure 1 ; la figure 3 illustre une recherche de différentes sous-séquences ; la figure 4 illustre les étapes d'attribution d'un score de prédiction selon un mode de réalisation de l'invention ; la figure 5 illustre un arbre des suites observées dans un corpus de météo marine après le texte "Vent force 3 à 4 local" ; la figure 6 illustre un arbre de données selon un mode de réalisation de la présente invention ; la figure 7 illustre la réalisation d'un dictionnaire selon la présente invention ; la figure 8 illustre les étapes d'une telle réalisation ; et la figure 9 illustre un système de prédiction selon un mode de réalisation de la présente invention. Aperçu global On commence ici par décrire de manière schématique un mode de réalisation du procédé de traitement d'un signal représentatif d'un message textuel, selon l'invention. Dans la suite, on l'applique à un exemple dans la langue française. On se réfère tout d'abord aux figures 1 et 2. La figure 1 résume les étapes du procédé, et la figure 2 illustre certains objets manipulés durant la mise en oeuvre du procédé. A la figure 1, lors d'une étape initiale S10, on reçoit une séquence d'entrée SEQ_ENTR, saisie par un utilisateur, par exemple au moyen d'un clavier sur un ordinateur. Ensuite, lors de l'étape S11, on détermine des suites de caractères possibles (SUIT POS) pour compléter la séquence d'entrée. A cette fin, comme représenté à la figure 2, on sélectionne une sous séquence de caractères consécutifs S-SEQ de la séquence d'entrée de sorte que cette sous-séquence comporte le dernier caractère de la séquence d'entrée. Par exemple, S-SEQ correspond aux cinq derniers caractères de la séquence d'entrée. Ensuite, on recherche dans un corpus de phrases CORP, des passages contenant S-SEQ. On obtient les passages PAS1, PAS2, PAS3. Chacun de ces passages contient S-SEQ dans une position particulière. Par exemple, dans PAS1 S-SEQ est située plutôt au début, dans PAS2 S-SEQ est située plutôt à la fin, et dans PAS3 S-SEQ est située plutôt au milieu. La taille des passages issus du corpus peut être choisie selon différentes manières. On pourrait se restreindre à des phrases. En outre, les passages pourraient comporter une fin de phrase et un début de la phrase suivante. Une fois la recherche dans le corpus terminée, on réalise une troncature sur les passages trouvés, après S-SEQ. On obtient alors les suites possibles SUIT POS1, SUIT POS2, et SUIT_POS3. Pour réaliser la troncature, on ne garde que les caractères qui suivent S-SEQ (éventuellement en limitant l'horizon, par exemple en s'arrêtant à la fin de la phrase). Une étape de sélection dans ces suites possibles peut avantageusement être mise en oeuvre. A l'étape S12 (Fig. 1) qui suit, afin de fournir des candidats à la prédiction de la séquence d'entrée, on attribue aux caractères des suites possibles des scores de prédiction. Ensuite, au cours de l'étape S13, on sélectionne un ou plusieurs candidats en fonction des scores de prédictions obtenus. En variante, conformément à la figure 3, on réalise plusieurs recherches dans le corpus. A cet effet, à partir de la séquence d'entrée, on détermine plusieurs sous-séquences S-SEQ1, ..., S-SEQ6. Chacune des sous-séquences se termine par le dernier caractère de la séquence d'entrée, et chaque sous-séquence a une taille différente des autres sous-séquences. On réalise ensuite la recherche dans le corpus pour chaque sous-séquence, chacune des recherches donnant un ensemble de résultats RES1, ..., RES6. Dans la suite, on décrit plus en détails le mode d'attribution des scores de prédiction sur un exemple de message en français. Mise en oeuvre du mode de réalisation sur un exemple en langue française Recherche dans le corpus On suppose ici que l'on dispose d'un corpus textuel de météo marine dans la langue française, et que l'on dispose de la séquence d'entrée suivante: "Vent force 3 à 4 local". Il également possible de disposer de plusieurs corpus d'apprentissage pour réaliser les recherches. A partir de cette séquence d'entrée, on réalise une recherche dans le corpus pour trois sous-séquences P I : � local �, P2 : � 4 local �, et P3 : � à 4 local �. Les recherches donnent les résultats suivants: Pour la première sous-séquence PI : localement 3 à 5 sur viking et utsire puis fraichissant localement 4 à 6 au sud et au large de localement 5 dans le nord-est au début virant secteur localement 5 sur l'Ouest mer agitée des bancs de localement force 10 la nuit de forte rafales mer très localement force 4 à 5 sur le sud revenant sud localement force 5 au nord revenant sud l'après-midi localement force 5 au nord-est devenant variable 2 à localement force 5 sur l'ouest fraîchissant 4 à 5 localement force 5 sur l'ouest le matin puis fraîchissant localement force 5 sur le nord le matin mer peu localement force 5 sur le nord-ouest le soir. localement force 6 au nord mer agitée. localement force 6 sur l'Ouest l'après-midi mer localement force 6 à l'Ouest, puis revenant secteur-sud localement force 6 à l'est mer peu agitée devenant localement force 8 au nord virant ouest à nord-ouest localement fraichissant sud-ouest 4 à 6 au nord la localement sud-ouest au sud fraichissant 4 à 6 au localement variable sur le sud, s'orientant nord-ouest sud- Pour la deuxième sous-séquence P2 : 4 localement 5 dans le nord-est au début virant 4 localement 5 sur l'Ouest mer agitée des bancs 4 localement force 5 au nord revenant sud l'après- 4 localement force 5 au nord-est devenant variable 2 4 localement force 5 sur l'ouest fraîchissant 4 à 4 localement force 5 sur l'ouest le matin puis 4 localement force 5 sur le nord le matin mer 4 localement force 5 sur le nord-ouest le soir. 4 localement variable sur le sud, s'orientant nord-ouest Pour la troisième sous-séquence P3 : à 4 localement 5 sur l'Ouest mer agitée des à 4 localement force 5 au nord revenant sud 1' à 4 localement force 5 au nord-est devenant variable à 4 localement force 5 sur l'ouest fraîchissant 4 à 4 localement force 5 sur l'ouest le matin à 4 localement force 5 sur le nord le matin à 4 localement force 5 sur le nord-ouest le à 4 localement variable sur le sud, s'orientant nord- Dans le présent exemple, il a été choisi de limiter les suites possibles en longueur. Ainsi, ici les résultats comportent au maximum dix mots (incluant la sous-séquence). Notons qu'il est toutefois possible de prévoir d'autres mesures de limitation, ou de ne pas limiter leur longueur (si ce n'est par la longueur maximale du corpus). Attribution des scores de prédiction Score d'occurrence Une fois les résultats obtenus, on attribue un score d'occurrence aux caractères, et on sélectionne des suites possibles. Dans la suite, le score de prédiction sera calculé en fonction de ce score d'occurrence. Dans le présent exemple, on distingue deux types de score d'occurrence. Le premier type correspond à un nombre d'occurrence d'un caractère, à une position donnée, dans les résultats de recherche. Le second type correspond à un score d'occurrence � composé � calculé à partir des scores d'occurrence du premier type. Bien entendu, on peut envisager d'autres types de score d'occurrence. Les scores d'occurrence composés attribués sont calculés par analogie avec les probabilités. Ainsi, lorsqu'un caractère a un score de � 1 �, cela signifie que selon le corpus, pour compléter le caractère précédent, il n'y a pas d'autre possibilité que ce caractère. Ainsi, comme on peut le constater ici, toutes les suites possibles commencent par la suite de caractères communs � ement � (incluant le caractère espace). Les caractères de cette suite sont donc tous associés au score � 1 �. On se place après cette suite de caractères pour observer les suites possibles. D'après les relevés, on retrouve les occurrences suivantes concernant les caractères 5 suivants possibles : Recherche avec P 1 Recherche avec P2 Recherche avec P3 � 3 � 1 fois �4� l fois � 5 � 2 fois 2 fois 1 fois � f � 14 fois 6 fois 6 fois � s � 1 fois � v � 1 fois 1 fois 1 fois Total 20 9 8 Chaque caractère possède donc un nombre d'occurrence différent selon qu'il est résultat de l'une ou l'autre recherche. En effet, les sous-séquences courtes sont susceptibles d'être retrouvées dans un plus grand nombre de passages du corpus que les séquences longues. 10 On rappelle que c'est un objectif de l'invention de permettre d'arbitrer entre des prédictions coutes ou longues selon leur degré de pertinence. Notre approche va consister à tenir compte de toutes les recherches avec des pondérations spécifiques, en accordant plus d'importance aux recherches sur les sous-séquences longues et moins d'importance aux recherches sur les sous-séquences courtes. En effet, comme déjà évoqué, on considère ici que 15 plus la sous-séquence considérée est longue, plus la prédiction est pertinente. Néanmoins, pour les sous-séquences longues, le nombre d'occurrences rencontrées dans le corpus est parfois très restreint, voir nul, et ne permet donc pas d'extraire des scores fiables. Dans la suite, on calcule un score d'occurrence � composé �, qui tient compte des scores d'occurrence obtenus par chaque caractère dans les différentes recherches. Ainsi, le score de 20 prédiction, tiendra compte de l'origine de chaque caractère des suites possibles comme résultat d'une recherche. On souhaite que la somme des scores d'occurrence composés des caractères suivant un caractère courant corresponde au score d'occurrence composé de ce caractère courant. On se place ici, à l'espace après � ement �. On rappelle que ce caractère a un score composé de � 1 �. Nous allons calculer le score d'occurrence composé de tous les caractères qui peuvent suivre directement ce caractère courant. On commence par calculer les scores d'occurrence des caractères issus de chaque recherche (cf tableau précédent). Ensuite, selon chaque résultat de recherche, on attribue à chaque caractère c, relevé dans cette recherche le score d'occurrence partiel suivant : Sn(c.) Nä(c,)ùdn , n=1,2ou3 où : - Nn (c1) est le nombre d'occurrences du caractère c, après le caractère courant, suivant les statistiques obtenues lors de la recherche de la sous-séquence Pä dans le corpus, -N, est la somme des Nn (c,) pour tous les caractères c, observés après le caractère courant lors de la recherche de la sous-séquence Pä dans le corpus. Cela correspond également au nombre de passages du corpus qui contiennent Pä suivi de la séquence de caractères terminant par le caractère courant. Ainsi, NI correspond au nombre d'occurrences de �localement � c'est-à-dire 20, N2 correspond au nombre d'occurrences de �4 localement � c'est-à-dire 9, et N3 correspond au nombre d'occurrences de �à 4 localement � c'est-à-dire 8 (cf. tableau précédent). - dn est un paramètre de "discount" associé à chaque sous-séquence. Il permet de gérer la pondération des nombre d'occurrence selon chaque sous-séquence. En principe dn est compris entre 0 et 1. La valeur 0 donne une priorité absolue des résultats de la recherche effectuée sur Pä (si elle est non vide) par rapport aux résultats des recherches effectuées sur des sous-séquences plus courtes (Pä_I, P11_2...). La valeur 1 annule la contribution des caractères présents une seule fois dans cette recherche. Par exemple, ce paramètre peut valoir 0.7 pour toutes les sous-séquences, sauf pour la sous-séquence la plus courte pour laquelle le paramètre est nul. A ce stade, pour une sous-séquence Pä donnée, seuls les caractères observés après le caractère courant dans les occurrences qui prolongent P, sont crédités d'un score partiel Sä non nul. Tous les autres se voient attribuer un score partiel Sr, nul. Bien entendu, beaucoup de caractères se retrouvent avec un score nul. Par exemple, pour le caractère � f �, on a : 14ù0 S1 (" f")= 20 =0.7 S2 (., f..)= 6ù0.7 =0.58 6ù0.7 S3 (" f ") = 8 = 0.66 On rappelle que l'on souhaite que la somme des scores des caractères suivant le caractère courant soit égale au score Scot,rant du caractère courant (Scourant = 1 dans ce cas particulier). De plus, on souhaite privilégier les caractères issus de recherches avec des sous-séquences longues. Pour chaque caractère c, observé après le caractère courant, on calcule son score composé comme une somme pondérée de ses scores d'occurrence partiels. On explicite ci-dessous la contribution de chaque score d'occurrence partiel au score composé, en commençant par les scores partiels correspondant à la recherche sur la sous-séquence la plus longue. On va donc commencer par pondérer S3, puis ajouter une pondération de S2, et enfin ajouter une pondération de S, . La pondération de S3 doit garantir que la somme des scores composés soit comprise entre 0 et Scourant . Pour cela on multiplie les scores S3 par Scourant La somme des scores composés ainsi obtenus vaut donc, après l'injection de S3 et avant l'injection de S, et S2 1 s3 (ci ) x `courant = E N3 (c,) ù d3 x scurant = N3 ù K3 x d 3 x Scourm,t =S courant ù 5courant x K3 x N3 3 3 où K3 désigne le nombre de caractères présents dans les statistiques issues de P3 (ici K3 = 3 ). On ajoute maintenant la contribution des scores partiels S2. Comme on souhaite que la somme de tous les scores composés vaille Scourant , la � place restante � pour les scores S2 est, après injection de S3 et d'après la formule précédente, Scourant x K3 x N . On va donc pondérer 3 les scores S2 par cette valeur. A ce stade la somme des scores composés mis à jour avec S2. vaut : 1 S3 (c, ) x Scouran, +S2(ci)xSc,n,rant x K3 xd33 N3Scourant û Scouraä t x K3 x d x K, x d 2 N3 N2 où K, désigne le nombre de caractères présents dans les statistiques issues de P2 (ici K2 = 3 ). De la même manière que précédemment, le coefficient de pondération adopté pour SI est d Scourant x K3 x 3 x K, x d N3 N2 Dans notre cas où Scouran, =1, le score composé de chaque caractère observé après le caractère courant est par conséquent : S(c,) = S3 (c,) + SZ (c; ) x K3 x N 3+ Sl(c;) x K3 x d3 x K2 x d N3 N2 D'une manière générale, pour N recherches effectuées sur des sous-séquences P1 à PN, le score d'un caractère c, vaut, après mixage des N statistiques : N N d S(c,) = Sc0nrant x (Sn (c;) x 11 K p x N) n=1 p-,+1 p Ainsi les caractères issus de la recherche sur une sous-séquence Pr, auront d'autant moins d'importance que les recherches sur des sous-séquences plus longues auront donné un nombre total d'occurrences élevé et groupé sur un petit nombre de caractères. Dans toutes les itérations, on ne tient compte que des statistiques portant sur un nombre non-nul d'occurrences. Les autres ne sont pas prises en compte. Par exemple si les séquences PN et PN_1 sont absentes du corpus, l'algorithme de lissage démarre directement avec PN_2. Par exemple pour le caractère � f � , on obtient : S("f")=0.66+0.58x3x0g7+0.7x3x0g7x3x 97 =0.86 En attribuant des scores composés aux autres caractères, on se retrouve avec les scores suivants : Caractère Score � 3 � 0.003 � 4 � 0.003 �5� 0.08 � f � 0.86 s� 0.003 �V� 0.05 Dans la suite, pour simplifier, � score d'occurrence � désigne le � score d'occurrence composé � défini ci-dessus. Sélection des suites possibles 20 On peut alors décider de continuer la sélection des suites possibles selon le score d'occurrence porté par chaque caractère. Par exemple il apparait que le caractère � f � va donner plus de suites possibles que le caractère � 3 �. Ainsi, on peut choisir de continuer en recherchant les caractères suivant � ement f �, et réitérer le procédé précédemment décrit.15 Il s'agit donc de sélectionner des suites possibles en ne s'intéressant qu'aux caractères dont le score d'occurrence est supérieur à un seuil d'exploration. Pour le "f' par exemple, on applique le même algorithme que ci-dessus en prolongeant la suite possible � ement � par la lettre "f'. Seo,Iran, est alors égal à 0.86 et les caractères suivants se voient tous affecter un score d'occurrence compris entre 0 et 0.86, de sorte que la somme fasse 0.86. Les suites possibles qui mènent à un caractère dont le score est inférieur au seuil ne sont pas prolongées. L'organigramme de la figure 4 schématise les étapes du procédé d'attribution des scores d'occurrence et de sélection des suites possibles pertinentes. On sélectionne à l'étape S40 un caractère courant, pour lequel on va recherche des successeurs parmi les résultats de recherche dans le corpus. Ensuite, lors de l'étape T41, on teste le score d'occurrence composé du caractère courant pour savoir s'il est pertinent de lui rechercher des successeurs. Dans la négative, on arrête le processus. Dans la positive, on passe à l'étape S42 de recherche de successeurs, on en teste le résultat à l'étape T43. Si aucun successeur n'a été trouvé ("N"), on vérifie lors de l'étape T45 s'il reste d'autres caractères à explorer. S'il en reste (T45, "O"), on retourne à l'étape S40. Sinon (T43, "O"), on attribue aux successeurs trouvés un score d'occurrence lors de l'étape S44. Après cette étape, on repasse par le test T45, et s'il ne reste plus de caractère à explorer, on attribue aux caractères le score de prédiction lors de l'étape S46. Ce score de prédiction est présenté ci-après. Score de prédiction et sélection des candidats Une fois que l'on a exploré les résultats des recherches, et que l'on a sélectionné des suites possibles pertinentes, on définit le score de prédiction qui va permettre notamment de choisir des suites possibles ou des parties de suites possibles à présenter comme candidat à l'utilisateur. On introduit le score de prédiction suivant, attaché à chaque caractère de suite possible, appelé S . Ce score de prédiction est dérivé du score d'occurrence S. Pour un caractère c; dont les caractères possibles suivants sont notés (D;)i 2 où 2 désigne un score-seuil paramétrable. Le score S permet d'agréger ensemble des suites possibles dont les caractères ont des scores d'occurrence S qui ne sont pas suffisamment élevés, jusqu'à ce que le seuil a, soit franchi. Autrement dit, les passages du corpus trouvés lors des recherches sont tronqués, jusqu'à obtenir des suites possibles qui correspondent à suffisamment d'occurrences pour dépasser le seuil 1. Sur la figure 5, on a représenté, sous forme d'arbre, une sélection de plusieurs suites possibles pertinentes, avec les scores de prédiction g pour k=0.3. Pour simplifier la figure, les noeuds successifs qui n'ont qu'un seul descendant ont été regroupés "visuellement". L'échelle ECH porte sur le score d'occurrence associé à chaque noeud. Les prédictions proposées correspondent alors à toutes les suites possibles qui se terminent par un caractère de score de prédiction g > X. Dans cet exemple, les trois candidats retenus sont donc : - "Vent force 3 à 4 localement force 5 sur 1", - "Vent force 3 à 4 localement ", et - "Vent force 3 à 4 localement 5 " car ils se terminent par un caractère ayant obtenu un score de prédiction supérieur à 0.3. Ces prédictions peuvent ensuite faire l'objet d'un post-traitement : retrait des prédictions trop courtes, troncature à des mots entiers, limitation aux P premières, etc. Le choix du seuil permet de déterminer le compromis entre la pertinence des prédictions et leur longueur. Ainsi, un seuil faible donnera des prédictions plus longues et moins probables qu'un seuil élevé. De plus, ce seuil détermine indirectement le nombre de prédictions proposées. En effet, il y a toujours moins de chemins très probables que de chemins peu probables. Enfin, le choix de ce seuil peut également permettre de contrôler le temps de calcul nécessaire pour la prédiction ainsi que l'espace mémoire requis. En effet, dans des implémentations avantageuses, le calcul du score de prédiction est réalisé en parallèle avec la sélection des suites possibles pertinentes. Ainsi, il n'est pas nécessaire d'explorer les résultats de recherche au-delà des caractères ayant des scores de prédiction faibles. Ainsi, plus le seuil est élevé, plus le volume de données exploré est restreint et donc le calcul rapide. Ce choix stratégique du seuil X est naturellement dépendant du type de corpus et des attentes de l'utilisateur. Bien entendu, toutes les étapes du procédé présentées ci-avant peuvent être réalisées en parallèle : recherches dans le corpus, calcul des scores d'occurrence et scores d'occurrence composés, limitation de la profondeur d'exploration, calcul des scores de prédiction, et choix des candidats. Organisation des suites possibles en arbre de données Dans un mode de réalisation particulier, on organise les suites possibles obtenues dans une structure d'arbre de données, comme illustré sur la figure 6. Chaque noeud correspond à un caractère et possède autant de descendants qu'il a de successeurs possibles dans la phrase. Chaque noeud se voit attribuer le score de prédiction associé au caractère compris dans le noeud. Dans l'exemple de la figure 6, on dispose de trois suites possibles qui partagent certains caractères en communs. Ainsi, elles commencent toutes par le caractère � A �. On place donc ce caractère, dans la racine de l'arbre. En deuxième position, une suite possède le caractère � B �, et deux autres le caractère � C �. On place donc après la racine deux noeuds, l'un comporte le caractère � C �, et l'autre le caractère � B �. Le noeud � B � est ensuite suivi consécutivement des noeuds � C �, � D �, et � E �. Le noeud � C � est suivi de deux noeuds � D � et � E �. Enfin, le noeud � D �, issu du noeud � C � est suivi d'un noeud comportant le caractère � E �. Lorsque les scores de prédiction sont calculés pour les caractères, ils leur sont associés au sein des noeuds de l'arbre. Organisation du corpus en dictionnaire Dans la suite, on décrit une structure de corpus textuel de recherche, dite de "dictionnaire", permettant d'améliorer considérablement le temps de calcul nécessaire aux différentes recherches d'occurrences. Pour la réalisation de la prédiction, on a adopté un modèle de langage statistique se basant sur le nombre d'occurrences de caractères, dans un corpus textuel . Pour faciliter ce calcul, le corpus textuel est ré-agencé en un dictionnaire qui permet de retrouver facilement toutes les phrases ou parties de phrases commençant par un texte donné. Comme on l'a vu précédemment, on recherche dans le corpus chacune des sous- séquences de caractères de la séquence d'entrée, et on observe les caractères qui prolongent la séquence d'entrée dans les sous-séquences trouvées. Les recherches doivent être répétées à chaque nouveau caractère saisi par l'utilisateur, pour différentes longueurs de sous-séquences. Ainsi, un très grand nombre de recherches sont à réaliser par le système qui met en oeuvre le procédé. Un moyen efficace de réduire le nombre et la complexité de recherche consiste à réorganiser le corpus en un dictionnaire, et en procédant au décalage mot par mot des phrases du corpus. On peut en outre prévoir de limiter également l'horizon à un certain nombre de mots. Cet horizon fixe par exemple, la longueur maximum de prédiction pour une longueur de sous-séquence donnée. Par exemple, en référence à la figure 7, dans le cas d'un dictionnaire obtenu par des décalages caractère par caractère, si on choisit un horizon de 4 caractères, et la phrase � AJCBDLE �, on obtient les décalages successifs DEC : � AJCB �, � JCBD �, � CBDL �, � BDLE �, � DLE �, � LE �, et � E �. Après classement par ordre alphabétique, on obtient le dictionnaire DIC. Ce dictionnaire classé permet de rechercher très rapidement, par simple dichotomie, toutes les occurrences d'un groupe de mots et d'observer les suites possibles. Avantageusement, on veillera à prendre en compte des sous-séquences qui commencent par un mot lorsque le dictionnaire est organisé par décalages de mots. Un dictionnaire est beaucoup plus volumineux que le corpus textuel de départ mais les tailles de fichiers obtenues restent tout à fait raisonnables. Un petit calcul nous permet d'établir que la taille Td du dictionnaire est grossièrement encadrée comme suit : Tc x 2 Td Tc x H , où Tc est la taille du corpus textuel, N la longueur moyenne des phrases dans ce corpus et H l'horizon choisi (10 dans l'exemple ci-dessus). Le procédé d'établissement de ce dictionnaire est décrit en référence à la figure 8. Lors de l'étape S80, on sélectionne un mot courant. Puis, lors de l'étape S81, on réalise une troncature du corpus à partir de ce mot jusqu'à une certaine longueur. Selon une variante de réalisation, jusqu'à la fin du corpus Puis on vérifie, lors du test T82, si l'on a atteint la fin du corpus. Si ce n'est pas le cas, on passe, à l'étape S83, à la sélection du mot qui suit directement le mot courant dans la phrase, puis on recommence le processus à partir de l'étape S81. Sinon, on classe par ordre alphabétique, à l'étape S84, les troncatures obtenues dans le dictionnaire. Le dictionnaire peut correspondre à un stockage de pointeurs vers tous les débuts de mots du corpus, ces pointeurs étant ordonnés dans l'ordre alphabétique du texte vers lesquels ils pointent. Cette disposition permet d'alléger la structure, en évitant une réécriture du corpus sous la forme de dictionnaire. Système de prédiction En référence à la figure 9, on décrit un système de prédiction de la suite d'un message textuel, selon la présente invention. Ce système comporte une entrée E pour recevoir un signal représentant un message textuel formé d'une séquence de caractères, par exemple à partir d'un clavier CLAV. Le système comporte également un processeur de signal PROC adapté à la mise en oeuvre d'un procédé tel que décrit précédemment. A cet effet, le système comporte également une première mémoire MEM_SUIT_POS pour stocker des suites possibles de caractères, selon une structure de données en arbre. Avantageusement, il peut en outre comporter une deuxième mémoire MEM_CORP pour stocker un corpus de phrases tel que décrit précédemment, par exemple sous forme de dictionnaire. Enfin, le système comporte une sortie S pour fournir un ou plusieurs candidats, par exemple à un utilisateur, via un écran ECR. Dans ce mode de réalisation, le processeur de signal PROC met en oeuvre le procédé de traitement selon l'invention, en exécutant les instructions d'un programme informatique, conçu selon un algorithme général déduit d'un procédé de traitement d'un signal d'entrée, tel que décrit en liaison avec les figures 1, 4, et 8. REVENDICATIONS1. Procédé de prédiction de la suite d'un message textuel formé d'une séquence de caractères représentée par un signal d'entrée, mis en oeuvre par des moyens informatiques, caractérisé en ce qu'il comporte les étapes : a) déterminer (S 11) des suites de caractères possibles pour compléter la séquence de caractères représentée par le signal d'entrée ; b) attribuer (S 12) un score de prédiction à des caractères desdites suites de caractères possibles ; et c) sélectionner (S13) au moins une partie initiale d'au moins une suite possible pour former un candidat pour prédire la suite de la séquence de caractères représentée par le signal d'entrée, au moins en fonction des scores de prédiction associés aux caractères des suites possibles. 2. Procédé selon la revendication 1, caractérisé en ce que : - la prédiction est réalisée à partir d'un corpus textuel de prédiction dont les caractères sont stockés dans une mémoire des moyens informatiques ; - l'étape a) comporte les sous-étapes : al) déterminer un ensemble de sous-séquences de caractères consécutifs de la séquence d'entrée, chacune desdites sous-séquences se terminant par le dernier caractère de la séquence d'entrée ; a2) pour chaque sous-séquence, rechercher (S42) dans le corpus, des passages comportant la sous-séquence, et pour chaque passage trouvé, sélectionner un sous-passage commençant par le caractère suivant le dernier caractère commun au passage et à la sous-séquence, ledit sous-passage formant une suite de caractères possible ; et - les scores de prédiction sont calculés en fonction des résultats des recherches. 3. Procédé selon la revendication 2, caractérisé en ce que les scores de prédiction tiennent compte de l'origine de chaque caractère des suites possibles comme résultat d'une recherche. 4. Procédé selon la revendication 3, caractérisé en ce que pour un caractère courant d'une suite possible courante, on prévoit en outre les étapes :d) rechercher au sein des résultats de chaque recherche, un ou plusieurs caractères suivant le caractère courant dans des passages du corpus ; e) attribuer (S44) à chaque caractère issu de l'étape d), un score d'occurrence dans les résultats de l'ensemble des recherches ; et f) calculer (S46) le score de prédiction associé au caractère courant au moins en fonction des scores d'occurrence attribués à l'étape e). 5. Procédé selon la revendication 4, caractérisé en ce que : - les sous- séquences déterminées à l'étape al) sont de tailles différentes ; - lors de l'étape e), pour chaque caractère issu de l'étape d), on attribue un score composé calculé à partir de différents scores d'occurrence du caractère dans chacun des résultats de recherche, en accordant une importance aux scores qui est fonction de la taille de la sous-séquence sur laquelle a été réalisée chaque recherche ; et - lors de l'étape f), on calcule le score de prédiction associé au caractère courant au moins en 15 fonction du score composé attribué à ce caractère. 6. Procédé selon la revendication 5, caractérisé en ce que l'on recherche un successeur au caractère courant pour former le candidat, seulement si le score composé du caractère courant est supérieur à un premier seuil donné. 20 7. Procédé selon la revendication 5, caractérisé en ce que le score de prédiction du caractère courant correspond au : score composé si ce score est strictement inférieur à un deuxième seuil donné ; et la somme des scores de prédiction attribués aux caractères suivants, qui sont 25 strictement inférieurs au deuxième seuil, si le score composé est supérieur ou égal au deuxième seuil. 8. Procédé selon la revendication 1, caractérisé en ce qu'il comporte en outre les étapes : 30 g) organiser (S13) les suites de caractères possibles, selon une unique structure d'arbre de données comportant une racine et des noeuds, dans laquelle : - un descendant de la racine de l'arbre de données comprend le premier caractère d'au moins une suite possible,- un noeud donné de l'arbre de données comprend un caractère donné d'une suite possible, et un noeud descendant du noeud donné comprend le caractère qui suit le caractère donné dans au moins une suite possible ; h) attribuer (S 14) et associer un score de prédiction à chaque noeud de l'arbre de données i) sélectionner (S15) au moins une partie d'une suite possible, la partie étant comprise entre la racine et un noeud de l'arbre de données pour former un candidat pour prédire la suite de la séquence de caractères représentée par le signal d'entrée, au moins en fonction du score de prédiction associé au noeud final de ladite partie. 10 9. Procédé selon la revendication 2, caractérisé en ce que: - les sous-séquences commencent par des débuts de mot, - le corpus est organisé en dictionnaire, et - la réalisation du dictionnaire à partir d'un ensemble de phrases comporte les étapes suivantes : 15 i) réaliser une troncature (S81) du corpus à partir d'un mot courant du corpus ; ii) réaliser une troncature du corpus à partir d'un mot suivant le mot courant dans le corpus ; iii) répéter l'étape ii) un nombre donné de fois ; iv) classer (S84) les troncatures obtenues aux étapes i) à iii) par ordre lexicographique dans le dictionnaire. 20 10. Structure de données pour organiser un ensemble de suites possibles pour prédire la suite d'une séquence de caractères caractérisée en ce qu'elle consiste en un arbre de données dans laquelle : - un descendant de la racine de l'arbre de données comprend le premier caractère d'au 25 moins une suite possible, - un noeud donné de l'arbre de données comprend un caractère donné d'une suite possible, et un noeud descendant du noeud donné comprend le caractère suivant le caractère donné dans au moins une suite possible ; et en ce que chaque noeud de l'arbre est associé à un score de prédiction. 11. Programme informatique comportant des instructions pour la mise en oeuvre d'un procédé selon l'une quelconque des revendications 1 à 9, lorsque le programme est exécuté par un processeur. 30 12. Système de prédiction de la suite d'un message textuel formé d'une séquence de caractères d'entrée, caractérisé en ce qu'il comporte : - des moyens (E) pour recevoir un signal d'entrée représentant une séquence de caractères 5 formant le message textuel ; - une première mémoire (MEM_SUIT_POS) ; et - une unité de traitement (PROC) adaptée pour : déterminer des suites de caractères possibles pour compléter la séquence de caractères représentée par le signal d'entrée, puis les stocker dans la mémoire ; 10 attribuer un score de prédiction à des caractères desdites suites de caractères possibles ; et sélectionner au moins une partie initiale d'au moins une suite possible pour former un candidat pour prédire la suite de la séquence de caractères représentée par le signal d'entrée, au moins en fonction des scores de prédiction associés aux caractères des suites possibles. 15 13. Système selon la revendication 12, caractérisé en ce que la prédiction est réalisée à partir d'un corpus textuel de prédiction dont les caractères sont stockés dans une deuxième mémoire (MEM_CORP) du système, et en ce que l'unité de traitement est en outre adaptée pour : déterminer un ensemble de sous-séquences de caractères consécutifs de la séquence 20 d'entrée, chacune desdites sous-séquences se terminant par le dernier caractère de la séquence d'entrée ; rechercher, pour chaque sous-séquence, dans le corpus, des passages comportant la sous-séquence, et pour chaque passage trouvé, sélectionner un sous-passage commençant par le caractère suivant le dernier caractère commun au passage et à la sous-séquence, ledit sous- 25 passage formant une suite de caractères possible ; et calculer les scores de prédiction en fonction des résultats des recherches.