Brevet FR2719136A1 — publié le 19951027

PROCEDE ET DISPOSITIF DE SAISIE DE DONNEES ASSISTEE PAR ORDINATEUR La présente invention se rapporte à un procédé et à un dispositif de saisie de données, notamment de textes par ordinateur. La saisie de données, notamment de textes, représente une activité professionnelle ou privée majeure. La saisie de données est une opération longue et particulièrement coûteuse lorsqu'elle est opérée par un spécialiste d'un domaine, par exemple médical ou technique. D'une part, la vitesse de frappe du médecin ou de l'ingénieur est souvent très nettement inférieure à celle d'une bonne secrétaire, alors que, d'autre part, le coût horaire du travail du spécialiste est particulièrement élevé. La saisie de textes à pu être accélérée de manière connue en utilisant des abréviations rédigées par l'usager qui ensuite sont remplacées par les mots ou les formules plus longues. Toutefois, ce procédé ne donne pas satisfaction car le nombre des abréviations susceptibles d'être mises en oeuvre est limité par les capacités de mémorisation de l'usager qui doit les apprendre pour pouvoir les utiliser. C'est par conséquent un but de la présente invention d'offrir un procédé et un dispositif permettant la saisie rapide de données, notamment textuelles. C'est également un but de la présente invention d'offrir un procédé et un dispositif de saisie de données minimisant la fatigue de l'opérateur de saisie. C'est aussi un but de la présente invention d'offrir un tel procédé et un tel dispositif de saisie de données minimisant le nombre de frappes sur le clavier nécessaires à la saisie du texte. C'est également un but de la présente invention d'offrir un procédé et un dispositif de saisie de données faciles à mettre en oeuvre par l'opérateur. C'est aussi un but de la présente invention d'offrir un procédé et un dispositif de saisie de données facilitant le respect d'un style des données saisies, ce style correspondant, par exemple, au style des données d'un corpus mémorisé dans le dispositif. Ces buts sont atteints selon la présente invention en stockant un corpus comprenant des données analogues aux données à saisir, en élaborant un dictionnaire à partir du corpus incorporant des informations concernant la fréquence des diverses suites de caractères susceptibles d'être saisis, en transformant ce dictionnaire de manière à associer des chaînes de caractères à identifier dans le texte déjà saisi à des chaînes ou suites proposées à l'opérateur. Après validation, explicite ou implicite de la proposition, la suite est incorporée aux données saisies. En variante, l'on propose à l'opérateur une pluralité de suites ayant les plus grandes chances de devoir être saisies permettant à l'opérateur de choisir la suite à incorporer aux données saisies. L'invention a principalement pour objet un procédé de saisie de données, notamment de textes, assistée par ordinateur, caractérisé en ce qu'il comporte les étapes consistant à: a) introduire et mémoriser un corpus comprenant au moins un ensemble de données analogues aux données à saisir; b) élaborer à partir du corpus un dictionnaire primaire dont les articles sont des chaînes de données élémentaires présentes en plusieurs exemplaires dans le corpus. c) former un dictionnaire fonctionnel par division de chaque article du dictionnaire primaire en au moins une partie initiale contexte et une partie finale 'suite' de manière que le gain défini comme le produit de la longueur de la suite par sa probabilité d'apparition après le contexte, dans le corpus, soit maximum, d) en cours de saisie, si les dernières données saisies coïncident avec un des contextes du dictionnaire fonctionnel, proposer à l'opérateur de saisie l'introduction automatique de la suite correspondante dans les données saisies. L'invention a également pour objet un procédé, caractérisé en ce que si au cours de la formation du dictionnaire fonctionnel plusieurs contextes sont identiques, un seul est conservé et est associé à une liste des suites correspondantes classées par ordre de probabilité, ces différentes 3 0 suites étant proposées à l'opérateur au cours de la saisie. L'invention a également pour objet un procédé, caractérisé en ce que, à l'étape c), un article extrait du dictionnaire primaire peut être divisé en un nombre non limité par principe de contextes et de suites, placés dans le dictionnaire fonctionnel, la division étant faite de manière que le gain global soit maximum. L'invention a également pour objet un procédé, caractérisé en ce que dans l'étape d), on incorpore directement dans l'ensemble des données en cours de saisie, à la suite du dernier caractère saisi, la suite la plus probable,..., et en ce qu'une action positive sur un dispositif de commande, par exemple une touche d'un clavier est requise pour annuler cette incorporation. L'invention a également pour objet un procédé, caractérisé en ce qu'à l'étape c), la valeur du gain est corrigée par des facteurs qui tiennent compte du temps et de l'attention nécessaires à l'opérateur pour choisir, accepter ou refuser une suite. L'invention a également pour objet un procédé, caractérisé en ce qu'à l'étape d), les diverses suites sont proposées successivement, dans l'ordre de probabilité décroissante, et qu'un moyen de commande, notamment une touche du clavier, permet de les faire défiler l'une après l'autre. L'invention a également pour objet un procédé, caractérisé en ce que, après coïncidence des dernières données saisies et d'un contexte du dictionnaire fonctionnel associé à plusieurs suites, ces suites sont affichées et l'une d'entre elles peut être choisie par un procédé de désignation directe tel qu'une souris, des touches de déplacement de curseur ou un jeu de touches 2 0 dont les numéros correspondent à ceux des suites affichées. L'invention a également pour objet un procédé, caractérisé en ce que l'on répète plusieurs fois les étapes a), b) et c) avec des corpus différents correspondant à des données à saisir différentes, et en ce que l'on choisit dans une liste le dictionnaire le plus adapté à l'ensemble des données à saisir. L'invention a également pour objet un dispositif de saisie de données, notamment de textes, assistée par ordinateur comprenant un ordinateur, notamment un micro-ordinateur, comprenant des moyens d'entrée/sortie et une mémoire de masse ainsi qu'un éditeur ou un traitement de textes mémorisés dans la mémoire de masse, caractérisé en ce qu'il comporte des moyens de mémorisation dans la mémoire de masse d'un corpus comportant au moins un ensemble de données analogues aux données à saisir, des moyens pour élaborer à partir du corpus un dictionnaire comportant les suites de caractères apparaissant plusieurs fois dans le corpus, et pour calculer et mémoriser dans le dictionnaire la probabilité pour qu'une suite de caractères suive, dans l'ensemble des données à saisir, les derniers caractères saisis ainsi que des moyens pour proposer à l'opérateur de saisie l'introduction dans l'ensemble des données de la suite la plus probable si ladite probabilité est supérieure ou égale à un seuil prédéterminé. L'invention a également pour objet un dispositif de saisie de données, notamment de textes, assistée par ordinateur comportant un ordinateur, notamment un micro-ordinateur comprenant des moyens d'entrée/sortie et une mémoire de masse mémorisant un éditeur ou un traitement de textes, caractérisé en ce que la mémoire de masse mémorise une pluralité de dictionnaires comportant les suites des caractères susceptibles d'apparaître dans l'ensemble des données à saisir et les valeurs de probabilité d'apparition de cette suite en fonction des caractères précédemment saisis et des moyens de sélection par l'opérateur du dictionnaire correspondant aux données à saisir. L'invention sera mieux comprise au moyen de la description ci-après et des figures annexées données comme des exemples non limitatifs, et sur lesquelles: - la figure 1 est un organigramme explicatif de la construction du dictionnaire selon la présente invention; - la figure 2 est un organigramme explicatif de la saisie de données selon la présente invention; - la figure 3 est une vue schématique d'un dispositif de saisie de données selon la présente invention; - la figure 4 est un arbre expliquant l'élaboration d'un dictionnaire; - la figure 5 comporte des tableaux expliquant l'élaboration d'un dictionnaire selon la présente invention; - la figure 6 comporte des tableaux explicatifs de l'élaboration du dictionnaire de la figure 4; - la figure 7 est un arbre illustrant une évolution du dictionnaire delafigure4; - les figures 8 à 12 sont des organigrammes d'élaboration d'un dictionnaire sous la forme requise par le procédé; - les figures 13 et 14 sont les organigrammes de la saisie de données. Sur la figure 1, I'on peut voir un organigramme général d'un exemple de réalisation de la première phase du procédé, la création d'un dictionnaire de structure originale. En 1, on introduit dans le dispositif un corpus formé par des données, notamment par un texte ou un ensemble de textes, aussi proche que possible des données à saisir par son vocabulaire et ses groupes de mots. En 2, on élabore un dictionnaire primaire 3, de forme élémentaire, contenant des articles qui sont des chaînes de caractères dont il existe au moins S exemplaires dans le corpus, S étant supérieur à 1. Il est à noter que les articles de ce dictionnaire sont indépendants du découpage en mots et peuvent contenir des espaces ou tout élément faisant partie du texte. Un article du dictionnaire 3 peut correspondre, par exemple, à une partie de mot, à un mot, à une partie de phrase, à une ou plusieurs phrases. Par exemple une formule de politesse peut correspondre à un article du dictionnaire 3. A chaque article du dictionnaire 3 est associé un effectif qui est le nombre d'exemplaires de cet article présents dans le corpus. L'on va en 4. En 4, on transforme le dictionnaire primaire 3 en un dictionnaire fonctionnel 5, en lui donnant les propriétés et la forme voulues pour son utilisation lors de la saisie de données. Dans le cas le plus favorable, un article initial est scindé en deux parties: une partie contexte, mise en forme arborescente, et une partie suite, mise en forme de chaîne de caractères, la fin du contexte contenant un lien vers la suite correspondante. Dans des cas moins favorables, plusieurs suites sont associées à un même contexte; dans les cas défavorables, I'article est supprimé. Les choix correspondants, notamment le point de séparation entre contexte et suite, sont faits après un calcul exact du gain exprimé en nombre de frappes de touches économisé, dans l'hypothèse d'une saisie du corpus lui-même en utilisant le procédé selon l'invention. Le résultat du calcul est pondéré par des coefficients accessibles par l'utilisateur, pour tenir compte du temps de lecture et d'approbation des suites. Comme l'efficacité du procédé dépend fortement de l'adaptation du dictionnaire au texte saisi, il peut être avantageux de former plusieurs dictionnaires, de les stocker en mémoire de masse, et d'appeler avant une saisie celui qui correspond le mieux aux données à saisir. Sur la figure 2, I'on peut voir un organigramme général d'un exemple de réalisation de la deuxième phase du procédé, qui est son exploitation courante pour la saisie d'un texte. En 8, l'opérateur effectue une saisie conventionnelle, au moyen d'un clavier, du texte 9. L'on va en 10. En 10, un élément du dispositif selon l'invention, nommé comparateur de contexte, compare en permanence, au cours de la saisie, la dernière partie du texte saisi avec tous les contextes présents dans le dictionnaire 5. Si une coïncidence est trouvée, I'on va en 11. En 11, un autre élément du dispositif, nommé gestionnaire de suites, extrait de la zone suites du dictionnaire 5 la ou les suite(s) liée(s) au contexte identifié et la ou les propose à l'opérateur, d'une façon qui dépend du mode de réalisation; la plus simple est l'affichage, sur l'écran de saisie, de la suite la plus probable en continuité avec le texte déjà saisi. L'on va en 7 En 7, I'opérateur réagit à la proposition de suite. Trois réactions sont possibles: a) la suite convient, I'opérateur continue la saisie en frappant une touche d'entrée de donnée, le gestionnaire de suites considère cela comme une validation implicite, maintient l'affichage de la suite et l'incorpore aux données saisies. b) le contexte identifié est lié à plusieurs suites et une d'entre elles, qui n'est pas la première, convient; par un procédé qui admet plusieurs modes de réalisation, l'opérateur choisit la suite convenable et se retrouve dans le cas a) précédent. c) aucune suite ne convient, I'opérateur annule la proposition, 3 0 la suite affichée est effacée. Dans un premier mode de réalisation, une seule touche du clavier hors texte nommée touche de défilement permet le contrôle des suites; la frappe de cette touche fait apparaître, l'une après l'autre, à la suite du texte frappé, les suites présentes en dictionnaire, par ordre de probabilité décroissante; après la dernière, toute suite est effacée. Dans un deuxième mode de réalisation, deux touches sont affectées au contrôle des suites: la touche de défilement décrite précédemment et une touche d'effacement inconditionnel. Il est à noter que cette touche d'effacement peut avantageusement être distincte de la touche conventionnelle d'effacement arrière, I'usage normal de cette dernière permettant d'effacer caractère par caractère la fin d'une suite acceptée. Dans un troisième mode de réalisation, les suites possibles, s'il y en a plusieurs, sont affichées hors texte à la manière d'un menu (au sens informatique du mot). Le choix est effectué par un procédé conventionnel de sélection, touches de fonction numérotées ou souris par exemple. L'affichage d'une suite peut, selon le choix de l'opérateur, attirer l'attention par un signal sonore et/ou un mode particulier d'affichage, remplacé par le mode courant quand la suite est acceptée. Dans certains cas, le calcul montre qu'il est avantageux de mettre une suite à disposition de lI'opérateur, mais de ne pas l'afficher en continuité avec le texte déjà saisi, un acte positif étant requis pour que cette suite soit incorporée; un signal sonore ou un affichage hors texte est alors nécessaire. La disposition interne correspondante est appelée 'suite nulle'. Avantageusement, une suite acceptée peut, en tout ou en partie, faire partie d'un contexte, au même titre que les données saisies par le clavier. Le générateur 2 peut, si cela est fructueux, découper un article en un nombre quelconque de segments ayant alternativement la qualité 'contexte' et la qualité 'suite'. Une suite précédant un contexte sera appelée 'suite inter'. Le procédé selon l'invention peut mettre en oeuvre des abréviations conventionnelles; quand une chaîne arbitraire, le code, est saisie, elle est remplacée immédiatement par sa traduction. Dans cette fonction, la partie initiale du code peut être une suite écrite automatiquement ou la traduction d'un autre code. Par exemple on peut déclarer gestionnaire dm' comme code de gestionnaire de mémoire', gt' comme code de gestionnaire' et sauvegarde dm' comme code de 'sauvegarde de document'; 'gt dm' donnera bien 'gestionnaire de mémoire' mais dans un autre contexte la partie arbitraire 'm' aura un autre sens. Le code est traité comme un contexte et sa traduction comme une suite contenant un ordre d'effacement de la partie arbitraire du code. Sur la figure 3, I'on peut voir un exemple de poste de saisie de données assistée par ordinateur selon la présente invention. Le poste de la figure 3 comporte un clavier 23 et un dispositif de pointage 25, par exemple une souris connectée à une unité centrale 27, par exemple à un micro- ordinateur. L'unité centrale 27 est connectée à un dispositif de visualisation 29, par exemple un écran, un dispositif de sortie 31, par exemple une imprimante, et avantageusement à un haut-parleur 33. Une mémoire de masse 35, notamment un disque dur est reliée à l'unité centrale 27 par un interface bidirectionnel (non représenté). Le clavier 23 comporte des touches alphanumériques et de ponctuation 37 et des touches numériques 39 permettant de saisir les données ainsi que des touches de fonction 41 et de commande 43 permettant de dialoguer avec le programme informatique de saisie de données assistée par ordinateur et notamment de valider ou de refuser (étape 13) une proposition (étape 11) par le programme ou de choisir une proposition dans une liste comportant une pluralité de propositions. De même, les touches 41 et/ou 43 permettent d'afficher une suite de caractères correspondant à un article du dictionnaire ayant une probabilité moyenne de devoir suivre le dernier caractère suivi et annoncé par le système par l'intermédiaire d'un bip émis par le haut-parleur 33. Le dispositif selon l'invention peut être réalisé sous la forme de trois composants: un programme autonome de génération de dictionnaire, un module de saisie incorporé à un système de traitement de texte et un ensemble de fichiers de données, textes et dictionnaires. Voici un exemple de mise en oeuvre dans le cadre d'un système d'exploitation d'ordinateur utilisant la structure courante de fichiers et répertoires. Les textes qui appartiennent à une même catégorie sont enregistrés dans un répertoire qui leur est propre; ce répertoire se renouvelle par effacement des textes les plus anciens, ou par un choix délibéré de l'usager. Un dictionnaire associé à un répertoire est construit en prenant comme corpus le résultat de la concaténation des fichiers de ce répertoire; l'opération est prise en charge par le générateur, I'usager donne le nom du répertoire et l'ordre de construction. Le programme de traitement de texte est quelconque, le module de saisie apparaît comme un simple gestionnaire de 3 5 périphérique fournissant des codes de clavier. Sur les figures 4 à 12, I'on peut voir les organigrammes de l'exemple préféré de réalisation de l'étape 4 d'élaboration de dictionnaire. Le dictionnaire est avantageusement élaboré sous la forme d'un arbre. Il peut toutefois s'avérer avantageux, une fois le dictionnaire constitué, de le convertir en partie en une liste permettant une mémorisation plus compacte limitant l'occupation de la mémoire. Nous allons maintenant décrire en référence aux figures 4 à 12 I'exemple préféré d'élaboration du dictionnaire. Un texte est formé d'éléments codés appelés 'items', qui peuvent être des lettres, des espaces, des signes; un item a une couleur caractéristique': nous dirons, par exemple d'un texte o la lettre 'e' est écrite 36 fois qu'il contient 36 items de couleur e' Dans les exemples donnés, la couleur *espace est représentée par la barre horizontale basse *_' Des items consécutifs forment une 'chaîne'. Le procédé selon l'invention utilise des dictionnaires qui diffèrent des dictionnaires usuels et prennent plusieurs formes. Un dictionnaire est élaboré à partir d'un corpus. Dans sa forme primaire, il contient des *articles qui sont des chaînes présentes à plus d'un exemplaire dans le corpus; les articles sont indépendants du découpage en mots, ils peuvent contenir des espaces, des signes. Les articles sont classés selon une loi analogue à l'ordre alphabétique usuel. L'ensemble des articles commençant par une même couleur est une 'rubrique; la couleur initiale est la 'racine' de la rubrique. Le générateur de dictionnaire engendre automatiquement, à partir d'un corpus R, un dictionnaire fonctionnel. Ce dictionnaire contient des chaînes 'contexte' et des chaînes 'suite. A chaque contexte est associée une suite ou plusieurs suites classées par ordre de probabilité. La méthode de génération du dictionnaire produit un résultat optimum. Le dictionnaire et ses règles d'usage forment une loi exacte D. Le dispositif de saisie consulte le dictionnaire à chaque frappe de touche du clavier; quand les derniers items entrés forment une chaîne égale à une des chaînes contexte du dictionnaire, S1, la première suite associée à ce contexte, est proposée à l'opérateur de saisie, par affichage à l'écran. Après cet affichage, si l'opérateur frappe un élément quelconque de texte, S1 reste à l'écran et est insérée dans le texte. Un dispositif convenable, dépendant du matériel utilisé, permet de choisir une autre suite S2,..., Sn, s'il y en a. Par exemple, la touche de fonction F2 permet de choisir la suite S2, la touche de fonction F3 permet de choisir la suite S3, etc... Une touche d'effacement permet d'effacer en bloc toutes les suites S1 à Sn. Le dispositif selon l'invention peut aussi utiliser des abréviations conventionnelles ou =codes et les traduire au moment de leur frappe de façon apparemment instantanée; le code est traité comme une variante de contexte, sa traduction comme une suite. L'utilisateur sélectionne un corpus adapté aux données à saisir pour permettre au dispositif d'élaborer un dictionnaire. Les résultats sont d'autant meilleurs que le vocabulaire du texte frappé est plus pauvre, ce qui implique des dictionnaires spécialisés. Pour former un dictionnaire efficace, il faut accumuler dans un corpus un maximum de textes appartenant à la même catégorie, qu'il s'agisse par exemple de devis descriptif (pour tel type de prestation), de compterendu médical (pour tel examen), de critique de disque (pour tel genre musical). L'opérateur indique au dispositif selon la présente invention le ou les fichiers de données à inclure dans le corpus, par exemple en saisissant le nom des fichiers ou en les sélectionnant dans une liste. Un dictionnaire peut être sélectionné par défaut lors du démarrage du dispositif selon la présente invention. Le module 3 d'élaboration de dictionnaire effectue un premier balayage du corpus pour en extraire en un seul exemplaire chaque modèle de suite de caractères s'y présentant au moins S fois sans former une partie d'une chaîine déjà présente dans le dictionnaire. Chaque rubrique est caractérisée par la couleur de sa racine, à laquelle correspond une valeur de code. Une table donne l'adresse ou indice de la rubrique à partir du code, qui peut lui-même être utilisé comme indice dans la table des adresses; cette disposition est conservée dans les formes successives du dictionnaire. Avantageusement, le traitement permettant d'assigner des probabilités aux suites de caractères est effectué sur des éléments du dictionnaire mis sous la forme d'arbre. En effet, la structure du dictionnaire suivant est convenablement représentée par un ensemble d'arbres (un par rubrique). Un arbre est construit selon les trois conventions qui suivent: 1l a) L'arbre est formé de rameaux orientés. Le premier rameau est dit 'racine. A l'inverse de l'orientation naturelle, la racine est représentée en haut, la ramure s'étage vers le bas. b) Si, de la terminaison d'un rameau, ne part aucun autre rameau, ce rameau est dit terminal; s'il n'est pas terminal un rameau est Àpère' et engendre un nombre de rameaux Oils compris entre 1 et le nombre de couleurs existant dans le corpus. c) A chaque rameau sont associés une couleur (présente dans le corpus d'origine) et un effectif. Pour le premier article, chaque item donne un rameau; ces rameaux s'étagent de père en fils en suivant l'ordre d'écriture de l'article. On ajoute les articles dans l'ordre du dictionnaire primaire pour ajouter un article, il faut le comparer, item par item, au précédent; on crée de nouveaux rameaux à partir de la première différence rencontrée. Soit, par exemple, les articles consécutifs collage, 'colle', collier. La partie d'arbre correspondante contiendra une fois la séquence étagée des rameaux c,o,l,l; le dernier rameau I a trois rameaux fils: a, e, i a engendre g, e; e est terminal; i engendre e, r. Le cas de deux articles dont l'un est le prolongement de l'autre demande une convention particulière. Soient 'règle et 'règlement' présents dans le dictionnaire primaire. Le e final de règle sera traité comme père de deux rameaux: un rameau m de règlement et un rameau dit 'nul noté, par exemple, %, terminal, servant à signifier, dans la représentation de l'arbre, qu'il existe un article 'règle' dans le dictionnaire primaire. Ainsi, chaque article primaire donne un rameau terminal, qui a pour effectif celui de l'article; l'effectif de tout autre rameau est égal à la somme des effectifs de ses fils et se calcule en remontant. Soit ALFAR une procédure mettant sous forme d'arbre le dictionnaire primaire. Une rubrique du dictionnaire primaire est formalisée comme une table appelée MDO; un article contient: - un effectif MDO (j,E); - un nombre quelconque d'items MDO (j,h) j est le rang ou l'indice de l'article dans la rubrique, h le rang ou l'indice de l'item dans l'article. L'effectif est le nombre d'apparitions de l'article dans le texte ou corpus d'o le dictionnaire a été extrait. Les articles sont classés par ordre de valeur des items, correspondant à l'ordre alphabétique, en codage ASCII. Dans sa réalisation pratique, MDO peut être une liste d'items avec séparateurs, ce qui demande beaucoup moins de mémoire et ne limite pas a priori la longueur d'un article. L'arbre est codé dans une table de sortie MD, illustrée sur la figure 6, contenant une fiche de taille fixe par rameau. Les fiches sont écrites à partir de la structure bidimensionnelle de l'arbre selon les trois règles: a) la première fiche est celle de la racine; b) les fiches des rameaux issus d'un même père sont toujours consécutives et forment une 'famille. c) après une famille est écrite la fiche du rameau non encore codé, mais dont le père a été codé, situé le plus à gauche dans l'arbre. Une fiche de MD contient quatre termes: a- k, couleur du rameau. b- NF, nombre de fils. c- E, effectif. d- LA, lien, indice ou adresse du premier fils. Dans une famille, les fils, qui ont été extraits du dictionnaire primaire par ordre alphabétique, sont reclassés par ordre d'effectifs décroissants. L'algorithme d'ensemble de la procédure ALFAR est donné sur la figure 8. La construction de l'arbre demande que l'on garde une trace des embranchements laissés en attente. C'est le rôle de la table de montage MON, qui a une structure de pile. MON contient une fiche par niveau h de l'arbre. Un niveau correspond au numéro ou rang d'un item dans un article; par convention, la racine est au niveau zéro. Le nombre de fiches à réserver pour MON 3 0 correspond donc à la longueur maximale d'un article. Une fiche de MON contient trois termes: a- LMD, lien vers la table de sortie MD. b- LC, lien vers la table d'entrée MDO. c- NF, nombre de frères non codés. 3 5 Un terme j=MON(h,LC) désigne l'item MDO(j, h). Le premier travail est l'identification des fils d'un rameau. Soit, par exemple, un rameau de niveau 2 et de couleur C, descendant de A, B; le dictionnaire primaire contient NP articles commençant par ABC. NP est lenombre de pousses du rameau C. Plusieurs pousses peuvent avoir la même couleur, comme D dans les articles ABCDEF, ABCDEG, ABCDF; les pousses de la même couleur correspondent à un seul fils. Le nombre de fils NF du rameau C de niveau h=2 est le nombre de couleurs distinctes au niveau h+ 1=3 dans l'ensemble des articles égaux jusqu'au niveau h, c'est-à-dire commençant par AB. Ce travail est fait par la procédure POURK, qui doit délimiter et comparer les articles consécutifs dans MDO. Un rameau étant exploré, il faut: a- Remplir une fiche correspondante dans MD (figure 8, cadre ). b- Si le rameau a des fils, réserver dans MD la place de leurs fiches, puis traiter le premier fils (cadre 49). c- Si le rameau n'a pas de fils et a un frère, traiter le frère (cadre 51). d- Si le rameau n'a ni fils ni frère, remonter l'arbre en décrémentant le niveau h jusqu'à identification d'un frère en attente et le traiter (cadre 53). e- Quand on retrouve le niveau h = 0, l'arbre est terminé. Il faut également traiter les fils nuls. Soit un extrait du dictionnaire primaire, dans la rubrique A: AB, AC, ACD. Au niveau 1, l'article AB donne un rameau de couleur B sans fils; dans sa fiche NF = 0. Au même niveau est traité le rameau C, frère de B. La procédure POURK identifie C comme terminal dans AC et l'existence d'un article ACD égal à AC dans ses premiers items; POURK donne alors NFILS = 2; ALFAR forme une fiche pour C avec NF = 2, passe au niveau h=2 et reprend l'exploration à l'article AC. POURK constate que l'article AC n'a pas d'item au niveau 2; il donne NFILS = 0 et KP = 0; cela caractérise un fils nul; ALFAR forme la fiche de ce fils nul et traite ensuite son frère D. Non représenté dans l'algorithme, le reclassement est fait dans le cadre 45. La fiche du père d'un rameau contient un nombre de fils NF et un espace correspondant est réservé dans MD. La mise en place des fiches par ordre d'effectifs décroissants se fait par décalage puis insertion, à l'intérieur de cet espace réservé; I'arbre reclassé est montré sur la figure 7. Sur la figure 9, l'on peut voir un algorithme de la procédure POURK en supposant des articles indicés dans le dictionnaire primaire MDO. En pratique, MDO peut être une table d'octets codant des items; le premier octet d'un article est son effectif, pondéré si besoin pour éviter un débord; le deuxième est le deuxième item, la racine ne figure pas, elle est commune à toute la rubrique et connue initialement; le dernier octet d'un article est marqué par mise de son bit 7 à 1, ou suivi d'un séparateur. L'algorithme complet inclut alors des séquences de délimitation des articles et de comparaison octet par octet. Sur la figure 4, I'on peut voir un exemple d'arbre ayant cinq niveaux de profondeur numérotés de 0 à 4 correspondant à dix mots dont la liste commençant par 'ida et se terminant par 'iote est notée 'ORIGINE sur la figure 5. Les divers stades de transformation de la liste alphabétique dans l'arbre de la figure 4 sont illustrés sur la figure 5. La lettre i forme la racine, les fils de i, par exemple d, e et o sont disposés au niveau 1 de l'arbre. Les fils de d: é, e, o et r se trouvent au niveau 2 de l'arbre. Les fils de é: a et e se trouvent au niveau 3 de l'arbre. L'on effectue ensuite le calcul du gain obtenu par le procédé selon la présente invention. La grandeur choisie pour la mesure du gain est le nombre de frappes économisées dans l'écriture fictive du corpus lui-même. Dans le cas optimum d'un contexte C toujours suivi par une suite S, le gain apporté par cette suite est le produit de la longueur de S, exprimée en nombre d'items, par le nombre d'exemplaires de C dans le corpus. Il s'agit de déterminer à quel étage de l'arbre une suite sera déclarée. Appelons Initiateur le rameau qui précède une suite. Un rameau fils unique n'est jamais initiateur, puisque la longueur de la suite, et donc le gain, croît en prenant son père comme initiateur, sans croissance d'un terme négatif. La question qui se pose quand un rameau de niveau h a plusieurs fils est: le plus grand gain est-il obtenu en faisant l'initiation au niveau h (niveau 'père') ou au niveau h + 1 (niveau 'fils') ? A chaque niveau sont calculés: GI, gain apporté par les suites issues d'un rameau s'il est initiateur. GA, somme des gains apportés par les fils du même rameau si ces fils sont initiateurs. Si, à un seuil près, GA > GI, le rameau reçoit la marque A. Les calculs et décisions sont donnés dans l'algorithme du gain illustré sur les figures 10, 11 et 12. Quand plusieurs suites sont possibles après un initiateur, il faut traiter deux termes de gain: GPI, somme des produits longueur * effectif des suites. GNI, terme négatif, fonction du nombre de suites et de leur effectif; le calcul de ce terme est pondéré par le paramètre KGN. Si KGN = 1 et si le choix et/ou le rejet des suites se fait par une touche de défilement, GNI correspond au nombre de frappes de cette touche. KGN permet de tenir compte du temps de lecture et de choix, selon la préférence de l'usager; quand KGN croît, en moyenne les contextes s'allongent et le nombre de suites après un même contexte diminue. La sommation se fait dans la fiche MON du père, en cadre G de l'algorithme ARALP (figure 10). Si l'apport individuel d'une suite est inférieur à un seuil SGS, le rameau fils correspondant reçoit la marque G (pour Gel) et le gain ne change pas; I'effectif du fils abandonné sera versé dans un terme 'fils nul' géré ultérieurement. L'algorithme traite aussi le cas du fils nul d'origine (rameau dont le terme k est nul). Si le gain GI d'un rameau est supérieur à un seuil GSI, il reçoit la marque Vl; un rameau n'ayant pas cette marque sera ultérieurement refusé comme initiateur. Une procédure ARALP illustrée sur la figure 10 assure I'extraction d'articles d'un arbre. Les articles apparaissent les uns après les autres dans la table de montage MON. Cet algorithme est utilisé plusieurs fois pour le calcul des gains et la pose des marques dans l'arbre. Objets: MD: table codant l'arbre; une fiche d'indice i contient: MD (i, k): couleur MD (i, NF): nombre de fils MD (I, LA): lien, indice du premier fils Dans MD, les fils d'un même rameau sont consécutifs. MON: table ou pile de montage; dans une fiche d'indice h: MON (h, LMD): lien, indice terme de MD correspondant MON (h, NF): nombre de frères non examinés MON (h, k): couleur RACINE: couleur de la rubrique LIEN, NFILS, KT: rangement temporaire termes de MD. Le calcul du gain utilise des variables de travail hors tables et des variables logées dans deux fiches consécutives de MON: la fiche de niveau h, dont les termes sont repérés par (f), et celle de niveau h - 1 dont les termes sont repérés par (p). Les résultats utilisés dans la phase suivante sont des valeurs logiques placées dans la table MD. Variables en table MON: EF0: effectif d'origine ENI(: effectif diminué, pour calcul du terme négatif GPI(: terme positif du gain GNI0: terme négatif GA(: gain si ancêtre, somme des gains des fils initiateurs NS(:nombre de suites FNUL(: logique 'présence d'un fils nul K(): couleur Variables en table MD: Ces variables sont adressées par le lien LMD de la fiche MON; on note x(f,MD) pour un terme x de MD adressé par la fiche 'fils de MON. Trois variables logiques: A(: marque A (Ancêtre) VI(: marque Validation Initiateur G(: marque G (Gel) Paramètres: SGS: seuil gain d'une suite SGI: seuil gain d'un rameau initiateur KGN: coefficient du terme négatif du gain Variables de travail: GIT, TGPI, TGNI, GI, DGI Les figures 11 et 12 montrent les étapes du calcul, logées dans les différents cadres de l'algorithme ARALP; la correspondance avec la figure 10 est faite par la lettre de chaque référence de cadre. L'on effectue ensuite la reprise et transformation des marques. La phase %gain laisse trois marques: A (ancêtre de suite), G (gel de suite), VI (validation initiateur). La phase 'marque' va reprendre l'arbre et en fonction de ces trois marques qui disparaissent, en poser trois autres: V, validation; un rameau sans V sera effacé ultérieurement I, initiateur; marque du dernier rameau avant une suite S, marque d'un rameau membre d'une suite. L'arbre est exploré selon la procédure ARALP de la figure 10. En cadre F de cette procédure, un article complet est installé dans la table MON et les règles de transformation sont appliquées. Une fiche de MD peut correspondre à un item commun à plusieurs articles et être plusieurs fois l'objet de ce travail; il faut donc laisser les premières marques et poser les nouvelles par une mise à un logique de variables initialisées à zéro. La pose des marques se fait en trois passes pour un article: 1 - une passe de recherche d'un rameau 'A dans l'article 2 - une passe descendante de la racine vers la terminaison, qui pose les marques I et S 3 - une passe ascendante qui pose les marques V manquantes. On utilise les règles de transformation suivantes: 1- (Passe 1) Si un article ne contient aucune marque A, en poser une dans la racine. 2- (Passe 2) Poser les marques I et V sur tout rameau qui remplit les quatres conditions: - il n'a pas la marque A - son père a la marque A - il a la marque VI - il a au moins un fils qui n'a pas la marque G 3- (Passe 2) Poser les marques S et V sur tout rameau qui remplit les deux conditions: - il n'a ni la marque G, ni la marque I - son père a la marque I ou la marque S 4- (Passe 3) Marquer V tout rameau dont le fils a la marque V. L'on effectue ensuite le reclassement des fils nuls. Rappelons qu'il existe des fils nuls d'origine, de couleur zéro, créés quand un article est le prolongement d'un autre. Quand le calcul du gain laisse la marque G dans un rameau, l'effectif de ce rameau doit être versé dans celui d'un fils nul. S'il n'a aucun frère nul, il faut en créer un. Pour un père donné, le fils nul d'origine, s'il en existe, et les frères nuls par marque G fusionnent en un seul rameau qui cumule l'effectif de ses composants. Il faut ensuite reclasser ce fils nul selon son effectif. Le travail se fait directement sur la table MD. Les familles intéressées sont celles qui sont issues d'un rameau I et ont plusieurs frères. La somme des effectifs des fils nuls est accumulée dans la variable EFN; puis, s'il y a lieu, on ajuste la position de la fiche correspondante dans la liste des frères. Le terme NF de la fiche père est ensuite ajusté; s'il y a plusieurs fils nuls, un seul est compté. L'on effectue ensuite une mise au format final. * Le dictionnaire muni des marques V, I et S, avec les fils nuls reclassés, est utilisable tel quel, mais sa taille peut être réduite par un changement de format. Les rameaux qui ne sont pas suite restent dans une structure d'arbre, mais le contenu d'une fiche est réduit à 4 termes: couleur K, logique I, nombre de fils NF, lien LA. Les rameaux suite pourraient rester en structure d'arbre mais tiennent beaucoup moins de place et s'utilisent plus facilement en revenant à une structure de liste ou chaîne de caractères. Une rubrique codée en MD est transformée en deux tables une table arbre MD2 et une table des suites. Pour comprendre une particularité du format final, il faut exposer la notion de "suite inters. Prenons l'exemple d'un dictionnaire primaire contenant les articles 'gestion', 'gestionnaire', 'gestionfinancière, 'gestion_équilibrée"; le calcul et le marquage donnent: *ges est contexte; s' a la marque I. tion' est suite, mais est aussi contexte; son dernier item 'n' renvoie à la structure d'arbre, avec deux fils, 'n' et _. un initialise une suite 'naire'. _ a deux fils, 'f' et 'é, tous deux initiateurs. Voici des exemples de saisie correspondants, présentés en soulignant les suites affichées et acceptées: gestiogn autre...; 'ges entraîne la suite 'tion', seule utilisée. gestiQnnaire; après 'gestion', 'n entraîne la suite 'aire'. gestion financière; après gestion', '_f entraîne la suite 'inancière'. Dans cet exemple, tlion' est une suite inter, 'inancière' une suite terminale. Une suite inter demande que son dernier item renvoie à la forme arbre. Le format correspondant est le suivant Fiche MD2: si le terme I = 1, le terme LA est l'indice de la première suite dans la table des suites. Suites: les suites issues d'un même père forment une famille; chaque suite est terminée par un octet délimiteur parmi deux: - TS, fin de suite terminale - TSI, fin de suite inter. Apres ce délimiteur, les termes correspondant à NF et LA d'une fiche MD2 sont écrits et renvoient à l'arbre. Le dispositif selon l'invention est normalement incorporé à un système cadre effectuant des fonctions connues de traitement de texte. Les fonctions propres sont réparties en trois parties: - Le choix et le chargement du dictionnaire; le dictionnaire doit être entièrement en mémoire vive pendant la frappe. Cette fonction est triviale, elle utilise les procédés connus. - La gestion courante de l'entrée caractère, de l'affichage et de l'insertion des suites, correspondant aux cadres 8, 11, 6, 7 de la figure 2. - La gestion propre du dictionnaire avec son mécanisme de parcours de l'arbre et d'initialisation des suites (procédure SIGNET) correspondant au cadre 10 de la figure 2. Tables et indices: MD: table contenant le dictionnaire MD apparaît ici comme une table d'octets à un indice AS: indice initial d'une suite CPS: indice courant d'une suite ZPS: indice de la fin d'une suite PSI: indice dans MD de la partie arbre d'une suite inter. Si PSI = 0, la suite courante est terminale MT: table contenant le texte frappé PKC: indice dans MT Variables: KO: code entré par la dernière frappe clavier GK: sauvegarde de K0 NS: nombre de suites CKS: compte des items affichés d'une suite FS: logique 'suite en cours' FSO: logique 'initialisation de suite Constantes: DEFIL: code touche de défilement TS: code fin de suite terminale TSI: code fin de suite inter TA: taille, dans la table des suites, des termes NF et LA terminant une suite inter. Sur la figure 13, l'on peut voir le traitement par le dispositif de saisie selon l'invention. Quand le drapeau FS est à zéro, I'entrée d'un code KO par le clavier se fait selon les propriétés du système hôte; la consultation du dictionnaire est faite par la procédure SIGNET (cadre 55). Si cette consultation entraîne une suite, SIGNET met le drapeau FSO à 1 et fournit I'adresse de la suite; celle-ci est affichée (cadres 57, 59, 61). Quand FS = 1, une suite a été affichée; si le code entré est DEFIL, la suite est effacée (cadre 63) et remplacée par la suivante s'il en reste. Si le code entré n'est pas DEFIL, la suite est incorporée au texte frappé (cadres 65, 67, 69, 71, 73, 75, 77). Sur la figure 14, on peut voir le mécanisme de la procédure SIGNET. L'on utilise les données d'entrée et de sortie suivantes: MD: table dictionnaire. Pour SIGNET, MD contient: - Une table MAR d'indices de rubriques: un terme MAR(k) est la base d'indiçage de la rubrique de racine k. - Pour chaque rubrique, une partie arbre, contenant des fiches, et une partie suites. Dans SIGNET, MD(i,x) désigne le terme x de la fiche i, parmi: k, couleur I, logique 'initiateur de suite NF, nombre de fils ou de suites LA, lien vers le premier fils ou la première suite. Données communes avec la gestion caractères et suites KO, MT, PKC, PSI, AS, CPS, FS, FSO. Données propres: MS: table des signets. Un signet est un indice d'une fiche de MD (partie arbre). Variables propres: SPS, SPD: indices dans MS CF: compteur de fils TAS: indice de suite, temporaire i, j: indices de fiches MD Un signet désigne un rameau de l'arbre codant le dictionnaire. A chaque frappe ou 'paso, si KO correspond à une rubrique non vide un signet est créé et placé à la suite de ceux qui sont déjà dans la table MS (cadres 79, 83) et pour chaque rameau désigné par un signet, KO est comparé à la couleur de chacun de ses fils (cadre 85). Si aucun fils n'a la couleur de KO, le signet est effacé. S'il y a un fils, I'action dépend de la variable I de sa fiche. Pour I = O, l'indice de la fiche est mis dans le signet; le signet est avancé d'un niveau dans l'arbre (cadre 87). Pour I = 1, le chemin suivi dans l'arbre a mené à une suite et il faut l'afficher; SIGNET met l'indice de la suite dans AS (par l'intermédiaire de TAS, cadre 10), fait FSO = 1 et efface le signet qui a fini son rôle. A chaque pas, la partie remplie de la table MS est donc explorée complètement; des signets peuvent être effacés. A chaque pas, MS est réécrite. Deux indices sont utilisés: SPS, source, et SPD, cible. Le signet MS(SPS) est lu; s'il est avancé, il est recopié en MS(SPD); s'il doit être effacé, il n'est pas recopié. La variable I n'est testée que pour le signet 'doyen', toujours situé au début de la table (indice O); le signet le plus ancien correspond au contexte le plus long et a priorité. Dans le cas particulier de la fin d'une suite inter, connu par PSI non nul, les termes de liaison à la forme arbre sont en fin de suite et sont gérés par une séquence spéciale (cadre 89). Le dispositif selon la présente invention peut utiliser des abréviations conventionnelles. Une 'abréviation est formée d'une chaîne nommée 'code' associée à une chaîne T nommée 'traduction. Après la frappe du code, c'est la traduction qui est affichée et ajoutée au texte. Dans le dispositif selon l'invention, les abréviations peuvent utiliser le contexte. Par exemple, la chaîne *dictionnaire_x' peut être le code de *dictionnaire contextuel; la traduction se fait si 'dictionnaire est frappé complètement ou s'il est lui-même une suite ou une traduction. La forme préférentielle de code est une partie contexte C qui restera inchangée dans le texte final, suivie d'une partie code arbitraire A, typiquement faite d'une seule lettre, auquel cas elle n'est pas affichée; si A contient plusieurs items, ils sont effacés; finalement, seule la traduction est affichée. Dans le dictionnaire fonctionnel, le code est un chemin d'un arbre de même forme qu'un contexte; son dernier rameau initialise une seule suite. Cette suite commence par un ou deux items qui n'ont pas une couleur possible pour un item de texte et qui signifient: effacer les n derniers items frappés, n étant la longueur de la partie code arbitraire de l'abréviation. Le reste de la suite est la traduction. L'on peut par exemple effectuer une construction automatique des abréviations. L'usager donne au générateur de dictionnaire un seuil SAB; une abréviation est construite pour les chaînes du dictionnaire primaire dont le produit longueur * effectif dépasse SAB. Le format est arbitraire, il résultera de préférence des règles suivantes: - le code n'existe ni dans le corpus, ni dans une autre abréviation. - seul le dernier item est arbitraire. Le dispositif de saisie de données assistée par ordinateur selon l'invention peut également permettre la construction manuelle des abréviations. L'usager définit ses propres abréviations. Voici une forme élémentaire de réalisation: - choisir deux caractères absents du corpus (par exemple, et *; au besoin, en effacer d'inutiles); l'un sera séparateur, l'autre abréviateur. - écrire dans le corpus, pour chaque abréviation: séparateur, code, autant d'abréviateurs qu'il y a d'items du code à effacer, traduction, séparateur. Par exemple, I'abréviation de *_maximum' en *_mx s'écrira _mx*aximum . Le générateur de dictionnaire identifie les chaînes comprises entre séparateurs et contenant un abréviateur, et les codes selon le format défini. Le procédé et le dispositif selon la présente invention s'appliquent notamment à l'assistance à la saisie de données alphanumériques. La présente invention s'applique principalement à l'assistance à la saisie de textes, notamment de textes spécialisés par l'intermédiaire d'un clavier. REVENDICATIONS 1. Procédé de saisie de données, notamment de textes, assistée par ordinateur, caractérisé en ce qu'il comporte les étapes consistant à: a) introduire et mémoriser un corpus (1) comprenant au moins un ensemble de données analogues aux données à saisir; b) élaborer à partir du corpus (1) un dictionnaire primaire (3) dont les articles sont des chaînes de données élémentaires présentes en plusieurs exemplaires dans le corpus (1). c) former un dictionnaire fonctionnel (5) par division de chaque article du dictionnaire primaire (3) en au moins une partie initiale 'contexte et une partie finale 'suite de manière que le gain défini comme le produit de la longueur de la suite par sa probabilité d'apparition après le contexte, dans le corpus, soit maximum, d) en cours de saisie, si les dernières données saisies coïdincident avec un des contextes du dictionnaire fonctionnel (5), proposer à l'opérateur de saisie l'introduction automatique de la suite correspondante dans les données saisies. 2. Procédé selon la revendication 1, caractérisé en ce que si au cours de la formation du dictionnaire fonctionnel (5) plusieurs contextes sont identiques, un seul est conservé et est associé à une liste des suites correspondantes classées par ordre de probabilité, ces différentes suites étant proposées à l'opérateur au cours de la saisie. 3. Procédé selon la revendication 1, caractérisé en ce que, à I'étape c), un article extrait du dictionnaire primaire (3) peut être divisé en un nombre non limité par principe de contextes et de suites, placés dans le dictionnaire fonctionnel (5), la division étant faite de manière que le gain global soit maximum. 4. Procédé selon l'une quelconque des revendications précédentes, caractérisé en ce que dans l'étape d), on incorpore directement dans l'ensemble des données en cours de saisie, à la suite du dernier caractère saisi, la suite la plus probable,..., et en ce qu'une action positive sur un dispositif de commande, par exemple une touche d'un clavier (23) est requise pour annuler cette incorporation. 3 5 5. Procédé selon l'une quelconque des revendications précédentes, caractérisé en ce qu'à l'étape c), la valeur du gain est corrigée par des facteurs qui tiennent compte du temps et de l'attention nécessaires à l'opérateur pour choisir, accepter ou refuser une suite. 6. Procédé selon la revendication 2, caractérisé en ce qu'à l'étape d), les diverses suites (1) sont proposées successivement, dans l'ordre de probabilité décroissante, et qu'un moyen de commande, notamment une touche du clavier (23), permet de les faire défiler l'une après l'autre. 7. Procédé selon la revendication 2, caractérisé en ce que, après coïncidence des dernières données saisies et d'un contexte du dictionnaire fonctionnel (5) associé à plusieurs suites, ces suites sont affichées et l'une d'entre elles peut être choisie par un procédé de désignation directe tel qu'une souris, des touches de déplacement de curseur ou un jeu de touches dont les numéros correspondent à ceux des suites affichées. 8. Procédé selon l'une quelconque des revendications précédentes, caractérisé en ce que l'on répète plusieurs fois les étapes a), b) et c) avec des corpus (1) différents correspondant à des données à saisir différentes, et en ce que l'on choisit dans une liste le dictionnaire le plus adapté à l'ensemble des données à saisir. 9. Dispositif de saisie de données, notamment de textes, assistée par ordinateur comprenant un ordinateur, notamment un micro- ordinateur, comprenant des moyens d'entrée/sortie (23, 25, 29, 31) et une mémoire de masse (35) ainsi qu'un éditeur ou un traitement de textes mémorisés dans la mémoire de masse (35), caractérisé en ce qu'il comporte des moyens de mémorisation dans la mémoire de masse (35) d'un corpus (1) comportant au moins un ensemble de données analogues aux données à saisir, des moyens (27) pour élaborer à partir du corpus (1) un dictionnaire (5) comportant les suites de caractères apparaissant plusieurs fois dans le corpus (1), et pour calculer et mémoriser dans le dictionnaire (5) la probabilité pour qu'une suite de caractères suive, dans l'ensemble des données à saisir, les derniers caractères saisis ainsi que des moyens (27, 29) pour proposer à I'opérateur de saisie l'introduction dans l'ensemble des données de la suite la plus probable si ladite probabilité est supérieure ou égale à un seuil prédéterminé. 10. Dispositif de saisie de données, notamment de textes, assistée par ordinateur comportant un ordinateur, notamment un micro- ordinateur comprenant des moyens d'entrée/sortie (23, 25, 29, 31) et une mémoire de masse (35) mémorisant un éditeur ou un traitement de textes, 26 caractérisé en ce que la mémoire de masse (35) mémorise une pluralité de dictionnaires comportant les suites des caractères susceptibles d'apparaître dans l'ensemble des données à saisir et les valeurs de probabilité d'apparition de cette suite en fonction des caractères précédemment saisis et des moyens5 de sélection par l'opérateur du dictionnaire correspondant aux données à saisir.