De l'extraction de contenu aux candidats-termes :
les Boîtes à outils 1 à 4

(Névéna Pantikina, DESS Traductique, Inalco - Avril 2006)

BaO 1 - Extraction de contenu

BaO 2 - Etiquetage morphosyntaxique automatique

BaO 3 - Extraction terminologique

BaO 4 - A suivre...

Introduction

L'exercice "Boites à Outils" avait pour objectif de nous faire expérimenter les étapes successives dans la chaîne d'un traitement automatique des textes. Les donneés traitées proviennent des fils RSS du journal Le Monde. Elles ont été sélectionnées et organisées par nos professeurs en répertoires de fichiers xml. Partant de ces répertoires et à l'aide de programmes partiellement construits par nos enseignants, notre tâche consistait à traiter les données sur plusieurs étapes et à obtenir, à chaque étape, des résultats prédéfinis. Le travail n'est pas fini, les Boîtes à outils ne cessent de croître... Ici est présenté le travail des trois premières étapes : les BAO 1, 2 et 3. 

Boîte à outils 1 - Extraction de contenu 

Ecriture des scripts Perl. Présentation structurée en Xml.

Le premier exercice vise à construire un programme en Perl qui parcourt l'arborescence de répertoires et extrait le contenu de la balise <description> de chaque fichier xml (voir exemple de fichier xml). Un script fourni a servi de base à notre travail. Dans une arborescence de répertoires, il permet d'accéder successivement aux fichiers xml et d'y opérer des transformations. Ce programme initial a été adapté et complété suivant les tâches à accomplir.
Ainsi, le script SORTIE_filtrage.pl extrait automatiquement le contenu de la balise <description> et présente l'ensemble des descriptions sous forme d'un fichier structuré Xml (cf. fichier SORTIE_filtrage.xml). Le même script est allégé (voir SORTIE_cordess.pl) pour obtenir un fichier texte en vue d'un deuxième étiquetage - cette fois par l'étiqueteur Cordial. Le format adapté à Cordial conserve les lignes entières. Pour voir la sortie destinée à Cordial, cliquez sur cordess.txt.

Haut de la page

Boîte à outils 2 - Etiquetage morphosyntaxique automatique

Tree-Tagger et Cordial

L'objectif de la BAO 2 est d'effectuer un étiquetage automatique avec deux outils spécifiés - Tree-Tagger et Cordial.
Les étiqueteurs prennent en entrée les fichiers texte (tag.txt et cordess.txt) obtenus lors de la phase BAO 1.

Particularités des outils.

Tree Tagger nécessite une mise en forme "un mot par ligne". Le script initial SORTIE_filtrage.pl a été complété (voir le programme SORTIE_etiquetage.pl) pour :
- obtenir une présentation "un mot par ligne" ;
- intégrer les opérations d'étiquetage (par appel de Tree-Tagger à l'intérieur du programme) ;
- intégrer les transformations visant un affichage final sous forme de fichier Xml (SORTIE_etiquetage.xml).

Le programme SORTIE_etiquetage.pl crée quelques fichiers intermédiares qui nous serviront pour les exercices de la Boîte à outils 3. Il est articulé autour de plusieurs procédures et effectue les opérations suivantes:
        <! nom_fichier>
            forme
            
forme
             ...
          <! nom_fichier>
            
forme
            forme
             .....
Cordial ne peut être appelé avec le programme Perl. Le fichier cordess.txt est appelé dans l'interface propre de Cordial.  Le résultat d'étiquetage, au format spécifique, est enregistré dans le fichier cordess.cnr.
Haut de la page

Boîte à outils 3 - Extraction terminologique

Ici commence la partie proprement linguistique de l'exercice. L'objectif est d'extraire des candidats-termes correspondant à des patrons morphosyntaxiques prédéfinis.

Déroulement

Les données étiquetées avec Tree-tagger et Cordial (cordess.cnr et tag.tt) sont traitées par des programmes fournis (trouve_tremeTT.pl et trouve_terme_cordial.pl). On leur associe des fichiers texte contenant des patrons morphosyntaxiques. Dans notre cas, il s'agit des patrons NOM ADJ et ADJ NOM (Tree tagger) et NC[A-Z]+ ADJ[A-Z]+ et ADJ[A-Z]+ NC[A-Z]+(Cordial). La syntaxe des patrons est adaptée aux catégories des deux étiqueteurs. Les fichiers respectifs sont patronTT.txt, patronTT2.txtfichier_patrons_cordial.txt, fichier_patrons_cordial2.txt.

Avant d'utiliser le programme d'extraction terminologique, il a fallu effectuer une légère modification du fichier étiqueté avec Tree-tagger. En effet, lors du traitement précédent, on avait concaténé les descriptions en insérant au début de chaque contenu le nom du fichier source. Cette ligne supplémentaire est génante pour l'extraction et va être supprimée par le petit programme SORTIE_extractionTT.pl. Le fichier ainsi obtenu (tagTT.txt) va être traité avec le programme trouve_termeTT.pl.
Ainsi, après application du programme respectif, on obtient qautre fichiers séparés contenant les résultats de l'extraction : terminoTT.txt et terminoTT2.txt pour Tree-tagger et termcord.txt et termcord2.txt pour Cordial. (Des fichiers de secours contiennent la liste des opérations effectuées lors de l'extraction avec Tree-tagger : traceTT.txt et traceTT2.txt.

Le fichier TT-Cord.doc présente en correspondance les résultats obtenus avec les deux fichiers étiquetés.
Anomalies observées dans les résultats Tree-tagger :
NOM ADJ - les prépositions sont souvent  étiquetés comme ADJ (ex. multiples pour, français Selon, médicales de). Un cas particulier avec etiquetage du verbe comme ADJ (Rares sont). Sur les 69 expressions extraites, il ne reste que 55 correctes, après suppression des étiquetages erronnés et des doublons.
ADJ NOM - Résultats nettement moins nombreux :  21 expressions, dont 15 correctes.

Anomalies observées dans les résultats Cordial :
Les résultats avec Cordial sont dix fois plus nombreux - 714 expressions pour le premier patron et 486 pour le second. On voit tout de suite que le patron  NC[A-Z]+ ADJ[A-Z]+ a extrait  les dates (au format samedi 3, jeudi 1er). En ce qui concerne le deuxième patron (486 résultats) lui-aussi, extrait des expressions contenant des chiffres : aux dates (dans un autre format : 2  décembre, 29 novembre) viennent s'ajouter des nombres (430 vols, 400 réfugiés, etc.).

Mise à part ces observations, il semble que l'extraction avec Cordial a réussi mieux. D'une part, on possède un plus grand nombre de résultats à analyser. D'autre part, en parcourant les deux listes et en faisant abstraction de l'anomalie "chiffres", on n'observe pas d'erreurs comme avec Tree-tagger - les listes ne comportent pas d'expressions avec préposition ou verbe. Pour pouvoir mieux commenter les résultats obtenus, il reste quelques améliorations à faire sur les sorties Cordial :
1. Il faudrait améliorer la qualité de l'extraction en affinant les expressions régulières des patrons.
2. Il faut traiter les listes de résultats pour supprimer les expressions avec chiffres et les doublons (qui paraissent nombreux). Pour cela, les listes seront classées par ordre alphabétique, regroupant ainsi les occurrences répétées. On n'en conservera que la première en  rajoutant le nombre d'occurrences trouvées dans le corpus.
Haut de la page

Boîte à outils 4 - A suivre .....