Projet informatique de licence (LI312), 1996-97

Sujet

Au choix parmi les sujets 1 et 2 proposés, ou sujet à votre initiative1, après accord de l'enseignant.

Organisation

Rapport

Un rapport (une vingtaine de pages, plus les listings) est demandé. Il devra décrire les choix effectués sur les plans linguistique et informatique, et expliquer les programmes développés.

Une part importante de la note finale reposera sur la lisibilité des programmes. Il est donc conseillé de commenter et de décomposer, sous forme de fonctions et procédures, vos programmes.

-----------

Projet n° 1

Écriture d'un programme permettant :
  1. d'extraire des phrases correspondant à des séquences données,
  2. de corriger des étiquettes grammaticales à partir de règles à définir.

1. Extraction de phrases correspondant à des séquences données

Disposant d'un corpus étiqueté et lemmatisé (chaque mot du corpus est accompagné de son étiquette grammaticale et du lemme lui correspondant), il s'agit, dans un premier temps, d'extraire les phrases de ce corpus comportant des séquences d'étiquettes et/ou de lemmes données.
1.1. Les séquences
Les séquences représentent des suites admissibles d'étiquettes grammaticales et/ou de lemmes que l'on peut représenter sous forme d'expressions régulières.

Deux symboles ont une signification particulière dans les séquences:

*
signifie zéro ou plusieurs occurrences de l'entité (étiquette grammaticale ou lemme) précédente,
+
signifie une ou plusieurs occurrences de l'entité précédente.
Voici quelques exemples de séquences accompagnées de leur interprétation :
SUBS ADJ un substantif, suivi d'un adjectif
SUBS ADJ* PREP un substantif, suivi d'un nombre quelconque d'adjectifs, suivi d'une préposition
SUBS ADJ+ PREP un substantif, suivi d'au moins un adjectif, suivi d'une préposition.
1.2. Exemple de phrase à extraire
Considérons la phrase suivante extraite du corpus :
ce DETRMS ce
paragraphe SUBSMS paragraphe
résume VER3B résumer
les DETRMP les
problèmes SUBMP problème
qui PRELMP qui
doivent VERB6 devoir
être AUXE être
résolus PPASMP résoudre
pour PREP pour
exploiter VINF exploiter
des PDES des
liaisons SUBSFP liaison
de PDEA de
télécommunicatioSUBSFS télécommunication
par PREP par
satellite SUBSMS satellite
Cette phrase doit être extraite si la séquence recherchée est VINF des SUBS mais ne doit pas l'être si la séquence recherchée est SUBS ADJ des SUBS.
1.3. Extraction des phrases
Il vous est ici demandé d'extraire du corpus les phrases correspondant aux séquences suivantes :
  1. VINF des SUBS
  2. PREP VINF des ADJ* SUBS
  3. PREP des ADV* ADJ* SUBS
  4. SUBS ADJ+ des ADV* ADJ* SUBS
A chaque séquence sera associé un fichier dans lequel vous rangerez les phrases correspondant à la séquence.

Remarques

Indication Il est possible de représenter les séquences sous forme de tableau où chaque élément correspond à une entité. La séquence SUBS ADJ+ PREP peut ainsi être représentée par le tableau suivant, dans lequel l'élément ``+'' indique qu'on peut répéter l'élément précédent. Une séquence est reconnue dans une phrase lorsqu'on a réussi à parcourir tout le tableau en lisant la phrase.
SUBS ADJ + PREP

2. Correction des étiquettes grammaticales

Il s'agit ici d'écrire des règles et un programme permettant de corriger les éventuelles erreurs d'étiquetage que vous aurez pu relever sur le mot ``des''.

Les règles auront la forme suivante :

Changer l'étiquette Yl du mot X en Y2 si les étiquettes Zl et Z2 sont présentes dans le contexte de X, le contexte étant défini comme l'ensemble des cinq mots précédant et des cinq mots suivant X.
Vous pourrez ajouter des contraintes sur ces règles (comme par exemple le fait que Zl et Z2 doivent se suivre).

