Projet informatique de maîtrise (LI037), 2001-2002

Responsable : Pascal Amsili


Organisation

L'objectif du projet est la réalisation d'un programme informatique relevant du Traitement Automatique des Langues. Les projets se font par binômes ou trinômes.

Des sessions de suivi de projet seront organisées au deuxième semestre. Facultatives, elle permettront à chaque groupe de me présenter l'avancement de leur travail. Chaque groupe doit présenter 1 fois son travail à l'enseignant responsable au cours du deuxième semestre.

Langage

Les projets peuvent être réalisés en Lisp, en Prolog ou en Java, voire en Pascal, en C ou en C++, sur la machine de votre choix, à condition toutefois qu'il soit possible d'en faire une démonstration le jour de la soutenance dans la salle machine.

Rapport

Un rapport comprenant une vingtaine de pages est demandé. Il doit être non manuscrit et doit contenir :

  • une partie linguistique : description du champ d'étude, des données manipulées, des choix effectués, etc. ;
  • une partie informatique : description des algorithmes mis en oeuvre, des choix d'implémentation, des éventuels problèmes rencontrés et de leur solution, etc. ;
  • un « manuel utilisateur » : indications pratiques pour exécuter le programme, et description de son interface (choix, menus...)
  • en annexe (et seulement en annexe), listing du programme, éventuellement description exhaustive des données linguistiques, etc.

Soutenance

Les projets font l'objet d'une soutenance individuelle d'environ 15 mn, devant un jury d'un ou deux enseignants, au cours de laquelle l'étudiant proposera une démonstration du programme et répondra à quelques questions.

Cette année, contrairement aux années précédentes, la note finale sera calculée à partir de :
  • la note collective attribuée au mémoire, et
  • une note individuelle de soutenance

Sujets proposés

Le sujet peut être choisi parmi les sujets proposés suivants, ou il peut s'agir d'un sujet à l'initiative de l'étudiant, auquel cas il faut en fournir une description rédigée d'une à deux pages, et obtenir l'accord de l'enseignant. Remerciements. Merci à Lionel Clément, Marcel Cori, Laurence Danlos, Adil El Ghali, Eric Gaussier, Sylvain Kahane, Alexis Nasr et Thierry Poibeau pour leurs propositions et/ou relectures des sujets de projets.

Ressources

Calendrier

Session de Juin Session de Septembre
Début du projet : déc 2001 déc 2001
Remise du rapport : lu. 17 juin 02, 10:00 lu. 16 sept. 02, 10:00
Soutenances : lu. 24 juin 02, à partir de 10h00 lu. 23 sept 02, à partir de 10h00

Calendrier des soutenances

Projet n° 1 : Repérage des « entités nommées »

On regroupe sous le terme « entités nommées » les noms de personnes, de lieux, les dates, noms d'entreprises, adresses, etc. Le but du projet consiste à repérer automatiquement un sous-ensemble homogène parmi les entités (par exemple les noms de personnes ou les noms d'entreprises), l'idée étant de faciliter un traitement ultérieur, sémantique (extraction d'information, résolution d'anaphore...), syntaxique (analyse, chunking...), etc.

Le programme envisagé procède par étapes successives sur le même texte. Dans une première étape, grâce aux dictionnaires spécialisés (cf. plus loin), on étiquette les mots simples. On partira d'un corpus déjà étiqueté morpho-syntaxiquement. La seconde étape, basée sur des règles, permettra de regrouper ces mots simples pour former des entités nommées. Enfin, une troisième étape, facultative dans ce projet, pourrait tenter de relier entre elles les entités co-référentes. Les éléments seront marqués dans le texte au moyen d'un système de balisage de type SGML.

Le système repose donc, outre le programme lui-même, sur les ressources suivantes :

Les dictionnaires et la grammaire sont stockés dans des fichiers textes. On assure ainsi une séparation nette entre les données et les traitement (le programme).

Exemple
Soit le texte « M. Jack Lang a gagné la mairie. »

"M." est stocké dans un dictionnaire "d'amorces"
"Jack" est stocké dans un dictionnaire de prénoms
"Lang" est inconnu du système

La première étape permet d'obtenir :
<TR_PERSON>M.</TR_PERSON> <PERSON>Jack</PERSON> <UFIRSTUNKNOWN>Lang</UFIRSTUNKNOWN> a gagné la mairie.

Une règle de la forme
TR_PERSON PERSON UFIRSTUNKNOWN ==> PERSON
va pouvoir être activée.

D'où le résultat de la seconde étape :
<PERSON>M. Jack Lang</PERSON> a gagné la mairie.

Une troisième étape permettrait d'identifier toutes les occurrences de Jack Lang
<PERSON id=1>M. Jack Lang</PERSON> a gagné la mairie.

Projet n° 2 : Réseaux sémantiques

À partir de définitions provenant de dictionnaires électroniques, préalablement étiquetées, il s'agit de construire un « réseau sémantique ».

Pour chaque entrée (qui peut correspondre à un des sens d'une lexie), on repèrera les mots pleins qui participent à sa définition (il faut donc (1) distinguer les mots pleins des mots « outils », (2) repérer la définition proprement dite parmi l'ensemble des informations associées à une entrée (catégorie, exemples, synonymes...)), et on construira un réseau reliant l'entrée à tous ces mots pleins.

Ce réseau pourra être stocké sous forme de fichier Ascii, dans un format du genre de celui de WordNet.
On pourra aussi, éventuellement, proposer une interface graphique permettant de visualiser graphiquement le réseau, voire de le modifier.

