author

Extraction de patrons morphosyntaxiques



I. INTRODUCTION :


La troisième phase du projet Boîte à Outils se fonde sur la sortie étiquetée de BAO 2 et a pour objectif d'extraire les patrons morpho-syntaxiques inhérents du style journalistique français. Pour cela, on s'est servies des possibilités octroyées par le langage Perl ainsi que XSLT et XQuery, dans le cas des fichiers tabulaires.

Les patrons choisis sont ceux qui suivent:


PATRONS
EXEMPLES
NOM PREP NOM PREP NOM
suite d'accusations de harcèlement, millions d'euros d'amende
VERBE DET NOM
cultive une identité, menace un équilibre
NOM ADJ
factions rivales, enquête interne, manifestations pacifiques
ADJ NOM
extrême droite, nouvelle loi




II. EXTRACTION :


Dans le but d'effectuer l'extraction de patrons morphosyntaxiques, on a dû avoir recours à des méthodes différentes en fonction du fichier en entrée. Toutes les solutions sont décrites ci-dessous.


2.1. Extraction de patrons en TreeTagger :


Étant donné le format du fichier TreeTagger, qui est constitué en XML, on a implémenté les langages XSLT et XQuery pour en extraire les patrons visés.


2.1.1. Méthode XSLT :


En ce qui concerne la récupération des extraits morphosyntaxiques, XSLT s'avère une méthode assez simple et efficace à implémenter. En revanche, pour pouvoir mettre en œuvre leur comptabilisation et classement, il a fallu se servir de la commande xsltproc en Bash pour vraiment aboutir aux résultats prévus:

xsltproc xslt_PATRON_txt.xsl FICHIER_TREETAGGER.xml | sort | uniq -c | sort -fgr

Pour rendre cette procédure moins pénible, on a conçu un script Bash qui s'occupe de la comptabilisation et classement systématique de tous les patrons pour les rubriques choisies:


Le tableau qui suit détaille toutes les sorties pour chaque rubrique et patron:


PATRONS
RUBRIQUE
NOM+ADJ
ADJ+NOM
V+DET+NOM
NOM+PREP+NOM+PREP+NOM
FEUILLE DE STYLE
3244
3246
651865
3476
3260
TOUT


2.1.2. Méthode XQuery :


XQuery est un langage de requête qui nous permet d’interroger une base de données XML d'une manière efficace et simple. W3School le définit de cette manière:

"XQuery is to XML what SQL is to databases"

Son implémentation sur les fichiers XML étiquetés par TreeTagger est extrêmement rapide, d'autant plus si l'on utilise le logiciel BaseX. Bien que tous les patrons se trouvent dans un même fichier pour chaque rubrique, les résultats sont identiques à ceux qui ont été obtenus moyennant XSLT.

Voici donc le script utilisé en entier:



Et le tableau correspondant avec l'extraction de patrons pour chaque des rubriques choisies:


RUBRIQUE
TOUS LES PATRONS
3244
3246
651865
3476
3260
TOUT


2.2. Extraction de patrons en Talismane :


Contrairement aux années précédentes, où l'usage du logiciel Cordial prévalait, cette fois-ci on s'appuiera sur Talismane comme deuxième outil pour étiqueter morphosyntaxiquement nos données. De la même façon que TreeTagger, qui nécessite du script treetagger2xml_utf8_edited.pl pour produire une sortie structurée, Talismane se sert du programme talismane2xml_v2_edited.pl pour tabuler ses résultats. En tout état de cause, cette conversion n'est pas strictement obligatoire si l'on vise à effectuer l'extraction de patrons, puisqu'il est toujours possible de le faire dans le propre fichier TXT à l'aide du langage Perl. À travers les deux versions qu'on détaillera ci-dessous, on a obtenu comme fichier de sortie un document contenant chaque patron et comprenant sa liste correspondante de termes triés par fréquence. Notons que les deux versions donnent des résultats identiques.


2.2.1. Méthode Perl :


Voici deux possibilités différentes pour extraire exactement les mêmes données:
        • L'une qui privilégie l'usage des expressions régulières.
        • L'autre qui fait prévaloir plutôt les listes et optimise le code.

Dans les deux versions, on a fait très attention à bien effectuer la recherche globale de patrons en utilisant l'option (?=regexp), qui nous permet notamment de modifier la recherche séquentielle et sert à capturer des éléments (vérifiant l'expression régulière) qui peuvent être imbriqués dans l'élément trouvé juste avant. Cette méthode est appelée assertion de regard en avant. Pour plus d'informations, cliquez ici.


  2.2.1.1. Version intégrant des expressions régulières :

  Voici le script utilisé en entier:

  2.2.1.2. Version intégrant des listes :

  Voici le script utilisé en entier:


  2.2.1.3. Fichiers résultants :

  Voici le tableau contenant l'extraction de patrons pour chacune des rubriques choisies:


RUBRIQUE
TOUS LES PATRONS
3244
3246
651865
3476
3260
TOUT


2.2.2. Méthode XQuery :


En s'appuyant sur le script de transformation talismane2xml_v2_edited.pl (qu'on a modifié pour le rendre plus lisible) on a converti la sortie TXT Talismane en format XML et, par là même, on a pu faire l'extraction de patrons via le langage XQuery. Malheureusement, à cause de la grande taille de la plupart de nos fichiers Talismane, il s'est avéré impossible d'implémenter cette méthode, d'autant plus que le propre éditeur de texte refuse même d'ouvrir le fichier...

author

Dans les lignes qui suivent, on montre alors un aperçu de ce qu'on a pu extraire à partir de la rubrique 651865, celle qui possède la taille plus petite.


  2.2.2.1. Conversion en XML :

  Voici le script de conversion en entier:


  2.2.2.2. Fichier converti :

  Échantillon du document XML correspondant à la rubrique 651865:


  2.2.2.3. Extraction des patrons à l'aide de XQuery :

  Le script qui suit extrait tous les patrons pour la rubrique traitée:


  Et produit ce résultat :



Site crée par Lucía ORMAECHEA GRIJALBA & Veronika SOLOPOVA