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, 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).
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).
"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 : Manipulation
d'automates
On se propose de réaliser un programme, ou mieux, une
bibliothèque de fonctions, qui permette de réaliser divers
traitements sur des automates à nombre fini d'états.
On peut envisager une interface graphique (pour la sortie et même pour l'entrée des automates), mais on pourra aussi se contenter de travailler sur des tables de transition en Ascii, dans une notation à la PC-Kimmo. (Il faudra bien sûr envisager une structure de données interne pour travailler sur les automates.)
Parmi les opérations que l'on devra pouvoir réaliser avec le système, il y aura au moins :
Projet n° 3 : 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.
Projet n° 4 : Génération de texte en LFG (lisp)
Le programme doit pouvoir afficher la ou les phrases correspondant à
une structure fonctionnelle supposée bien formée (cohérente et
complète).
Le programmeur fournira une petite grammaire LFG pour la langue de son
choix.
Projet n° 5 : « 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 graphe 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 |
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. Un langage particulièrement adapté au projet serait Emacs Lisp, ce qui permettrait d'intégrer la complétion à l'éditeur Emacs.
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, on va s'attacher à lever
certaines ambiguïtés non pertinentes, c'est-à-dire à supprimer
certaines des étiquettes attachées à certains mots.
Pour mener à bien cette tâche, on extraiera du corpus donné les éléments pertinents, ce qui permettra d'établir des « règles contextuelles », que l'on appliquera ensuite au corpus.
On relèvera alors les contextes locaux (catégories précédentes, catégories suivantes) qui permettent de choisir la catégorie retenue pour un mot donné en français.
Par exemple, si X est marqué N ou V, et si X est précédé d'un Det, alors X doit être marqué N (l'étiquette V doit être ôtée).
Etablir ainsi des séquences de 2 ou 3 catégories impossibles en français.
On aura intérêt à subdiviser certaines catégories du DELAF, par exemple mettre à part parmi les pronoms, les formes clitiques (je, tu, il(s), elle(s), nous, vous, se, on, ce, y, en, le, la, les, lui, leur).
Attention au cas où les mots suivants ou précédents ont plusieurs catégories possibles.
On fournit deux textes étiquetés (d'une dizaine de pages) à l'aide du DELAF, qui serviront de base à l'élaboration des règles de désambiguisation.
Général | Pour les verbes | ||||||||||||||||||||||||||||||||||||||||||||||||||
|
|
vient venir V33:P3s livre livre N1:ms livre N21:fs livrer V3:P1s:P3s:S1s:S3s:Y2s
Projet n° 7 : Compression de texte
On doit réaliser un couple de programmes qui permette de
compresser-décompresser un texte.
Le principe de l'algorithme de compression est le suivant : sur des bases statistiques, en fonction du texte en entrée, on détermine des chaînes les plus longues possible (en particulier préfixes et suffixes) présentes avec une fréquence raisonnable, et on remplace dans le texte toutes les occurrences de ces chaînes par des non-mots -ou des mots absents du texte- (p. ex. « aa »), plus courts.
Bien sûr, le fichier compressé contiendra aussi une table de conversion, qui permettra au programme de décompression de reconstituer le fichier original.
Wed Jan 05, 2000 |
![]() |