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.
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:
- parcourt l'arborescence des répertoires
- détecte les fichiers xml
- récupère le contenu de la balise 'description'
- transforme, segmente '1 mot par ligne' (comme le programme pour Tree-tagger)
- imprime dans un fichier texte intermédiaire (tag.txt) ayant la structure
<! nom_fichier>
forme
forme
...
<! nom_fichier>
forme
forme
.....
- ouvre, lit le fichier intermédiaire
- étiquète (Tree-tagger)
- imprime dans un autre fichier (tag.tt)
- transforme en xml (voir le fichier SORTIE_etiquetage.xml ci-dessus).
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.
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.txt, fichier_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.
Boîte à outils 4 - A suivre .....