EXTRACTION

Deux méthodes

Dans cette étape, nous voulions construire à partir de notre corpus étiqueté une liste de suites commençant par un nom suivi par un adjectif.

J'ai testé deux méthodes différentes pour le faire : (1) avec un script perl fourni par les enseignants qui analyse un fichier étiqueté et (2) avec une transformation XSL qui recherche le patrons demandé dans les documents XML que nous avons obtenus dans la partie précédente (j'ai travaillé avec RSSstructCordial.xml).

Parmi les couples qui ont été extraits par les deux méthodes , nous pouvons trouver ceux qui ne correspondent pas à notre demande : ceci est dû aux erreurs de l'étiquetage. Les résultats de Cordial semblent être plus fiables.

Extraction avec un script perl

J'ai extrait le contenu textuel du fichier SORTIEfiltreRSS.xml à l'aide du script extractBalises.pl pour obtenir du texte brut et j'ai étiqueté ce fichier de nouveau par Tree-Tagger. Ensuite, ce fichier est passé en argument au script extractionTT.pl avec un autre fichier passé en argument contenant le patron dont le format est en accord avec l'étiquetage de Tree-Tagger, c'est-à-dire : NOM ADJ.

Le script est lancé par la commande suivante :

$ perl ExtractionTT.pl textebrutTT.txt patron.txt

Nous avons obtenus ainsi ce fichier qui est une liste de suites commençant par un nom suivi par un adjectif.

Extraction avec une transformation XSL

Une autre méthode était de travailler avec les fichiers XML dont on disposait grâce au traitement dans la seconde partie : RSSstructTT.xml et RSSstructCordial.xml.

L'idée était de construire une transformation XSL qui rechercherait les noms (étiquette Cordial commençant par NC) suivis immédiatement par un adjectif (étiquette Cordial commençant par ADJ).


<xsl:template match="element">

<xsl:if test="data[contains(@type,'type') and starts-with(text(),'NC')]">

    <xsl:if test="following-sibling::element[position()=1]/data[contains(@type,'type')
    and starts-with(text(),'ADJ')]">
    
    <xsl:value-of select="./data[contains(@type,'string')]"/>     
    
    <xsl:text> </xsl:text>
    
    <xsl:value-of select="following-sibling::element[position()=1]  
    /data[contains(@type,'string')]"/>    <br/>

    </xsl:if> 
    
</xsl:if>

</xsl:template>
    

En appliquant cette feuille de style au fichier RSSstructCordial.xml nous obtenons un fichier HTML avec les couples nom suivi par un adjectif. Après l'affichage du fichiers dans un browser nous avons enregistré son contenu dans ce fichier.

Un grand inconvénient de cette méthode est qu'elle prend beaucoup de temps - 2 heures 30 minutes environ pour parcourir tout le fichier XML de 15 Mo avec l'outil UNIX xsltproc en mode verbose (version libxml 20616, libxslt 10111 and libexslt 809). Seul le processeur XSLT de l'Internet Explorer 7 arrive à afficher la transformation en 15 minutes, Firefox 2.0 et Safari restant sans réponse au bout d'un moment. Le script perl travaillant sur la recherche en texte brut fait la même chose en quelques secondes.

remonter