À partir des fichiers produits dans la BàO2, on a récupéré des informations linguistiques essentielles pour comprendre les caractéristiques principales de chaque rubrique du journal Le Monde. Pour cela, on a construit différentes méthodes d'extraction de patrons morpho-syntaxiques et de relations syntaxiques en dépendances, soit à travers les fichiers étiquetés par TreeTagger, soit à partir de ceux produits par UDpipe.
Plusieurs méthodes ont été mises en place pour réaliser ces extractions. D'un côté, on a écrit des scripts en Perl et en Python qui travaillent principalement à partir des expressions régulières sur les fichiers conll et XML. D’un autre côté, à partir de l'utilisation de langages de la famille XSL et XML, on a confectionné différentes requêtes XQuery, lancées depuis le logiciel BaseX, et des feuilles de style XSLT 1.0, exécutées via xsltproc.
Ici, on va vous présenter les différentes méthodes pour extraire les patrons morpho-syntaxiques et les relations syntaxiques. Chaque script fonctionne spécifiquement pour un type de fichier d'entrée. Néanmoins, leurs méthodes peuvent être généralisées pour travailler sur n'importe lequel de ses fichiers. On a fait le choix de surtout montrer ici leur fonctionnement. La stratégie utilisée dans tous les cas est, en général, la même. On l' expliquera à continuation, avec des expressions régulières.
Méthode 1: expressions régulières
Comme on l'a déjà dit, les fichiers conll et XML étiquetés ont un token annoté par ligne. Il suffit de parcourir les fichiers ligne par ligne, mémoriser les tokens précédents et vérifier que l'on trouve la séquence des étiquettes cherchées, pour pouvoir, enfin, l'extraire. Dans le cas de l'extraction de relations syntaxiques, il faut mémoriser le token du dépendant, qui porte l'étiquette de la relation syntaxique. Selon sa position et la position de la tête syntaxique, il faut aller chercher son gouverneur avant ou après dans le fichier. Dans les deux cas, les expressions régulières servent à séparer chaque élément (token, lemme, étiquette POS, étiquette DEP, etc.) de chaque ligne, soit à travers l'identification des tabulations (conll), soit à travers les balises (XML).
On a travaillé essentiellement sur les fichiers UDpipe, dans les formats conll et XML, pour les extractions des patrons morpho-syntaxiques et des patrons de relations syntaxiques. On a ajouté aussi comme exemple un script capable de traiter la sortie de TreeTagger, malgré qu’il fonctionne de la même façon que la version XML d'UDpipe.
Langage | Méthode et patron | Entrée | Téléchargement |
---|---|---|---|
Perl | RegExp - POS | conll | |
Perl | RegExp - DEP | XML UDpipe | |
Python | RegExp - POS | conll | |
Perl | RegExp - POS | XML TreeTagger |
Méthode 2 : lxml en Python
La bibliothèque lxml permet le traitement des fichiers XML et HTML. On a profité de ce langage semi-structuré pour travailler de la façon la plus productive possible. Aussi rapide que n'importe quel parser XML/HTML, cet outil permet de combiner la puissance des langages XML/XSL, avec la simplicité de Python.
Dans le cadre de ce projet, par exemple, on l'utilise pour récupérer les relations syntaxiques à partir de l'utilisation d'un parser XML et des requêtes XPath. Il s'agit d'une solution applicable à tout ce projet et c’est un moyen idéal pour combiner toutes les méthodes que l’on a vu jusqu'à présent. Voici un exemple d'application.
Langage | Méthode et patron | Entrée | Téléchargement |
---|---|---|---|
Python | Bibliothèque lxml - DEP | XML |
Méthode 3 : XQuery
Ce langage de requête permet d'explorer des fichiers XML de façon assez puissante. Il suit la structure FLWOR (for, let, where, order by, return). Travailler sur des fichiers XML, en tant que base de données, rend l'exploration de données très rapide. Bien sûr, cette méthode peut aussi être utilisée pour extraire des séquences morpho-syntaxiques et des relations syntaxiques. Pour ne pas être répétitif, on vous présente deux exemples de requêtes utilisées via le logiciel BaseX pour extraire les relations syntaxiques (UDpipe). Avec la prochaine méthode, on extrait de nouveau les séquences morpho-syntaxiques.
Langage | Relation syntaxique | Entrée | Téléchargement |
---|---|---|---|
requête Xquery | Sujet | XML | |
requête Xquery | Objet | XML |
Précision : Vous trouverez plus des requêtes dans l'exercice 14 du projet fait ce semestre pour la matière Document Structuré. Notamment, des requêtes pour extraire les patrons morpho-syntaxiques.
Méthode 4 : XSLT
On a déjà expliqué que la transformation produite par les feuilles de style XSLT permet l'extraction du contenu textuel. Cette fois-ci, on extrait les différents patrons morpho-syntactique en combinant l'extraction textuelle avec des conditions (if, etc.) pour trouver la bonne séquence d'étiquettes à récupérer. On suit la même stratégie qu'avec les expressions régulières et les requêtes Xquery.
Précision : Vous trouverez plus des requêtes dans l'exercice 14 du projet fait ce semestre pour la matière Document Structuré.
Résultats
Dans tous les cas, nous avons extrait la forme de tokens, mais il est possible aussi d'extraire des lemmes. En outre, pour pouvoir bien compter la fréquence, les résultats sont en minuscules, traitement que l'on fait dans les script Perl et Python.
Rubrique 3208 - "À la une"
Rubrique 3232 - "Idées"
Rubrique 3260 - "Livres"
Rubrique 3476 - "Cinéma"
Précision : Il faut télécharger certains fichiers pour pouvoir les bien afficher.