treetagger2xml.pl
#!/usr/bin/perl <<DOC; Format d\'entree : un texte étiqueté et lemmatisé par treetagger Format de Sortie : le même texte au format xml DOC#perl treetagger2xml.pl culture-un-3.txt #perl treetagger2xml.pl livres-un-3.txt #perl ext2html-ext2xml.pl (pour enlever le .txt.xml)
#Remarque on ne peut pas rajouter des tâches à treetagger2xml.pl car sûrement il fait une boucle sur lui-même ce qui cause une saturation de la mémoire de l'ordinateur et une panne de Windows.
# Usage $ChaineUsage="Usage : treetagger2xml.pl <Fichier>\n"; if (@ARGV!=1) { die $ChaineUsage; }
&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"; open(Sortie,">$FichierSortie"); }
# Entête de document XML sub entete { print Sortie "<?xml version=\"1.0\" encoding=\"iso-8859-1\" standalone=\"no\"?>\n"; print Sortie "<document>\n"; print Sortie "<article>\n"; }
# Traitement 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>\n <data type=\"type\">$2<\/data>\n <data type=\"lemma\">$3<\/data>\n <data type=\"string\">$1<\/data>\n <\/element>/; $Ligne=~s/<unknown>/unknown/g; print Sortie $Ligne; } } } # Fin de fichier sub fin { print Sortie "</article>\n"; print Sortie "</document>\n"; }
# Fermeture des tampons sub ferme { close(Entree); close(Sortie); };