Dans un deuxième temps, on réalisera un programme exploitant ce réseau pour désambiguïser les sens d'un mot en contexte. Principe : étant donnée une phrase contenant le mot concerné, on repère les mots pleins qui l'entourent (contexte), et on recherche ces mots dans le réseau. Alors le sens correspondant est celui qui est le plus proche (dans un sens qu'il faut précisément définir) des mots pleins de son contexte.

D'autres exploitations d'un tel réseau peuvent être envisagées.

Projet n° 3 : « Complétion » automatique

On se propose de réaliser un programme qui accélère la vitesse de frappe d'un utilisateur en proposant - de façon intelligente - la fin des mots en cours de frappe.

Un tel système, pour être vraiment performant, devrait faire de la prédiction syntaxique en temps réel. On se contentera dans ce projet de faire un système qui propose la suite la plus probable des mots.

La méthode repose sur un calcul de probabilité basé sur la fréquence d'apparition de chaque mot dans un corpus préalablement fourni. On construit un arbre dont chaque chemin correspond à un mot (une lettre par arc), et dont chaque arc porte une probabilité.

Par exemple, la probabilité de la prochaine lettre de la suite ``v-o-l-u'' est respectivement de 0/9, 8/9 (3+5/9), 1/9, 0/9 pour les lettres `b', `m', `p' et `t' si nous avons dans le corpus :
0 occurrences du mot volubile
3'' volume
5'' volumineux
1'' voluptueux
0'' volute
La lettre la plus probable, ici ``m'', sera proposée à l'utilisateur, et un nouveau calcul est effectué pour la suite de lettres ``v-o-l-u-m''.

Un soin particulier sera apporté à l'interface de ce programme : l'utilisateur doit pouvoir accepter ou revenir facilement sur les propositions du système, etc. La dimension ergonomique de ce projet est au moins aussi importante que la dimension algorithmique : en particulier, il conviendra de choisir entre la stratégie qui consiste à ne produire automatiquement qu'une lettre à la fois, auquel cas notre objectif d'économie en vitesse de frappe est compromis  et celle qui consiste à produire le suffixe en entier (à partir de quelle longueur de préfixe ?), au risque de nécessiter beaucoup de corrections de la part de l'utilisateur.

Un langage particulièrement adapté au projet serait Emacs Lisp, ce qui permettrait d'intégrer la complétion à l'éditeur Emacs, ce qui n'exclut cependant pas la réalisation de ce projet dans un autre langage.

Projet n° 4 : Étiqueteur morpho-syntaxique basé sur un tri-gramme

L'étiqueteur morpho-syntaxique développé dans le cadre du cours LI031 repose sur un modèle bi-gramme : la prédiction de la catégorie d'un mot dépend des catégories possibles du mot et de la catégorie du mot précédent. L'objectif de ce projet est de modifier l'étiqueteur pour que la prédiction repose sur la catégorie des deux mots précédents.

Les modifications porteront d'une part sur les structures de données permettant de stocker les tri-grammes de façon efficace et d'autre part sur l'implémentation des méthodes de repli et d'interpolation permettant de pallier l'insuffisance des données d'apprentissage, plus importantes que dans le cas d'un bi-gramme.

Projet n° 5 : Traitement des mots inconnus dans un étiqueteur morpho-syntaxique

L'étiqueteur morpho-syntaxique développé dans le cadre du cours LI031 ne prévoit pas le cas où un mot d'une phrase à étiqueter ne figure pas dans le lexique de l'étiqueteur. L'objectif de ce projet est d'intégrer à l'étiqueteur un module de gestion des mots inconnus.

Plusieurs solutions seront testées, parmi lesquelles, la prédiction de la catégorie du mot inconnu en fonction de sa forme (en particulier, les préfixes et les suffixes) et en fonction de son contexte (les catégories possibles des mots suivants et précédents) ou encore de la loi de probabilité qu'un mot inconnu appartienne aux différentes catégories (un mot inconnu à une plus grande probabilité d'être un nom prore qu'un article.). Les différentes solutions seront testées isolément et conjointement, une analyse des erreurs permettra de déterminer les points forts et les points faibles des différentes solutions.

Projet n° 6 : Désambiguïsation par automates

Partant d'un texte dont chaque mot est étiqueté avec toutes ses catégories morpho-syntaxiques possibles (étiquetage sans désambiguïsation), on va s'attacher à lever certaines ambiguïtés non pertinentes, c'est-à-dire à supprimer certaines des étiquettes attachées à certains mots.

L'idée est de disposer d'un programme capable de prendre en entrée des règles comme la suivante : « si X est marqué N et V, et que X est précédé d'un Y marqué Det, alors l'étiquette V doit être ôtée à X » ; et d'appliquer ces règles sur la totalité du corpus.

On conseille d'implémenter ces règles sous forme d'automates.

Le travail comprend donc une partie linguistique, visant à mettre en évidence des règles de désambiguïsation pour le français, basées sur les étiquettes et/ou les lemmes des mots précédents et suivants les mots ambigus  une partie formelle, qui s'attachera à établir un format de règles correspondant aux besoins relevés par l'étude linguistique  et une partir informatique, qui permettra à partir d'un corpus quelconque, et d'un fichier de règles, de désambiguïser le corpus (ou du moins d'en diminuer l'ambiguïté).

 

 

 

 

 

 

 

 

 


  jeu sep 5, 2002 Ma maison-page