Création d'une plate-forme ouverte à l'enseignement à distance
Rapport Tal Master 1
1. Université de
Caen
Traitement Automatique des
Langues
Julien BANVILLE Master 2 Informatique RADIS
2. Université de Caen
Table des matières
Introduction
2
Structure du lexique
2
Choix Technologiques
2
Fonctionnement du logiciel
4
Construction du dictionnaire
4
Analyse du texte
4
Extraction du texte
4
Efficacité et évolutivité
5
Mode d’emploi
5
Conclusion
5
Traitement Automatique des Langues
1
3. Université de Caen
Introduction
Ce projet a pour objectif la mise en place d’une application capable de marquer un texte à partir d’un lexique regroupant des
informations grammaticales sur les mots de la langue française. On a donc une base de données de plusieurs milliers de
mots, avec pour chacun d’eux des informations sur :
• Les parties du discours, c’est à dire s’il s’agit d’un adverbe, nom, pronom,…
• Les variables syntaxiques, avec le genre et le nombre, la personne (première, seconde, troisième), les temps et modes
• Les sous catégories syntaxiques, qui affinent les informations pour certains types de mots.
Structure du lexique
Les informations contenues dans le lexique sont structurées afin de faciliter l’utilisation par des logiciels. Ils sont sous cette
forme:
Mot Partie du discours Genre et nombre Temps et modes Sous catégories Mot racine du mot
(champ CS) (champ Acc) (champ CS) syntaxiques (ou égal si il n’y a
(champ SCS) pas de racine)
Le programme développé doit donc pouvoir traiter ces fichiers textes très lourds (la base fait 37 Mo après la
décompression).
Choix Technologiques
Mes choix technologiques se sont portés sur une application seule, chargeant la base de données au démarrage et la
conservant en mémoire vive durant toute l’utilisation. Cela doit permettre un traitement très rapide des fichiers, seul le
chargement devrait être assez long, et la quantité de mémoire vive demandée assez importante.
En terme de langages, j’ai choisi de tout développer en Java. L’extraction des résultats se fait en XHTML, avec un affichage
des résultats avec une feuille de style CSS.
Construction de Soumission d’un Extraction du texte marqué
la base de données texte au Tagger sous forme de fichier XHTML
Insertion de chaque • Extraction des mots du texte Extraction de chaque
règle du lexique dans • Application de toutes les règles mot accompagné
une structure de dic- possibles sur le mot des règles du lexique
tionnaire • Suppression d’ambiguïtés via ap- restantes
plication de règles
Voici un diagramme présentant le fonctionnement du logiciel.
Traitement Automatique des Langues
2
4. Université de Caen
Voici un diagramme présentant l’architecture du logiciel.
Traitement Automatique des Langues
3
5. Université de Caen
Fonctionnement du logiciel
Le logiciel fonctionne en trois partie, la première étant la construction du dictionnaire de règles, puis l’analyse du texte
demandé, et enfin l’extraction.
Construction du dictionnaire
Il s’agit en fait de faire un parcours de tous les fichiers composant la base de données fournie, et de les ajouter dans une
structure de type HashMap, chaque règle étant gérée par un objet Rule. On conserve les mêmes données que celles
fournies dans la base, et avec un ensemble de booléens, on peut déterminer si un mot donné va correspondre à une règle
donnée.
Cette structure est lourde, puisqu’une fois en mémoire on obtient un programme qui fait environ 400 Mo, mais le
chargement est rapide (compter une dizaine de secondes). La complexité d’une structure de type HashMap est bonne pour
la recherche de données (θ (1) ), ce qui permet une recherche rapide au sein de notre dictionnaire.
Analyse du texte
L’analyse du texte se fait en deux parties. La première est l’extraction de chaque mot du texte, et pour chacun de ces mots,
l’application de toutes les règles du lexiques applicables sur ce même mot. Chaque phrase est en fait un vecteur de mot, ce
qui permet un parcours facile à base d’itérateurs (dans le sens de lecture que l’on souhaite).
Ensuite, un traitement en boucle va analyser chaque mot et rechercher des règles grammaticales usuelles pour tenter de ne
conserver qu’une seule règle pour un mot donné. On a un ensemble de règles grammaticales pour chaque type de mot
possible (adverbe, nom, verbe,…). Ces règles se basent sur le mot précédent et le mot suivant, et déterminent (si au moins
un des deux mots adjacents est déterminé) le type probable du mot courant, en supprimant ceux qui ne sont pas
envisageables. La méthode se base donc sur le fait qu’on trouvera très souvent au sein d’un texte un mot déterminé dès le
départ.
Tant qu’il y a au moins un changement dans le texte en question, on fait tourner l’analyse sur tout le texte jusqu’à ce qu’on
ne trouve plus une seule modification possible. A ce moment là, on considère qu’il n’y a plus de nouvelles solutions
possibles pour le texte et on entame l’extraction.
L’efficacité de l’implémentation est bien présente, puisque pour un texte d’environ 1300 mots, il ne faut que 2 à 3 secondes
pour le marquer entièrement. Évidemment, plus on a de règles à appliquer sur le texte, et plus ce sera long. Mais cela
permet d’avoir une plus grande précision des résultats.
Extraction du texte
Il s’agit d’une partie très rapide, puisqu’il s’agit tout simplement de sortir chaque mot du texte avec les règles du lexique
restantes, et de les afficher dans une page en XHTML avec une feuille de style CSS afin de le mettre en forme. On peut, en
survolant chaque mot, découvrir quelles sont les règles restantes.
Traitement Automatique des Langues
4
6. Université de Caen
Efficacité et évolutivité
L’efficacité du programme est bonne, on peut la représenter via ce graphique pour un exemple avec un des textes donnés.
Premier texte du corpus Le Monde
13 % 17 %
70 %
Marqués Déterminés Non reconnus
Un mot marqué est un mot déterminé mais dont plusieurs règles sont encore possibles. Un mot déterminé est un mot dont il
ne reste qu’une seule règle. Un mot non reconnu est en général un nom propre, acronyme, ou un mot complexe et mal
reconnu lors de l’extraction des mots.
Évidemment, il était impossible de réimplémenter toutes
les règles grammaticales usuelles par manque de temps.
Mais il est tout à fait possible de rajouter facilement de
nouvelles règles en faisant hériter la règle d’une classe
abstraite Java et en l’insérant dans le Tagger, c’est donc
rapide et simple.
Mode d’emploi
• Pour installer le logiciel, il suffit d’extraire l’archive dans
un dossier en conservant bien le dossier database
dans le dossier en question.
• Pour démarrer le programme, lancer dans un terminal la commande suivante : java -jar -Xmx512M BANVILLE.jar,
après s’être placé dans le dossier d’extraction.
• L’argument Xmx512M permet d’allouer 512 Mo à la machine virtuelle Java, mémoire nécessaire pour faire fonctionner
l’application.
• Une fois l’application lancée et la barre de lancement remplie, il suffit de cliquer sur Fichier et Charger un fichier.
Ensuite, il faut choisir un fichier (au format texte), puis un dossier d’extraction (le fichier de sortie s’appelle sortie.html).
Conclusion
Ce projet se termine de manière concluante puisque les résultats sont plutôt encourageants. Le projet en lui même était
franchement intéressant car il permet de voir comment le traitement automatique des langues peut être utilisé dans un cas
concret.
Traitement Automatique des Langues
5