Il vous faudra vérifier que les règles que vous écrivez ne génèrent pas plus d'erreurs qu'elles n'en corrigent.

3. Extension

Vous pourrez definir de nouvelles séquences associées à ``des'' si vous le jugez utile (ou si vous avez terminé le projet en avance). Vous pourrez également vous intéresser à d'autres mots que ``des''.

-----------

Projet n° 2

Écriture d'un programme permettant :
  1. d'extraire des pseudo-affixes en vue de sélectionner les séquences à abréger,
  2. de générer automatiquement des codes correspondant aux séquences retenues,
  3. de prendre en compte ces codes pour simplifier l'écriture d'un mot.

1. Extraction de pseudo-affixes

Il s'agit ici de trouver, à partir des mots présents dans un corpus, les séquences de caractères les plus représentées. Seules les séquences supérieures à n (à choisir et/ou déterminer) caractères seront considérées. Il faudra classer les séquences obtenues par ordre décroissant du nombre d'occurrences.

L'extraction reposera sur l'algorithme présenté dans l'article de Nagao et Mori ci-joint. Vous commencerez par vous intéresser aux séquences finales, qu'on pourrait qualifier de pseudo-suffixes. Le corpus sur lequel vous travaillerez est un corpus étiqueté et lemmatisé identique à celui décrit dans le projet 1.

Une fois les séquences extraites, vous devrez en choisir un certain nombre sur lesquelles vous travaillerez, ce choix devant être motivé.

Remarque Il vous faudra choisir entre un travail sur formes fléchies et sur lemmes pour extraire vos séquences. Vous pouvez choisir l'un ou l'autre (les deux présentent un intérêt), mais vous devez indiquer les raisons de votre choix.

2. Génération automatique de codes

A partir des séquences retenues, il vous est ici demandé de générer automatiquement un code pour chacune d'elles. Ce code prendra la forme d'une suite de ``a'' et de ``b''. La séquence ``ment'' peut par exemple être représentée par la suite ``aa'', de telle sorte que pour signifier ``changement'' on peut se contenter de taper ``changeaa''. Le gain en lettres est ici faible, mais il faut tenir compte du fait que le code généré doit être non ambigu. Ainsi, si l'on avait choisi ``a'' pour représenter la séquence ``ment'', on n'aurait pu décider si ``changea'' représentait ``changement'' ou le passé simple du verbe ``changer''.

Vous pourrez vous inspirer de l'algorithme de Huffman pour générer les codes. Je vous fournirai cet algorithme en temps utile.

3. Prise en compte des codes

Cette partie concerne le remplacement automatique des codes par les séquences associées. Il s'agit ici d'écrire une fonction lisant un mot, fourni par l'utilisateur, éventuellement incomplet mais comportant un code et renvoyant le mot complet. Suivant le code généré précédemment, plusieurs stratégies peuvent être utilisées. Si le code reste ambigu, on peut demander à l'utilisateur de séparer le mot incomplet du code par un caractère de contrôle (``?'', par exemple, qui n'est attesté à l'intérieur d'aucun mot de la langue française). Si le code généré est non ambigu, un tel caractère est superflu.

4. Extension

On peut envisager le même traitement sur les séquences initiales des mots (pseudo-préfixes), voire sur des séquences quelconques. La non ambiguïté du code devient alors un critère de première importance. Essayer d'envisager un tel traitement.

-----------

Le corpus de travail (fichier ASCII ISO-8859, de 60 K), (version ASCII IBM PC, de 60 K) ; et une version anglaise comparable, pour ceux qui préfèrent (fichier ASCII, de 40 K).


1. Il faut en faire une description rédigée d'une ou deux pages, suffisamment détaillée.
Ma maison-page Université Paris 7
Mise à jour
Mon Apr 13, 1998