Thomas Heitz
Yves Kodratoff
Mathieu Roche
Équipe Inférence et Apprentissage
LRI - Université Paris XI
2003-2005
Ce logiciel est destiné à des utilisateurs experts d'un domaine mais n'ayant pas de connaissances informatiques. Quelques connaissances en linguistiques et dans la création d'expressions régulières seront néanmoins nécessaires pour modifier les fichiers d'options fournis.
Ce logiciel est destiné à travailler au niveau syntaxique haut. C'est à dire après un étiquetage grammatical des mots. Il est aussi envisageable de l'utiliser au niveau sémantique bas c'est à dire avec des étiquettes sémantiques pauvres.
Les entrées pour lesquels ce programme a été créé sont des textes étiquetés. Il a été testé avec les sorties des logiciels d'étiquetage [Brill 1995] ou ETIQ [Amrani et al. 2004]. Cependant tout texte étiqueté est analysable par ce programme à condition de modifier les expressions régulières dans le panneau Expressions.
Les textes analysés devront contenir des mots, formules, ponctuations... étiquetés, séparés par un espace. Une phrase par ligne pour des raisons d'efficacité et de clarté. Le séparateur entre le mot et son étiquette doit être le même pour tout le corpus. Chaque étiquette utilisée dans le corpus ne doit avoir qu'un seul sens pour que les résultats soient cohérents.
Un terme est un ensemble de 2 ou plus unités adjacentes lexicales (mots), syntaxiques (mots étiquetés grammaticalement) ou sémantiques (mots étiquetés conceptuellement). Le tout que forme un terme est différent de la somme de ses parties.
La pertinence d'un terme dépend de sa fréquence dans le texte, de celle de ses unités constitutives ainsi que d'autres paramètres [Daille 1994] que reprennent les mesures de pertinence utilisées dans ce logiciel.
Exit [Heitz et al. 2005] est un logiciel capable d'aider un expert à extraire des termes qu'il trouve pertinents dans des textes de spécialité. Tout est mis en place pour faciliter le travail de l'expert afin qu'il puisse consacrer son temps à la seule reconnaissance des termes pertinents.
Le logiciel extrait des termes candidats et regroupe avec un tiret les mots ou unités contenus dans les termes candidats acceptés par l'expert. Il forme ainsi de nouveaux termes. L'intérêt de regrouper des unités est d'obtenir une nouvelle unité plus riche. Par exemple, si le terme candidat plantes à fleurs est accepté il sera transformé en un seul mot : plantes-à-fleur.
Notre approche [Roche et al. 2004] est avant tout fondée sur une méthode statistique contrairement à d'autres approches telles que LEXTER [Bourigault et al. 1999]. Elle a aussi la particularité d'être itérative. C'est à dire que l'expert extrait les termes selon différents paramètres et sélectionne ceux retenus et rejetés. Puis il recommence un nombre suffisant de fois pour pouvoir utiliser le paramètre "Coefficient Itérations Précédentes" qui déterminera automatiquement les termes à retenir ou à rejeter parmi ceux qui n'auront été ni retenus ni rejetés, voire corrigera les choix de l'expert.
Une opération de lemmatisation, comprenant la lemmatisation des étiquettes grammaticales, pourra être effectuée préliminairement. Le texte devra être étiqueté pour pouvoir utiliser la richesse des paramètres d'extraction et des règles de correction des résultats.
Une étape de recherche des termes déjà formés avec un tiret '-' par le rédacteur du texte d'origine permettra d'affecter à leurs unités des poids plus importants que les unités qui apparaissent seules dans le texte d'origine. Il est aussi envisageable de rechercher les termes déjà formés mais sans séparateurs, simplement collés. Cette dernière fonction n'est pas implémentée à cause de son temps de calcul trop important.
Les termes qui comportent des soulignés '_' reliant des mots entre eux sont par conventions des locutions figées qui ne seront pas considérés comme des termes pertinents lors de la recherche de termes déjà formés. Les textes fournis en entrée du logiciel peuvent donc être traités avec un lexique de locutions figées afin de les relier par des soulignés. Par exemple, humour_noir.
Différentes mesures de pertinence peuvent être testées par l'expert afin de déterminer la mieux adaptée. Les résultats sont une liste de termes candidats classés par pertinence décroissante.
L'expert sélectionne les termes qu'il estime pertinents et ceux non pertinents. Les unités des termes pertinents sont groupées avec un tiret lors de l'extraction suivante et le texte analysé réécrit dans un nouveau fichier avec l'extension '.iter'.
L'étape d'extraction des termes est appliquée au résultat de la phase précédente pour regrouper non plus seulement des unités du texte d'origine mais aussi des unités regroupées précédemment. Et ainsi de suite jusqu'à analyser complètement chaque phrase et qu'il ne soit plus possible de trouver de nouveaux termes.
L'expert peut appliquer un ensemble de règles. Des règles locales, basées sur les unités d'un terme, ou contextuelles, basées sur les unités d'un terme ainsi que les précédents ou suivants. Ces règles détermineront automatiquement le statut des termes extraits qui les satisfont lors de l'extraction.
Les termes indéfinis seront classés dans les termes acceptés ou rejetés en fonction de la correspondance de leur unités avec celles des unités des termes acceptés et rejetés par l'expert au cours des itérations précédentes.
Le programme est écrit en Java pour des raisons de portabilité sur différents systèmes d'exploitation. De plus, ce langage contient toutes les bibliothèques d'objets nécessaires pour la gestion des expressions régulières. Par contre, il est assez lent ce qui peut être problématique quant à la taille des fichiers analysés de l'ordre de la dizaine de mégaoctets.
Pour plus d'information sur l'implantation, voir la documentation Javadoc dans le répertoire doc.
Afin d'être plus efficace, ce logiciel ne parcoure qu'une seule fois le texte lors de l'extraction des termes et lors du groupement des termes et il utilise des tables de hachage pour stocker les termes.
Un guide de premier démarrage est accessible à partir du menu Aide. Il est lancé automatiquement lors du premier démarrage du logiciel.
À tout moment, vous pouvez utiliser la touche [F1] pour obtenir de l'aide sur l'élément de l'interface actuellement sélectionné.
L'aide sous le curseur permet d'obtenir de l'aide sous forme de bulles d'aide lors du passage du curseur au dessus d'un élément de l'interface. De plus, les éléments importants de l'interface sont rendus plus voyants à l'aide de couleurs.
À tout moment, vous pouvez rajouter des expressions à condition de leur donner un nom différent. Après chaque extraction, les anciennes expressions ne sont plus modifiables.
Vous pouvez tester une expression régulière en activant le bouton de commande Tester l'expression régulière puis en sélectionnant une cellule contenant une expression régulière.
Consultez le document de référence de Sun pour connaître la syntaxe exacte des expressions régulières supportées par ce logiciel.
Consultez aussi la liste des étiquettes grammaticales déjà utilisés par l'étiqueteur Brill.
On considérera dans cette partie l'espace comme séparateur d'unités et la barre oblique '/' comme séparateur entre le mot et l'étiquette ce qui donne l'unité : nom/étiquette. Ce séparateur doit être identique pour tout le corpus.
Exemple d'une expression régulière pour la définition de l'unité : "[^/ ]+/\S+ ". Ce qui empêche d'extraire une unité contenant un espace. Toutes les unités extraites doivent avoir le même séparateur.
Divers exemples avec des étiquettes de type Penn TreeBank :
Voir les fichiers d'options fournis avec le logiciel pour plus d'exemples.
Pour exprimer n'importe quel mot/étiquette vous pouvez utiliser l'expression régulière suivante : ".+" sans les guillemets.
Pour attribuer une étiquette grammaticale aux nouveaux termes formés il faut choisir une étiquette d'une des unités le formant en donnant sa position dans la colonne "Étiquette conservée" dans le panneau Expressions.
Exemple : pour le terme nom-adjectif, choisissez 2 comme position pour que le nouveau terme formé ait adjectif comme étiquette.
Attention ! Pour l'instant le logiciel ne permet pas de modifier les formules à partir de l'interface.
Les variables utilisées dans les formules sont les suivantes.
Les termes sont classés selon différents types pour ceux qui sont acceptés et rejetés. Dans la table des types de terme, vous pouvez mettre jusqu'à 50 types pour les termes acceptés et de même pour les termes rejetés. Ces types de terme vous permettent de faire une préclassification conceptuelle. Vous pouvez aussi les utiliser dans des règles pour donner automatiquement des types aux termes extraits.
Il est important de noter que le panneau "Expressions" doit être rempli avant de pourvoir chercher les termes déjà formés
Le bouton de commande Chercher les termes permet de chercher les termes déjà formés contenant un tiret comme séparateur de mot. Exemple : "divergences-d'-opinion" sera décomposé en "divergences/SBC:pl d'/PREP opinion/SBC:sg". Les étiquettes des mots formant le terme sont récupérées à partir des mots seuls contenus dans le texte.
Si un même mot peut avoir plusieurs étiquettes, l'étiquette associée peut être la mauvaise. Les mots pour lesquels aucune étiquette n'est connue apparaissent sans étiquette dans la liste.
Le bouton de commande Éditer les étiquettes permet d'éditer les étiquettes des termes sélectionnés.
Le bouton de commande Enlever termes permet de retirer les termes sélectionnés de la liste des termes dans le cas où il ne sont pas pertinents.
Lors de la première extraction les termes de la liste des termes déjà formés seront ajoutés à la liste des termes acceptés et donc n'apparaîtront pas dans les résultats mais dans la liste des termes acceptés de la première itération dès que l'utilisateur activera le bouton de commande Extraire termes du panneau Extraction.
Deux fichiers de listes de termes peuvent être sélectionnés. Ils doivent contenir un terme par ligne tels qu'ils apparaissent dans le corpus analysé, habituellement des mots séparés par des espaces. La liste d'acceptation permet de fournir des termes que l'on sait déjà pertinents. La liste de rejet permet de fournir des termes que l'on sait déjà non pertinents.
Si plus d'un terme de deux ou trois unités est donné par ligne alors seul le premier sera pris en compte. Le format est : "unité1 unité2" pour les termes à deux unités et "unité1 unité2 unité3" pour les termes à trois unités. Exemple, sans les guillemets : "le/DET petit/ADJ bateau/SBC:sg".
Les termes apparaissant dans ces deux listes n'apparaîtront pas dans les résultats de l'extraction mais directement dans les listes des termes acceptés et rejetés dès la première extraction.
Lorsque vous voulez analyser un nouveau fichier, sélectionnez l'élément Sélection nouveau fichier d'entrée du menu Programme.
Le bouton de commande Extraire termes extrait les termes candidats contenus dans le texte d'entrée avec les différents paramètres fournis. Les termes acceptés ont leurs unités automatiquement groupées avec des tirets comme séparateurs et le fichier d'entrée est réécrit dans un fichier portant l'extension .iter.
Les termes acceptés, rejetés et indéfinis sont ajoutés à leurs listes respectives dans les panneaux Termes Acceptés/Rejetés pour les deux premiers et Termes indéfinis pour les troisièmes.
Le bouton de commande CIP permet de sélectionner dans les termes extraits ceux qui "correspondent" aux termes déjà acceptés ou rejetés.
Le bouton de commande Recommencer permet de recommencer l'extraction du début en vidant toutes les listes. Cependant, les règles et les termes déjà formés ne sont pas réinitialisés.
Dans la liste des résultats de l'extraction vous pouvez utiliser la touche [s] ou le menu contextuel de la souris pour chercher une chaîne de caractères quelconque dans le texte d'entrée et afficher les résultats dans la zone de texte horizontale en bas du panneau.
Pour repartir d'une itération donnée, choisissez un répertoire dans la liste déroulante Entrée puis choisissez une itération dans liste déroulante Itération.
Le corpus d'origine n'est jamais modifié mais une copie en est faite dans un répertoire portant son nom. À chaque itération/extraction les termes acceptés sont formés avec un tiret entre leur unités et le corpus résultat est écris dans un fichier .iter.
Toutes les itérations et options sont automatiquement sauvées à chaque extraction dans le répertoire nommé d'après le corpus en cours de traitement. Il est déconseillé de repartir d'un fichier itéré sans les options, contenues dans le fichier .options, et les tableaux mémoire, contenus dans le fichier .memtbl, qui vont avec car le logiciel ne saura plus quels termes ont déjà été formés.
Attention à ne pas modifier le contenu du répertoire d'un corpus en cours de traitement. Ce répertoire contient pour chaque itération les fichiers .hist qui contient l'historique, .iter qui contient le corpus itéré, .memtbl qui contient les tables mémoires sous forme binaire, .options qui contient les options de l'extraction et .rules qui contient les règles.
Les fichiers .aterms, .rterms et .uterms sont sauvegardés lors de l'activation de l'élément Sauver tous les résultats du menu Ficher. Ils contiennent respectivement les listes de termes qui ont été acceptés, rejetés et non définis. Ils sont sauvés dans le répertoire racine du logiciel et non celui du corpus en cours de traitement. Ces listes de termes sont au format attendu par le logiciel dans le panneau Prétraitements, Liste d'acceptation et de Rejet. La dernière itération du corpus est aussi sauvegardée au même endroit avec l'extension .iter.
Différentes mesures d'association sont utilisées pour établir les termes les plus pertinents. C'est à dire les termes qui définissent le mieux les concepts clés du corpus de textes analysés.
L'Information Mutuelle est une mesure utilisée en théorie de l'information (Fano, 61, chap. 2) et appliquée aux associations de mots :
IM(X,Y) = log2(P(w1,w2) / (P(w1) P(w2)))
L'information mutuelle au cube est la même mesure que l'information mutuelle mais avec un numérateur au cube.
La mesure de vraisemblance est définie par la formule suivante :
a*log(a) + b*log(b) + c*log(c) + d*log(d) - (a+b)*log(a+b) - (a+c)*log(a+c) - (b+d)*log(b+d) - (c+d)*log(c+d) + totalUnit*log(totalUnit)
Les quatre fréquences caractérisant une paire de mots dans un texte sont représentées par la table de contingence suivante :
w2 | w'!= w2 | |
w1 | a = f(w1,w2) | b = SOMw' !=
w2f(w1,w') |
w != w1 | c = SOMw! = w1f(w,w2) | d = SOMw != w1,w' != w2f(w,w') |
[Daille 1994, chap 4.3.2]
Le coefficient de Dice correspond à : 2P(x,y)/(p(x)+p(y))
Pondération des termes des documents dite tf.idf
wij = tfij . log2 . (N / n)
wij = poids du terme Tj dans le document Di
Dans la tables des résultats, l'expert sélectionne les termes et les classe en 3 catégories :
Par défaut, tous les termes sont de la catégorie indéfini.
Pour sélectionner plusieurs termes activez le [Bouton Gauche] de la souris et sans le relâcher faites glisser le curseur. Vous pouvez aussi utiliser la touche [Majuscule] et sans la relâcher activer les touches [Haut] et [Bas]. Pour effectuer des sélections discontinues gardez activée la touche [Contrôle].
Pour attribuer une catégorie à un terme ou un ensemble de termes sélectionnés activez le [Bouton Droit] de la souris et dans le menu contextuel qui apparaît choisissez la catégorie désirée.
Vous pouvez aussi utiliser les touches [0] à [9], [Contrôle] + [0] à [9] et [Suppression] pour respectivement attribuer les catégories accepté, rejeté et indéfini aux termes sélectionnés.
Les trois catégories sont sauvegardées à chaque extraction et n'apparaissent qu'une seule fois dans les résultats lors de l'extraction.
Une fois qu'une extraction a eu lieu, les termes acceptés, rejetés et indéfinis sont inscrits dans les tables des panneaux de termes. Dans ces panneaux vous pouvez revenir sur vos choix en rejetant ou indéfinissant un terme accepté, en acceptant ou indéfinissant un terme rejeté et en acceptant ou rejetant un terme indéfini. Pour ce faire, activez le [Bouton Droit] de la souris et dans le menu contextuel qui apparaît choisissez la nouvelle catégorie désirée. Vous ne pouvez modifier le statut d'un terme accepté que pour l'itération précédente uniquement.
Dans les tableaux contenant des termes, il est possible d'afficher le contexte en sélectionnant la cellule contenant le terme et en activant la [Barre d'Espace] ou le [Bouton du Milieu] de la souris.
Les phrases contenant le terme apparaissent avec leur numéro de ligne en tête dans la zone de texte horizontale du bas du panneau. Le terme sélectionné est coloré en rouge. Il est possible qu'aucune coloration n'apparaisse si le terme est composé de beaucoup d'unités. Ceci est un dysfonctionnement connu du logiciel
Les règles s'appliquent automatiquement aux résultats de l'extraction des termes candidats qui seront donc sélectionnés comme acceptés ou retenus. Si la sélection ne vous convient pas vous devrez alors modifier les règles, notamment leur ordre d'application.
La zone d'entrée des règles permet de choisir l'unité, le type de critère et la chaîne de caractères recherchée ainsi que le résultat de la règle : le type d'acceptation ou de rejet.
Les règles locales portent sur le préfixe, le suffixe ou une partie quelconque d'un mot et/ou sur l'étiquette d'une ou plusieurs des unités d'un terme. Les opérateurs de conjonction Et, de disjonction Ou et la négation Nonsont autorisés. Vous pouvez faire monter ou descendre une règle afin de respectivement augmenter ou diminuer sa priorité.
La décomposition d'une règle annule le dernier opérateur appliqué. Si la règle n'a plus d'opérateur alors elle est recopiée dans la zone d'entrée des règles ce qui permet de la modifier puis de la créer à nouveau.
Non implémenté pour l'instant.
Elles sont identiques aux règles locales mais s'appliquent en plus aux unités précédentes ou suivantes jusqu'à 3 unités de distance. Elles s'appliquent après les règles locales sur les termes de l'extraction restés indéfinis.
Une fois que suffisamment de termes indéfinis ont été accumulés et que l'expert a accepté et rejeté suffisamment de termes alors ce paramètre peut être appliqué sur la liste des termes indéfinis ou les résultats de l'extraction.
Le seuil de déclenchement que vous fournissez est proportionnel au nombre de termes précédents nécessaire à la sélection de nouveaux termes comme acceptés ou rejetés.