Slides Framework

Programmation et Projet encadré

  • iPhones Thumbnail
  • Je m'appelle LIU Pan, étudiante en Master 1 Traitement Automatique des Langues, cohabilité par l'Institut National des Langues et Civilisations Orientales (INALCO), Paris 3 (Sorbonne Nouvelle) et Paris-Nanterre.

    Le projet des boites à outils a pour but d'extraire les titres et description d'un flux RSS afin de les étiqueter et de faire de l'extraction terminologique à partir de patron. Il a également pour but l’apprentissage du langage Perl.

    Le corpus de travail sera constitué de l'ensemble des fils RSS disponibles sur le site du journal Le Monde recueillis tous les jours de l'année 2021 à 19h.

  • BàO 1

    BAO1 "extraction du texte" : elle consiste à extraire et nettoyer les contenus textuels des titres et descriptions d'articles des fils RSS du corpus, en fonction de rubriques prédéfinies. Le programme prend en premier argument le répertoire à traiter, parcourt son arborescence dans son intégrité (c'est à dire inspecte tous les descendants), et traite tous les fichiers XML rencontrés correspondant à la rubrique passée en deuxième argument. Voici deux programmes en Perl et en Python permetant de réaliser les mêmes fonctions.

  • Voir comment le corpus de travail est constitué :



  • Voici les rubriques avec leur numéro associé :

    • Voici le script Perl :

    • Pour lancer le programme : perl bao1_Pan.pl ../2021 3208



    • Voici le script Python :

    • Pour lancer le programme : python3 bao1_Pan.py ../2021 3208



    • Un aperçu sur le résultat :
    • fichier txt :


    • fichier xml :

    BàO 2

    BAO2 "étiquetage du texte" : les contenus textuels extraits doivent être étiquetés automatiquement (Treetagger et UDpipe : annotation en morpho-syntaxe et en dépendances). Il s'agit donc d'une version améliorée de la BàO1. En alimentant la BàO1 avec des sous-programmes, nous avons ensuite procédé par l'étiquetage morphosyntaxique de chaque phrase. Cela a été effectué grâce aux outils "Treetagger" et "Udpipe". Ici nous avons founi les programmes en Perl et en Python également.

  • Dans le script Perl, nous pouvons trouver deux sous-programmes :

  • 1. "etiquetageUP" : annoter avec udpipe le fichier corpus-titre-description.txt

  • 2. "etiquetageTT" : annoter avec treetagger le fichier corpus-titre-description.xml

    • Voici le script Perl :

    • Pour lancer le programme : perl bao2_Pan.pl ../2021 3208




    • Un aperçu sur le résultat :

    • fichier txt :


    • fichier xml :

    • Voici les scripts Python :

    • Pour lancer le programme : python3 bao2_Pan.py ../2021 3208



    • Dans le programme bao2_Pan.py, il emploie une fonction prédéfinie dans un autre programme Python "extract_un_fil_idpipe.py" qui permet de créer deux fichiers de sortie : un fichier texte et un fichier XML annotés.



    • Un aperçu sur le résultat :

    • fichier txt :


    • fichier xml :

    BàO 3

    BAO3 "extraction de patrons" : Le BàO3 a pour but d'extraire des patrons morphosyntaxiques dans les fichiers obtenus grâce à la BàO2. recherche et extraction de termes sur les données étiquetées (les séquences NOM PREP NOM, NOM ADJ etc.) ou de relations de dépendances. Ici nous avons founi les programmes en Perl et en Python également.

  • Nous avons créé des scripts en Perl et en Python qui permettent :

  • 1. Extraction des patrons ayant des séquences NOM ADJ par exemple.


    • Voici le script Perl :

    • Dans le script Perl, nous avons choisi le patron NOM-ADJ. Pour lancer le programme : perl bao3_Pan.pl corpus-titre-description.xml NOM ADJ. En sortie, on obtient un texte brut.




    • Un aperçu sur le résultat :

    • fichier txt :


    • Voici le script Python :

    • Pour lancer le programme : python3 bao3_Pan.py corpus-titre-description.xml NOM PRP NOM > NOM-PRP-NOM.txt. En sortie, on obtient un text brut.



    • Un aperçu sur le résultat :

    • fichier txt :




    • Voici le script XSLT qui fait le même travail :

    • Le partron choisi est "NOM-ADJ-TT". Pour la transformation : xsltproc NOM-ADJ-TT.xsl corpus-titre-description.xml > NOM-ADJ-TT.txt.



    • 2. Recherche des relations de dépendances.
    • Voici le script Perl :

    • Avant de lancer le programme, nous avons besoin de faire une transformation du fichier en utilisant la commande suivant : perl udpipe2xml.pl corpus-titre-description.udpipe afin d'obtenir un fichier XML (corpus-titre-description.udpipe) que nous allons utiliser dans le programme "extract-relation-udpipe.pl" Pour lancer le programme : perl extract-relation-udpipe.pl corpus-titre-description.udpipe.xml "obj" > relation_obj.txt. En sortie, on obtient un text brut.



    • Un aperçu sur le résultat :

    • fichier txt :





    • Voici le script Python :

    • Pour lancer le programme : python3 extract_obj.py corpus-titre-description.udpipe.xml "obj" > relation_obj_py.txt. Le fichier obtenu peut nous servir pour la BàO4 afin de créer des graphes.



    • Un aperçu sur le résultat :

    • fichier txt :





  • BàO 4

    La dernière boîte à outils est pour objectif de générer des graphiques à partir de fichier corpus-titre-description.udpipe.xml que nous avons construit afin de démontrer nos données graphiquement et même observer les relations des mots.

  • Pour lancer le script et obtenir notre graphe : python3 bao4_Pan.py corpus-titre-description.udpipe.xml | curl -X POST -H 'Content-Type: text/csv' --data-binary @- "https://padagraph.magistry.fr/post_csv/a-la-une".

    • Voici le script Python :



  • Voici le graphe final :