EXTRACTION DE PATRONS MORPHOSYNTAXIQUES


Objectif : extraire des patrons sur les sorties de l'étiquetage Cordial et TreeTagger.

Deux méthodes seront présentées pour l'extraction des patrons. Comme pour la BàO2 qui s'appuyait sur les scripts et les sorties de la BàO1, la BàO3 s'appuie sur les sripts et les sorties de la BàO2.

La première extraction de patrons se fait sur les sorties "brutes" de l'étiquetage Cordial via un script Perl. On utilisera deux méthodes ici: celle de Mr. Jean Michèle Daube et celle de Mr. Fleury.

La deuxième extraction de patrons se fait sur les sorties XML de l'étiquetage TreeTagger via un script Perl en utilisant la bibliothèque XML::LIBXML.

Enfin, la troisième extraction de patrons se fait aussi sur les sorties XML de l'étiquetage TreeTagger mais via une requête XPath dans une feuille de styles XSLT.

Les motifs cherchés sont "NOM PRP NOM" (nom-préposition-nom) et "NOM ADJ" (nom-adjectif).

Le script stocke les résultats obtenus pour chaque motif dans un fichier différent, il y aura donc en sortie un fichier par motif cherché.


1- EXTRACTION SUR LES SORTIES BRUTES : METHODE 1


Le traitement se fait sur les trois listes créées (@TOKEN, @LEMME, @POS). Ces listes sont réinitialisées à chaque ponctuation forte, ce qui permet un traitement du fichier d'entrée en partitions.





Le programme sélectionne une ligne, autrement dit un patron, dans le fichier contenant une liste de patrons et vérifie s'il est présent dans la suite de catégories syntaxiques $SUITEDEPOS. Au fur et à mesure que le patron est rencontré dans la suite, les tokens correspondants sont extraits et écrits dans le fichier de sortie sous forme de liste (\n).





Voici un exemple de résultat





SCRIPT-METHODE1

2- EXTRACTION SUR LES SORTIES BRUTES : METHODE 2



Pour la méthode 2 , on va toujours tester sur le fichie produit par Cordial mais on va utiliser une autre méthode vu en classe. Voici le script qu'on a donné en classe et que l'on a modifié pour pourvoir EXTRAIRE les NOM PREP NOM.





Version-Cours

Voici la version modifiée et commentée













Version-modifiée

Résultat extraction de patrons programme sur patron Cordial
resnomprepnom/nomAdj1_methode1
resnomprepnom/nomAdj2_methode1
resnomprepnom/nomAdj3_methode1
resnomprepnom/nomAdj4_methode1
resnomprepnom/nomAdj5_methode1


3- EXTRACTION VIA LIB::XML



Ici, on décidé d'extraire les patrons morphosyntaxiques via la bibliothèque perl. N'ayant pas réussi à la télécharger sous Windows , trop de problème, nous avons tester sur Ubuntu.







Voici le script utilisé et les résultats sur NOM PREP NOM / NOM ADJ /p>



Résultat lIB::XML SUR LE FICHIER TREETAGGER
res_extract-NOM_ADJ
res_extract-PRP_DET_NOM
Script




4- EXTRACTION VIA FEUILLE DE STYLE XLST



La méthode XSLT est similaire au programme précédent dans sa finalité. Le traitement est cependant différent en cela que l'on applique une feuille de style au fichier XML original, issu de treetagger2xml et que l'on ne crée donc pas un nouveau fichier. L'idée étant de cibler des noeuds, de tester si il contiennent notre motif (ici NOM PRP NOM), si c'est le cas de stocker l'élément ciblé dans une variable. On prend le noeud suivant si le résultat était positif (following-sibling) on teste la suite de notre motif (même opérations) jusqu'à la fin, on imprime ensuite nos variables dans un tableau. On peut observer ici les requêtes:





>

Elles partent de la racine PARCOURS pour appliquer les transformations au contenu des éléments correspondant au motif cherché. Cependant, on ne veut appliquer les transformations qu'à une partie de ce contenu, les tokens (element/data[3]). Au niveau des "template match", qui vérifient les requêtes XPath des instructions "apply-templates", il faut donc indiquer les valeurs de chaque requête, autrement dit, le chemin de chaque valeur (token du motif) :

- pour le token correspondant au premier élément du motif :

- pour le token correspondant au deuxième élément du motif :

- pour le token correspondant au troisième élément du motif : , et ainsi de suite...



Feuilles de styles
NOM_ADJ