Boîte à Outils Projet de Programmation du Master en Traitement Automatique des Langues

Projet




Ce site présente les étapes d’un projet de programmation réalisé dans le cadre du Master 1 en Traitement Automatique des Langues des universités Paris III/Paris X/INALCO.



Objectif

Analyser des patrons syntaxiques d'un corpus d'articles journalistiques, plus spécifiquement, de tous les articles de 2015 de la rubrique "International" du journal Le Monde.


Données de départ

Les articles sont obtenus grâce à un fil RSS et sont présents en deux versions : une version résumée en format xml (la surface) et une version complète en format txt (la profondeur). Ces fichiers sont rangés dans une arborescence organisée par date.


Le Monde en Surface

Fil RSS

Le Monde en Profondeur

Article associé



Étapes du traitement


  • Outil 1

    Parcours et extraction

  • Outil 2

    Étiquetage morphosyntaxique

  • Outil 3

    Extraction des patrons

  • Outil 4

    Génération des graphes

Outil 1



Parcours de l'arborescence RSS et extraction du contenu textuel pertinent.


Surface


Perl Regexp et XML::RSS


Pour constituer notre corpus à partir du fil RSS, nous avons développé un programme en Perl qui extrait le contenu textuel pertinent grâce à des expressions régulières. Nous avons également développé une deuxième version du programme utilisant XML::RSS, un module spécialement conçu pour l’extraction du contenu textuel des fils RSS.


Pourquoi deux versions ?


Pourquoi développer notre propre application en pur Perl s'il existe déjà un module pour ce travail ? Parce que bien que les deux programmes soient au même niveau pour les résultats obtenus, la version XML::RSS est plus coûteuse en temps de traitement. Cette différence deviendra très importante dans l'étape suivante (étiquetage avec Treetagger).


Profondeur


Perl Regexp


L'extraction des articles associés a été faite avec un programme en pur Perl basé sur le programme d'extraction de la surface. Le principal enjeu de cette tâche a été l'adaptation des expressions régulières au caractère non-structuré du fichier d'entrée.


Outil 2



Étiquetage morphosyntaxique des fichiers issus de l'étape précédente avec Cordial et Treetagger.


Surface


Cordial et Treetagger


Pour identifier la catégorie grammaticale de chaque mot d'un corpus, il est possible d'utiliser des programmes d'étiquetage morphosyntaxique. Cordial et Treetagger sont des étiqueteurs adaptés au français que nous avons appliqués aux fichiers issus de l'étape précédente.



Pourquoi deux étiqueteurs ?


Chacun de ces programmes a ses particularités. Cordial requiert un fichier d'entrée en format txt et encodé en ANSI alors que Treetagger requiert une entrée en xml mais il accepte l'encodage en UTF-8. De plus, l'étiquetage produit par chacun de ces programmes présente des divergences. C'est donc à l'utilisateur de choisir un de ces programmes en fonction des caractéristiques de son corpus et de l'étiqueteur qui lui semble le plus performant.


Profondeur


Difficultés des grands corpus


Le traitement de la profondeur nous a permis d'évaluer d'autres aspects des programmes d'étiquetage. La grande taille du fichier d'entrée (environ 10MB) représente une difficulté pour plusieurs programmes : Cordial ne peut pas traiter des fichiers dépassant 1MB tandis que le fichier produit par Treetager devient difficilement gérable par les éditeurs xml.


Outil 3



Extraction de patrons ADJ NOM et NOM PREP NOM des textes étiquetés.


Surface


Fichiers Cordial


Pour une automatisation réussie de cette étape il est fondamental de bien connaître la structure et le jeu d'étiquettes du fichier d'entrée (voir exemples). Nous avons vu en cours plusieurs solutions en pur Perl destinées à l'extraction de patrons des fichiers générés par Cordial.



Fichiers Treetagger


Pour l'extraction de patrons des fichiers générés par Treetagger, nous avons adapté deux des solutions pur Perl vues en cours. Une autre possibilité est d'utiliser la bibliothèque Perl XML::LibXML.


Profondeur


Comme nous avons mentionné dans l'étape précédente, Cordial ne peut pas traiter des fichiers de grande taille. Pour cette raison, pour l'extraction de patrons de la profondeur nous avons travaillé sur des fichiers étiquetés par Treetagger.


Outil 4



Génération des graphes à partir des patrons trouvés.


Patron2graphe


Comme son nom l'indique, ce programme génère une représentation visuelle (graphe) des relations entre mots à partir d'une liste de patrons. Si la taille de la liste d'entrée est importante, le graphe peut devenir illisible, c'est pourquoi Patron2graphe permet de faire un filtrage de la masse de relations à partir d'un motif.


Le motif choisi pour ce travail a été le stem "migr" afin de recueillir les relations des mots "migrant", "migrants", "migration", etc.



La recherche du motif a été effectuée sur les trois listes de patrons issues de l'étape 3.


Analyse



La génération des graphes avec Patron2graphe nous a permis de repérer de manière rapide les différentes réalisations du stem "migr" dans le corpus : "migrant", "migrantes", "migrants", "migration", "migrations", "migratoire", "migratoires". Cet outil nous a également permis de comparer de manière efficace les résultats obtenus avec les différents programmes utilisés.


On n'a pas trouvé de différences importantes entre les graphes de la surface et de la profondeur. Cela est parce que le texte du fils RSS contient les titres et les résumés où sont déjà présents les informations fondamentales de l'article. Les différences ont été plus saillants entre les étiquettages de Treetagger et Cordial. Même si ces outils sont censé réaliser la même tâche, les representations finales ne montrent pas les mêmes relations.


Ce travail a prouvé l'importance de chaque pas du traitement puisque les choix opérés dans chaque étape modifient les données et en conséquence le corpus à partir duquel l'analyse sera construite.