Documents Structurés
Site réalisé dans le cadre du cours de Documents Structurés par Kelly MASCLEF et Julie SAUVAGE.
Visiter le siteLe but de la deuxième boîte à outils est de procéder à l'étiquetage morpho-syntaxique de chaque token/mot des fils RSS récupérés. Pour cela, on dispose de deux étiqueteurs:
On ouvre dans Cordial le fichier texte que l'on a créé spécialement dans la BàO1 et qu'on avait sorti en ISO-8859-1
open (FILEOUTTXT,">:encoding(iso-8859-1)","SORTIE-$nomRub.txt")
On n'oublie surtout pas de modifier les paramètres pour obtenir le format désiré:
Pour visualiser le résultat, cliquez ici
Pour l'étiquetage avec TreeTagger, nous avons intégré au script à la loyale de BàO1 quelques lignes supplémentaires.
#-------CRÉATION DES FICHIERS EN SORTIE------- #On crée un fichier pour chaque sortie différente (TXT, XML) my $TXT4TT="Entrée_TreeTagger.txt"; my $TreeTagger="Sortie_TreeTagger.txt"; open (OUTXML,">:encoding(utf-8)",$TXT4TT);
#On écrit les sorties nécessaires dans les fichiers print OUTXML "$titre $resume";
sub etiquetage { system("perl ./TreeTagger/cmd/tokenize.pl $TXT4TT | ./TreeTagger/bin/tree-tagger -token -lemma -no-unknown -sgml ./TreeTagger/lib/french-utf8.par > $TreeTagger"); system("perl ./treetagger2xml__modif.pl $TreeTagger"); }
La syntaxe de TreeTagger: tree-tagger [options] <paramètres> <textein> <texteout>
La commande system permet de lancer un processus à partir de Perl. On va d'abord lancer la tokenization sur le fichier, le résultat est ensuite envoyé à tree-tagger (auquel on a spécifié un fichier de configuration en français). Les différentes options permettent d'avoir l'étiquetage en tokens (mots), en lemmes, etc. L'option -no-unknown permet de ne pas avoir de catégorie UNKNOWN dans le fichier étiqueté. Enfin, l'option -sgml permet à TreeTagger de ne pas interpréter les balises!
Pour télécharger ce script, cliquez ici
Pour visualiser ce script, cliquez ici
Pour visualiser le résultat, cliquez ici
Une fois qu'on a obtenu un fichier au format texte brut contenant l'étiquetage, on peut le convertir au format XML via un autre script (qui nous a été fourni et que nous n'avons pas eu à modifier dans la mesure où le résultat obtenu est tout à fait satisfaisant).
&ouvre; &entete; &traitement; &fin; &ferme;
# Récupération des arguments et ouverture des tampons sub ouvre { $FichierEntree=$ARGV[0]; open(Entree,$FichierEntree); $FichierSortie=$FichierEntree.".xml"; $FichierSortie=~ s/\.txt//; open(Sortie,">$FichierSortie"); }
# En-tête de document XML sub entete { print Sortie "\n"; print Sortie "\n"; print Sortie "<document>\n"; print Sortie "<article>\n"; }
sub traitement { while ($Ligne = <Entree>) { if ($Ligne!~/\ô\¯\:\\ô\¯\:\\/) { # Remplacement des guillemets par <![CDATA["]]> #(évite erreur d'interprétation XML) $Ligne=~s/\"/<![CDATA[\"]]>/g; $Ligne=~s/([^\t]*)\t([^\t]*)\t(.*)/<element> <data type=\"type\">$2<\/data> <data type=\"lemma\">$3<\/data> <data type=\"string\">$1<\/data> <\/element>/; print Sortie $Ligne; } } }
sub fin { print Sortie "</article>\n"; print Sortie "</document>\n"; }
sub ferme { close(Entree); close(Sortie); }
Pour télécharger ce script, cliquez ici
Pour visualiser ce script, cliquez ici
Pour visualiser le résultat, cliquez ici