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.
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.
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.