FR 2821186 A1 20020823 FR 0102270 A 20010220 DISPOSITIF D'EXTRACTION D'INFORMATIONS D'UN TEXTE A BASE DE CONNAISSANCES. La présente invention appartient au domaine de l'extraction d'informations de textes non structurés. Plus précisément, elle permet la constitution et l'enrichissement d'une base de connaissances propres à un domaine qui améliorent l'efficacité de l'extraction. L'extraction d'informations (Information Extraction ou IE en anglais) se distingue de la collecte d'informations (Information Retrieval ou IR en anglais). La collecte d'informations consiste à trouver les textes contenant une combinaison de mots faisant l'objet de la recherche ou, le cas échéant, une combinaison voisine, le degré de voisinage permettant d'ordonner la collection des textes contenant ladite combinaison par ordre de pertinence. La collecte d'informations est particulièrement utilisée en recherche documentaire et, de plus en plus, par le grand public (utilisation des moteurs de recherche sur le réseau Internet). L'extraction d'informations consiste à rechercher dans une collection de textes non structurés toutes les informations (et seulement celles-ci) ayant un attribut (par exemple tous les noms propres, les chefs d'entreprises, les chefs d'États, etc. ) et à ranger toutes les occurrences de l'attribut dans une base de données pour les traiter ensuite. L'extraction d'informations est particulièrement utilisée en intelligence économique et dans le renseignement civil ou militaire. L'état de la technique en extraction d'informations est bien représenté par les travaux et communications présentés aux conférences sur la compréhension des messages qui se déroulent tous les deux ans aux États-Unis (Références : Proceedings of the 5TH, 6'H and 7tTH Message Understanding Conference (MUC-5, MUC-6, MUC-7), Morgan Kaufmann, San Mateo, CA, USA). Les algorithmes de sélection mettent en oeuvre depuis longtemps déjà des automates à états finis (Finite State Tranducers, FST", ou Finite State Machines, FSM"). Voir notamment les brevets US 5,610, 812 et 5,625, 554. La pertinence des résultats de ces algorithmes est cependant très dépendante de la proximité sémantique des textes qui sont traités. Si celle-ci n'est plus assurée, comme dans le cas d'un changement de domaine, les algorithmes doivent être entièrement reprogrammés, ce qui est long et coûteux. Les brevets US 5,796, 926 et 5,841, 895 enseignent l'utilisation de certaines méthodes d'apprentissage pour programmer de manière semiautomatique les algorithmes des machines à états finis. Les méthodes de cet art antérieur sont limitées à l'apprentissage de relations syntaxiques dans le contexte d'une phrase, ce qui implique la nécessité de recourir encore de manière très importante à la programmation manuelle. La présente invention résout ce problème en permettant l'apprentissage d'autres types de relations et en étendant le champ de l'apprentissage à la totalité d'une collection de textes d'un domaine. A ces fins, l'invention propose un dispositif d'extraction d'informations d'un texte comprenant un module d'extraction et un module d'apprentissage coopérant entre eux et comprenant des moyens pour sélectionner automatiquement dans le texte les contextes d'occurrence de classes/entités des informations à extraire, pour sélectionner automatiquement parmi ces contextes ceux qui sont pertinents pour un domaine et pour permettre à l'utilisateur de modifier cette dernière sélection de telle sorte que le module d'apprentissage améliorera la prochaine sortie du module d'extraction, caractérisé en ce que le module d'extraction comprend en outre des moyens pour identifier les relations existant dans le texte entre les entités pertinentes en sortie des moyens. L'invention propose également un procédé d'extraction d'informations d'un texte comprenant une méthode d'apprentissage et une méthode de sélection, la méthode de sélection comprenant une étape de sélection automatique dans le texte des contextes d'occurrence des classes/entités des informations à extraire, une étape de sélection automatique parmi ces contextes de ceux qui sont pertinents pour un domaine et une étape de modification par l'utilisateur des sorties de l'étape précédente, les sorties modifiées étant prises en compte dans la méthode d'apprentissage pour améliorer le prochain résultat de la méthode de sélection, caractérisé en ce que la méthode de sélection comprend en outre des étapes pour identifier les relations existant dans le texte entre les entités pertinentes en sortie des étapes de la méthode de sélection. L'invention sera mieux comprise, et ses différentes caractéristiques et avantages ressortiront de la description qui suit d'un exemple de réalisation et de ses figures annexées, dont : - la figure 1 expose une modalité de réalisation matérielle du dispositif ; - la figure 2 montre l'architecture du dispositif selon l'invention ; - la figure 3 montre l'ordinogramme de résolution des conflits en fonction du contexte ; - la figure 4 montre l'enchaînement des étapes du procédé selon l'invention ; - la figure 5 montre l'ordinogramme de mise en relation des entités ; - la figure 6 montre un exemple d'analyse morpho-syntaxique ; - la figure 7 illustre un exemple de transduction ; - la figure 8 illustre les enchaînements des étapes de sélection sur un exemple ; - la figure 9 illustre les enchaînements des étapes d'apprentissage sur un autre exemple. Les dessins annexés comportent de nombreux éléments, notamment textuels, de caractère certain. En conséquence, ils pourront non seulement illustrer la description, mais aussi contribuer au besoin à la définition de l'invention. Pour être plus lisible, la description détaillée manipule les éléments de fichier en langage nature. Par exemple, on parlera de REUTERS comme nom de l'agence (SOURCE). En fait, informatiquement, REUTERS est une chaîne de caractères représentée par des octets correspondants. Il en est de même pour les autres objets informatiques : dates, valeurs numériques, notamment. Le marquage (TAG) est aussi une opération concrète, qui, à titre de pur exemple non limitatif, est illustrée à la manière du langage XML. Comme montré sur la figure 1, le dispositif pourra comprendre une unité centrale et sa mémoire associée (CPU/RAM) avec un clavier et un moniteur. L'unité centrale sera avantageusement connectée à un réseau local, lui-même connecté éventuellement à un réseau étendu (ECRAN) public ou privé, le cas échéant par des liaisons sécurisées. Les collections de textes à traiter seront disponibles en format alphanumérique de plusieurs types (traitement et texte, HTML ou XML), sur des moyens de stockage (ST1, ST2) qui seront par exemple des disques redondants connectés au réseau local. Ces moyens de stockage comporteront également les textes ayant subi les traitements selon l'invention (TAGTEXT) ainsi que les différents corpus de textes par domaine (DOM- TEXT) avec les index appropriés. Seront également stockées sur ces disques la/les bases de données (FACTJDB) alimentées par l'extraction d'informations. La base de données sera avantageusement du type relationnel ou du type objet. La structure des données sera définie d'une manière connue par l'homme du métier en fonction du cahier des charges de l'application ou générée par celle-ci (voir par exemple la fenêtre FACTDB de la figure 4). Les textes à traiter (TEXTE) peuvent être importés sur les moyens de stockage (ST1, ST2) par disquette ou autre moyen de stockage amovible ou provenir du réseau étendu, directement en format compatible avec le sous-module PREPROC~MOD (figure 2). Ils peuvent également être capturés sur l'un des réseaux connectés au dispositif selon l'invention par des dispositifs de capture. Il peut s'agir de messages en forme alphanumérique venant par exemple d'une messagerie capteur de texte , de documents scannés ou de fax capteur de fax ou de messages vocaux capteur de voix . Les périphériques informatiques permettant cette capture et les logiciels permettant de les convertir en format texte (reconnaissance d'image et reconnaissance de la parole) sont disponibles sur le marché. Dans le cas d'applications de renseignement, il peut être utile d'effectuer une interception et un traitement temps réel de documents échangés sur les réseaux de communication filaires ou hertziens. Dans ce cas les dispositifs spécifiques d'écoute seront intégrés dans le système en amont des périphériques de capture. Le dispositif selon l'invention tel que schématisé sur la figure 2 comprend un module d'extraction (20) ou EXTJvMOD auquel est présenté le texte à traiter dz TEXT , 10). Ledit module d'extraction (20) comprend un premier programme de prétraitement ( PREPROC~MOD , 211) qui reconnaît la structure du document pour en extraire de l'information. Les documents structurés permettent une extraction simple, sans analyse linguistique, parce qu'ils présentent des en-têtes ou des structures caractéristiques (en-têtes de courrier électronique, cartouche de dépêche d'agence). Ainsi dans l'exemple de la figure 4, la cartouche de la dépêche d'agence de la fenêtre STRTEXT comporte : -le nom de l'agence (SOURCE = REUTERS ), - la date de la dépêche (DATE~SOURCE = 27-04-1987, - l'intitulé de la rubrique (SECTION = Financial news ). Pour reconnaître des entités spécifiques, il suffit de reconnaître le type de document (dépêche d'agence) à partir de la présence d'un cartouche caractéristique. Les trois entités sont ensuite prélevées à leur position déterminée dans le cartouche. Le module d'extraction (20) comporte également un deuxième programme pour extraire les entités ( ENT~EXT , 212) c'est-à-dire reconnaître les noms de personnes, de'lieux d'entreprise et les expressions spécifiées dans le domaine considéré. Le cartouche de la fenêtre TAG- TEXT de la figure 4 montre les entités/expressions avec la classe qui leur a été attribuée par marquage : Bridgestone Sports"- COMPANY vendredi - DATE Taiwan LOCATION une entreprise ! oca) e - COMPANY clubs de golf"- PRODUCT Japon - LOCATION Brigestone Sports Ta'fwan - > COMPANY 20 million de nouveaux dollars taïwanais- CAPITAL janvier 1990 DATE clubs en acier et en bois-métal- > PRODUCT La reconnaissance des entités/expressions fera appel au dictionnaire (KB3, 413) lui-même alimenté par des connaissances générales (KBp 411) et des connaissances apprises (KB2, 412). Par exemple Taiwan et Japon sont des noms de lieux (LOCATION) figurant dans le dictionnaire KB,. La reconnaissance utilisera également une grammaire (KB4, 414), elle-même alimentée par les connaissances générales (KB,, 411) et les connaissances apprises (KB2, 412). Par exemple, Bridgestone Sports et Bridgestone Sports Taïwan sont reconnus comme occurrences de l'entité COMPANY car ils apparaissent dans la structure des deux phrases comme qualificatifs du mot compagnie . De même, clubs de goif"et c ! ubs en acier et en bois-métal sont reconnus comme occurrences de l'entité PRODUCT car ils sont respectivement compléments d'objet direct du verbe produire et partie de complément circonstanciel du verbe débuter avec pour sujet production . Dictionnaire et grammaire devront pouvoir être combinés pour lever des ambiguïtés. Par exemple les trois mots Bridgestone Sports Taïwan sont reconnus comme appartenant à une même occurrence de COMPANY bien que Bridgestone Sports ait déjà été reconnu comme occurrence de COMPANY et Taïwan comme occurrence de LOCATION et appartenant donc tous deux au dictionnaire (KB2, 413). En effet, aucune ponctuation ou préposition ne sépare dans la phrase les deux groupes. On en déduit donc qu'il s'agit d'un mot nouveau composé des deux groupes précédents. Plusieurs types d'algorithmes seront utilisés à ce stade. Ces algorithmes sont mis en oeuvre dans l'étape de sélection (1000) représentée sur la figure 3, plus particulièrement aux étapes (1100) ( Sélection de toutes les occurrences et contextes des entités dans le texte ) et (1110) dz Première sélection des occurrences pertinentes ). Ces étapes mises en oeuvre par l'ordinateur de manière automatique, c'est-à-dire sans intervention de l'utilisateur, sont suivies d'une étape (1120) dz Seconde sélection des occurrences pertinentes-Addition/soustraction des occurrences pertinentes/non pertinentes") semi-automatique où l'utilisateur intervient par une étape (1130) en sélectionnant les occurrences/contextes de l'entité qui lui paraissent pertinents. Cette étape est visualisée dans la fenêtre (3300) de la figure 5. A titre d'exemple on citera : - la réutilisation des règles partielles ; la méthode décrite utilise les éléments déjà trouvés et les règles de la grammaire de reconnaissance des noms propres pour étendre la couverture du système initial. Il s'agit donc d'un cas d'apprentissage à base d'explication. Le mécanisme se fonde sur les règles de la grammaire ayant mis en jeu des mots inconnus. Par exemple, la grammaire peut reconnaître Mr Kassianov comme étant un nom de personne même si Kassianov est un mot inconnu. Les occurrences isolées du mot peuvent dès lors être étiquetées comme nom de personne. L'apprentissage est ici utilisé comme un mécanisme inductif utilisant les connaissances du système (les règles de la grammaire) et les entités préalablement retrouvées (le jeu d'exemples positifs) pour améliorer les performances ; - l'utilisation des structures de discours ; les structures de discours sont une autre source pour l'acquisition de connaissances, comme les énumérations, facilement repérables par exemple par la présence d'un certain nombre de noms de personnes, séparés par des connecteurs (virgules, conjonction de subordination et ou ou"etc.). Par exemple, dans la séquence suivante : Kassianov , Kostine and Primakov , Kostine est étiqueté comme un mot inconnu. Le système infère à partir du contexte (le mot Kostine apparaît dans une énumération de noms de personne) que le mot Kostine réfère à un nom de personne, même s'il s'agit ici d'un nom de personne isolé qui ne peut être typé à partir du dictionnaire ni d'autres occurrences dans le texte. - la gestion des conflits entre stratégies d'étiquetage ; ces processus d'apprentissage conduisent à des conflits de type, notamment quand le typage dynamique a permis d'affecter une étiquette à un mot qui est en contradiction avec l'étiquette contenue dans le dictionnaire ou identifiée par une autre stratégie dynamique. C'est le cas, par exemple, quand un mot enregistré comme nom de lieu dans le dictionnaire apparaît comme nom de personne dans une occurrence non ambiguë du texte. Considérons le passage suivant : &commat; Washington, an Exchange allyn Seems &commat; To Be Strong Candidate to Head SEC &commat;.... WALL STREET JOURNAL (J), PAGE A2 WASHINGTON Consuela washington, a longtime House staffer and an expert in securities laws, is a leading candidate to be chairwoman of the Securities and Exchange Commission in the Clinton administration. Il est clair que dans ce texte Consuela Washington désigne une personne. La première occurrence du mot Washington est plus problématique, dans la mesure où la seule information permettant de faire un choix dans la phrase est une connaissance sur le monde, à savoir que c'est généralement une personne qui dirige un organisme. Pour circonscrire ce type de problème et éviter la propagation des erreurs, le processus de typage dynamique est limité, en cas de conflit (c'est- à-dire, si un mot a reçu une étiquette qui est en conflit avec une étiquette préalablement enregistrée pour ce mot dans le dictionnaire ; c'est le cas du mot Washington dans l'exemple ci-dessus) au texte en cours d'analyse et non au corpus dans son entier. Par exemple, le système va étiqueter toutes les occurrences isolées de Washington comme nom de personne dans le texte précédent, mais dans le texte suivant, si une occurrence isolée du mot Washington apparaît, le système l'étiquettera comme nom de lieu, selon le dictionnaire. Lorsque plus d'une étiquette a été trouvée de façon dynamique dans un même texte, un choix arbitraire est alors effectué. La figure 3 illustre l'ordinogramme de résolution des conflits dans le typage des entités. Un exemple de pseudo-code mettant en oeuvre cette fonction est donné en Annexe 1. Le module d'extraction (20) comporte un troisième programme (INTJEXT, 213) pour identifier les relations entre les entités dont les occurrences pertinentes ont été sélectionnées par le programme (212). La fenêtre FACTDB de la figure 5 montre les relations qui ont été établies entre les entités de la fenêtre TAG- TEXT. Ce module comporte trois sous-modules principaux dont l'ordinogramme est représenté sur la figure 5. Dans l'étape de sélection (1000) du procédé tel que représenté sur la figure 8, l'identification des relations entre les entités sont traitées au cours des étapes (1310), (1320), (1330) et (1400). L'étape (1310) (Première identification des relations pertinentes entre entités) est automatique. L'étape (1320) (Deuxième identification des relations pertinentes entre entitésAddition/soustraction des relations pertinentes/non pertinentes) est semiautomatique et suppose une étape (1330) d'interaction avec l'utilisateur. L'étape (1400) permet d'alimenter la base de données (FACTDB, 80) avec les entités sélectionnées et les relations identifiées. Les noms de champs d'entités et de relations sont générés automatiquement et les champs de la base sont ensuite remplis avec leurs occurrences. La base de données (80) peut en fait être exploitée par des utilisateurs qui ne sont pas des spécialistes du traitement de l'information mais qui ont besoin d'une information structurée. Le dispositif selon l'invention comprend également un module d'apprentissage (LEARN~MOD, 30) qui coopère avec le module d'extraction (20). Ce module reçoit en entrée, de manière asynchrone avec le fonctionnement du module (20) une collection de textes appartenant à un domaine donné (DOM- TEXT, 50). Ce mode de fonctionnement asynchrone permet de constituer la base de connaissances KB2 (412) contenant le dictionnaire propre au domaine et la base de connaissances KB3 (413) et les règles de grammaire propres au même domaine. Il permet également de formuler des relations caractéristiques du domaine qui sont stockées dans une base de données KB5 (415) Le module (30) coopère avec le module (20) pour enrichir les bases de connaissances (KB2 KB3, KBs) comme illustré de manière générique par la figure 8 et sur un exemple particulier, par la figure 9. Ce module comporte trois sous modules principaux dont l'ordinogramme d'enchaînement est représenté sur la figure 5 : sous-module d'analyse morpho-syntaxique, sous-module d'analyse linguistique des éléments du formulaire, et sous-module de remplissage de formulaire. Ces sous-modules s'enchaînent en cascade : l'analyse fournie à un niveau donnée est reprise et étendue au niveau suivant. Sous-module d'analyse morpho-syntaxique : L'analyse morpho-syntaxique se compose d'un segmenteur bas niveau (tokenizef, d'un découpeur en phrase (sentence splitee), d'un analyseur et d'un étiqueteur morphologique. Dans l'exemple de la figure 6, les annotations sont présentées sous forme de transducteur. Ces modules ne sont pas spécifiques à l'extraction. Ils peuvent servir dans n'importe quelle autre application ayant besoin d'une analyse morpho-syntaxique classique. Sous-module d'analyse linguistique locale pour le repérage d'information : Le repérage des éléments du formulaire par analyse linguistique peut se décomposer en deux étapes : la première, générique, permet l'analyse des entités nommées, la seconde, spécifique à un corpus donné, permet de typer les entités reconnues précédemment et de repérer d'autres éléments nécessaires au remplissage du formulaire. La mise en relation des entités nommées se fait au moyen de schémas d'extraction plus spécifiques qui sont écrits au moyen d'un ensemble de transducteurs permettant d'associer une étiquette à une séquence d'items lexicaux. Ces règles exploitent l'analyse morphosyntaxique qui a eu lieu auparavant. Un exemple de transducteur est donné à la figure 7. Cette règle permet à partir d'une phrase comme : La compagnie Bridgestone Sports a déclaré vendredi qu'elle avait créé une filiale commune à Taiwan avec une entreprise locale et une maison de commerce japonaise pour produire des clubs de golf à destination du Japon. zu d'inférer la relation suivante : Association (Bridgestone Sports, une entreprise locale). L'analyse, qui au début est générique, se focalise progressivement sur certains éléments caractéristiques du texte et le transforme sous forme logique. Sous-module de remplissage de formulaire d'extraction : La dernière étape consiste simplement à récupérer à l'intérieur du document l'information pertinente pour l'insérer dans un formulaire d'extraction. Les résultats partiels sont fusionnés en un seul formulaire par document. Un exemple de pseudo-code mettant en oeuvre ces fonctions est donné en Annexe 2. Les algorithmes de sélection des entités pertinentes sont enrichis en cours de l'étape (1120) par l'interaction de l'utilisateur (1130) qui sélectionne les contextes pertinents et les contextes non pertinents des occurrences de l'entité. Les nouveaux paramètres des algorithmes sont générés au cours de l'étape (2100) puis stockés au cours de l'étape (2200). Les algorithmes d'identification des relations pertinentes sont enrichis au cours de l'étape (1320) par interaction de l'utilisateur (1330) qui identifie les relations pertinentes et les relations non pertinentes. Les nouveaux paramètres des algorithmes sont générés au cours de l'étape (2300) puis stockés au cours de l'étape (2400). Les mécanismes des étapes (1120) et (1130) sont illustrés par un exemple sur la figure 5. 1. Fenêtre (3100) : l'utilisateur fournit une classe sémantique au système. Par exemple, avec les verbes de parole : affirmer, déclarer, dire, etc. 2. Fenêtre (3200) : cette classe sémantique est projetée sur le corpus (DOM- TEXT, 50) afin de recueillir tous les contextes d'apparition d'une expression donnée. Pour prendre l'exemple des verbes de parole, cette étape aboutit à la constitution d'une liste de tous les contextes d'apparition des verbes affirmer, déclarer, dire, etc. 3. Fenêtre (3300) : l'utilisateur distingue, parmi les contextes proposés, ceux qui sont pertinents et ceux qui ne le sont pas (en l'espèce la 38 de la liste). 4. Fenêtre (3400) : le système utilise la liste des exemples marqués positifs et négatifs pour élaborer, à partir d'un ensemble de connaissances du domaine (essentiellement des règles linguistiques), un automate couvrant la plupart des contextes marqués positivement tout en excluant ceux marqués négativement. Un transducteur décrit une expression linguistique et se lit généralement de gauche à droite. Chaque case décrit un item linguistique et est relié à l'élément suivant par un trait. Un item linguistique peut être une chaîne de caractère (que, de), un lemme ( peut désigner aussi bien la forme a que avait ou aurons), une catégorie syntaxique ( désigne n'importe quel verbe), une catégorie syntaxique assortie de traits sémantiques ( désigne, au sein des noms, les seuls noms propres). Les éléments en grisé (àobj) désignent l'appel à une structure complexe décrite dans un autre transducteur (récursivité). Les éléments que l'on cherche sont compris entre les balises et qui sont introduites pour des traitements ultérieurs. 5. Fenêtre (3500) : l'utilisateur édite l'automate résultat et apporte d'éventuelles retouches. Le corpus d'apprentissage est d'abord soumis à un prétraitement qui vise à éliminer les compléments non essentiels. Cette étape est effectuée en projetant sur le texte (TEXT, 10) en mode suppression (le passage d'un automate en mode suppression permet d'obtenir un texte où les séquences reconnues par l'automate ont été supprimées) les dictionnaires d'adverbes figés et des grammaires conçues pour repérer les éléments circonstanciels. Les automates de la base de connaissances sont alors à leur tour projetés sur la base d'exemples. Deux automates (3510, 3520) issus de la base de connaissances linguistiques. Les états de l'automate (3511, 3521) font appel à des sous-graphes utilisant des indications fournies par l'étiquetage fonctionnel, pour la reconnaissance des compléments d'objet indirects introduits par la préposition à (3511) et des sujets inversés (3521). Cette stratégie permet de couvrir de nouveaux contextes positifs illustrés sur la fenêtre (3600). L'automate induit à la structure représentée sur la fenêtre (3700). Cet automate patron est induit à partir de la base d'exemples pour la reconnaissance de verbes de parole. L'automate induit est complexe. Il couvre la base d'exemples et va alimenter le système d'extraction. ANNEXE 1 Révision dynamique de l'étiquetage des noms propres en fonction du contexte (lNT~TXT, 212) /* Etiquetage des noms propres compris dans les textes Révision automatique au cas ou le systeme a repéré de nouvelles étiquettes suivant le contexte. Ces étiquettes sont préférées à l'étiquette par défaut pour les occurrences isolées et sont stockées dans le"dictionnaire du texte. Si le "dictionnaire du texte" n'est pas vide à la fin du processus, il y a révision de l'analyse à partir des informations apprises en corpus. //Le fichier dictionnaire Fichier dictionnaireNomsPropres ; //Le fichier grammaire Fichier grammaireNomsPropres ; //Procédure pour l'étiquetage d'un texte donné EtiqueterTexte (Fichier ficEntree, Fichier ficSortie) { //Ouverture des fichiers de l'application IdentifiantFichier entree = ouvrir (ficEntree, modeLecture) ; IdentifiantFichier intermediaire = ouvrir (ficTemp, modeEcriture) ; IdentifiantFichier dicoTexte = ouvrir (ficTemp, modeEcriture) ; //Lecture ligne à ligne Tant~que ( (ligne = LireLigne (entree)) ! = null) { IIDécomposition en mots Tant~que ( (mot = LireMot (ligne)) ! = null) { IyEtiquetage du texte avec le dictionnaire des noms propres Etiqueter (sortie, dictionnaireNomsPropres, mot, ligne) ; } } Il Fermer (entree) ; Fermer (sortie) ; Fermer (dicoTexte) ; yyrraitement des divergences entre étiquette du dictionnaire //par défaut et étiquette inféréee d'après le contexte IdentifiantFichier intermediaire = ouvrir (ficTemp, modeLecture) ; IdentifiantFichier sortie = ouvrir (ficSortie, modeEcriture) ; //Des cas de divergences sont apparus ssi le dictionnaire du //texte n'est pas vide Si (Taille (dicoTexte) != 0) { IVDans ce cas, on révise l'étiquetage ReviserEtiquetage (intermediaire, sortie, dicoTexte) ; } Eis { IySinon, le fichier intermédiaire est : recopié en tant que yyfichier résultat Copy (intermediaire, sortie) ; } //Ferme ( : ure des fichiers, destruction du fichier intermédiaire Fermer (intermediaire) ; Effacer (intermediaire) ; Fermer (sortie) ; } IVEtiquetage d'un mot du texte Etiqueter (Fichier sortie, Fichier dico, Chaine mot, Chaine phrase) ( WOn cherche le mot dans le dictionnaire Chaine etiquetteDico = Consulter (mot, dico) ; 1 IOn cherche le mot dans la grammaire Chaine etiquetteGram = EtiquetteContextuelle (mot, phrase) ; IISI divergence entre étiquettes Si (etiquetteDico ! = etiquetteGram) ( IlOn préfère l'étiquette acquise d'après le contexte Ecrire (sortie, mot+""+etiquetteGram) ; 1 IOn insère la nouvelle étiquette dans le dictionnaire du texte Inserer (dicoTexte, mot, etiquetteGram) ; } IySinon, on écrit le mot avec l'étiquette du dictionnaire Sinon { Ecrire (sortie, mot+ "+etiquetteDico) ; } } I/Révision de l'étiquetage IlOn a trouvé que dans le texte Washington désignait plutôt un Ilnom de personne (et pas le lieu, qui est l'étiquette par défaut) : lion réétiquette toutes les occurrences isolées de Washington Ilcomme nom de personne. Il ne faut pas corriger les cas //une règle de grammaire avait déjà pu s'appliquer ReviserEtiquetage (Fichier intermediaire, Ficher sortie, Fichier dicoTexte) ( Chaine ligne ; //Lecture ligne à ligne du fichier intermédiaire Tant~que ( (ligne = LireLigne (intermediaire)) ! = null) { IILecture mot par mot Tant~que ( (mot = LireMot (ligne)) ! = null) { yy5'i le mot est dans le dictionnaire du texte et qu'il Ils'agit d'un occurrence isolée (aucune règle de yygrammaire ne peut s'appliquer : nécessaire pour ne pas //étiqueter in Washington si la correspondance IIWashington Ç ? Nom de personne a été trouvée //par ailleurs)), alors on révise l'étiquette... IlBool devient vrai si une règle Ilapplicable a été trouvée... If (Membre (mot, dicotexte) { booleen bool = faux ; Tant~que ( (regle = LireRegle (grammaire)) ! = null) { if (EstApplicable (regle, phrase)) bool = vrai ; } If (Jbool) Etiqueter (sortie, dicoTexte, mot, ligne) ; } //Sinon, on écrit le mot Else Ecrire (sortie, mot) ; } } } //Renvoie l'étiquette de mot stockée dans le dictionnaire //Mashinsrton == > Nom de lieu Chaine ConsulterDictionnaire (Chaine mot) ( Chaine étiquette IdentifiantFichier die = Ouvrir (dictionnaireNomsPropres) ; y/Parcours du dctionnaire ligne à ligne Tant~que ( (ligne = LireLigne (dic)) ! = null) { //Le mot commence la ligne : on doit alors récupérer l'étiquette if (SousChaine (ligne, 0, Length (mot)) == mot) ( etiquette = SousChaine (ligne, Length (mot) +l) ; } } Ilon renvoie l'étiquette trouvée Retourner etiquette ; } y/Recherche d'un étiquette en fonction du contexte llcf. Mrs. Washington == > Washington désigne un nom de personne, //d'après le contexte (la règlee"Mrs * a pu s'appliquer, qui désigne 1 tun nom de personne (alors que par défaut"Washington est étiqueté comme //nom de ville Chaine EtiquetteContextuelle (Chaine mot) ( Chaine etiquette IdentifiantFichier grammaire = Ouvrir (grammaireNomsPropres) ; Ilparcours de la grammaire à la recherche d'une règle //qui pourrait s'appliquer au contexte courant Tantque ( (regle = LireRegle (grammaire)) ! = null) { IISi une règle est applicable (cf. ci-dessus) : IlOn renvoie l'étiquette associée if (EstApplicable (regle, phrase)) { etiquette = RetourneEtiquetteAssociee (mot) ; } } Retourner etiquette ; } ANNEXE 2 Analyse et remplissage de formulaire (INT~TXT, 213) : /* Traitement procédural des textes Il s'agit en fait d'un ensemble de tratements appliqués en cascade, Un niveau reprenant l'analyse du niveau précédent. V IINom de la base de données Chaîne NomBd = c : \\base\\de\\donnee ; IIFonction principale Il Un argument : le nom du fichier d'entrée Main (Fichier ficEntree) { WJnitialisations Chaine phrase ="" ; BaseDonnees bd= initialise (NomBd) ; Formulare formulaire ; I/Ouverture du fichier d'entrée IdentifiantFichier entrée = ouvrir (ficEntree, modeLecture) ; DécoupageEnPhrase (entree) //Lecture phrase par phrase //et traitements associés Tant-que ( (phrase = LirePhrase (entree)) ! = null) { DécoupageEnMot (phrase) ; AnalyseSyntaxique (phrase) ; AnalyseScenario (phrase) ; AnalyseCoreference (phrase) ; Inference (phrase, bd) ; } GenerationFormulaire (bd, formulaire) ; } IVDécoupage du texte en phrase DécoupageEnPhrase (IdentifiantFichier entree) { WLecture ligne à ligne : si un patron de fin de phrase est Wtrouvé : on insère une marque de fin de phrase Tant~que ( (ligne = LireLigne (entree)) ! = null) { Si (Contient (ligne, Contient (ligne, Contient (ligne, I ? } Insérer (ligne, finDePhrase) ; } } } IIDécoupage de la phrase en mots DécoupageEnMot (Chaine phrase) { Entier i = 0 ; Ilparcours de la phrase : si le caractère courant est un Ilséparateur ; insertion d'une marque spéciale Tant~que (i AnalyseSyntaxique (Chaine phrase) { IdentifiantFichier grammaire = Ouvrir (fichierGrammaire) ; Ilparcours de la grammaire à la recherche d'une règle liqui pourrait s'appliquer aux contexte courant Tant~que ( (regle = LireRegle (grammaire)) ! = null) { yy'i une règle est applicable IlOn la projette sur la phrase courante if (EstApplicable (regle, phrase)) { AppliquerRegle (regle, phrase) ; } } } //repérage de relations entre groupes syntaxiques spécifiques //au domaine d'application AnalyseScenario (Chaine phrase) { IdentifiantFichier scenario = Ouvrir (fichierScenario) ; IIRecherche des règles spécfiques au domaine //qui pourrait s'appliquer aux contexte courant Tant~que ( (regle = LireRegle (scenario)) ! = null) { IlSi une règle est applicable WOn la projette sur la phrase courante if (EstApplicable (regle, phrase)) { AppliquerRegle (phrase) ; } } } IIRésout les problèmes de référence associés aux pronoms WRemplace"iJ","elle"par"Pierre","marie",... AnalyseCoreference (Chaine phrase) { IdentifiantFichier coreference = Ouvrir (fichierCoreference) ; IIRecherche des règles spécfiques au domaine Ilqui pourraient s'appliquer aux contexte courant Tantque ( (regle = I. ireRegle (coreference)) ! = null) { IISi une règle est applicable IlOn la projette sur la phrase courante if (EstApplicable (regle, phrase)) { AppliquerRegle (phrase) ; } } } //Construct-Luon et remplissage d'une base de faits à partir de Ilrègles d'inférences propres au domaine et opérant sur les résultats //des étapes précédentes de l'analyse Inference (Chaine phrase) { IdentifiantFichier inference = Ouvrir (fichierInference) ; I/Recherche des règles spécfiques au domaine liqui pourrait s'appliquer aux contexte courant Tant~que ( (regle = LireRegle (inference)) ! = null) { //S-L une règle est applicable : IlOn insère le fait associé dans la base de données if (EstApplicable (regle, phrase)) { Connaissance connaissance = AppliquerRegle (phrase) ; InsererDansBD (bd, connaissance) ; } } } //Génération du formulaire : choix dans la bd des informations nécessaires //aux différents champs GenerationFormulaire (BaseDonnees bd, Formulaire formulaire) { Tant~que ( (slot = LireSlot (formulaire)) ! = null) { Chaine valeur = TrouverInfo (slot, bd) ; Ecrire (formulaire. slot, valeur ; } } REVENDICATIONS 1. Dispositif d'extraction d'informations d'un texte (10) comprenant un module d'extraction (20) et un module d'apprentissage (30) coopérant entre eux comprenant des moyens (212) pour sélectionner automatiquement dans le texte (10) les contextes d'occurrence de classes/entités des informations à extraire, pour sélectionner automatiquement parmi ces contextes ceux qui sont pertinents pour un domaine et pour permettre à l'utilisateur de modifier cette dernière sélection de telle sorte que le module d'apprentissage (30) améliorera la prochaine sortie (70,80) du module d'extraction (20), caractérisé en ce que le module d'extraction (20) comprend en outre des moyens (213) pour identifier les relations existant dans le texte (10) entre les entités pertinentes en sortie des moyens (212). 2. Dispositif d'extraction d'informations selon la revendication 1, caractérisé en ce que le module de sélection (20) comprend un programme (211) apte à reconnaître la structure du texte (10). 3. Dispositif d'extraction d'informations selon la revendication 1 ou la revendication 2, caractérisé en ce que le module de sélection (20) applique à la fois des règles définies a priori et des règles calculées par le module d'apprentissage (30). 4. Dispositif d'extraction d'informations selon l'une des revendications précédentes, caractérisé en ce que le module de sélection (20) est apte à appliquer automatiquement des règles de similitude inférées du contexte. 5. Dispositif d'extraction d'informations selon l'une des revendications précédentes, caractérisé en ce que le module d'apprentissage (30) et le module de sélection (20) sont aptes à gérer des homonymes appartenant à des classes/entités différentes. 6. Dispositif d'extraction d'informations selon l'une des revendications précédentes, caractérisé en ce que le module d'apprentissage (30) est apte à ne pas générer de nouvelles règles à partir d'éléments non essentiels. 7. Dispositif d'extraction d'informations selon l'une des revendications précédentes, caractérisé en ce que le module d'apprentissage (30) est apte à générer de nouvelles règles à partir de sélections positives et de sélections négatives effectuées par l'utilisateur. 8. Dispositif d'extraction d'informations selon l'une des revendications précédentes, caractérisé en ce que les sorties du module de sélection peuvent être rangées dans un fichier ou une base de données. 9. Dispositif d'extraction d'informations selon l'une des revendications précédentes, caractérisé en ce que le vocabulaire et la grammaire du domaine sont représentés par des automates à états finis. 10. Dispositif d'extraction d'informations selon la revendication précédente, caractérisé en ce que les automates à états finis sont représentés à l'utilisateur sous forme de graphes. 11. Procédé d'extraction d'informations d'un texte (10) comprenant une méthode d'apprentissage (2000) et une méthode de sélection (1000), la méthode de sélection comprenant une étape (1100) de sélection automatique dans le texte des contextes d'occurrence des classes/entités des informations à extraire, une étape (1110) de sélection automatique parmi ces contextes de ceux qui sont pertinents pour un domaine et une étape (1130) de modification par l'utilisateur des sorties de l'étape précédente, les sorties modifiées étant prises en compte dans la méthode d'apprentissage (2000) pour améliorer le prochain résultat de la méthode de sélection (1000), caractérisé en ce que la méthode de sélection (1000) comprend en outre des étapes (1310,1320, 1330) pour identifier les relations existant dans le texte (10) entre les entités pertinentes en sortie des étapes (1120,1130) de la méthode de sélection (1000). 12. Procédé d'extraction d'informations selon la revendication 11, caractérisé en ce que la méthode de sélection (1000) comprend une étape de reconnaissance de la structure du texte (10). 13. Procédé d'extraction d'informations selon la revendication 11 ou la revendication 12, caractérisé en ce que la méthode de sélection (1000) applique à la fois des règles définies a priori et des règles calculées par le module d'apprentissage (30). 14. Procédé d'extraction d'informations selon l'une des revendications 11 à 13, caractérisé en ce que la méthode de sélection (1000) peut comporter l'application automatique de règles de similitude inférées du contexte. 15. Procédé d'extraction d'informations selon l'une des revendications 11 à 14, caractérisé en ce que la méthode d'apprentissage (2000) et la méthode de sélection (1000) permettent la gestion des homonymes appartenant à des classes différentes. 16. Procédé d'extraction d'informations selon l'une des revendications 11 à 15, caractérisé en ce que la méthode d'apprentissage (2000) est apte à ne pas générer de nouvelles règles à partir d'él, ; ments non essentiels. 17. Procédé d'extraction d'informations selon l'une des revendications 11 à 16, caractérisé en ce que la méthode d'apprentissage (2000) est apte à générer de nouvelles règles à partir de sélections positives et de sélections négatives effectuées par l'utilisateur. 18. Procédé d'extraction d'informations selon l'une des revendications 11 à 16, caractérisé en ce que les sorties de la méthode de sélection (1000) peuvent être rangées dans un fichier ou une base de données (80).