#/usr/bin/perl
use Unicode::String qw(utf8);
my $repertoire="$ARGV[0]"; # premier argument: le repertoire qui contient les fichier xml 
$repertoire=~ s/[\/]$//;
my %dictionnairedesitems=();
my %dico_rubriques=();
######################################
&parcourarborescence_recupererrubriques($repertoire);	
# fonction pour recuperer les rubriques
my @liste_rubriques = keys(%dico_rubriques);# mettre les cles de dico_rubriques dans une liste
foreach my $rub (@liste_rubriques) {# pour chaque element dans la liste rubrique
    print $rub,"\n";
    my $OUTPUT1="SORTIE-".$rub.".xml";
    my $OUTPUT2="SORTIE-".$rub.".txt";
    my $OUTPUT3="SORTIE-".$rub."-treetagger.xml";
    if (!open (FILEOUT1,">:encoding(utf-8)",$OUTPUT1)) { die "Pb a l'ouverture du fichier $OUTPUT1"};
    if (!open (FILEOUT2,">:encoding(utf-8)",$OUTPUT2)) { die "Pb a l'ouverture du fichier $OUTPUT2"};
    if (!open (FILEOUT3,">:encoding(utf-8)",$OUTPUT3)) { die "Pb a l'ouverture du fichier $OUTPUT3"};
    # initialiser les fichiers sortie
    print FILEOUT1 "<?xml version=\"1.0\" encoding=\"utf-8\" ?>\n";
    print FILEOUT1 "<PARCOURS>\n";
    print FILEOUT3 "<?xml version=\"1.0\" encoding=\"utf-8\" ?>\n";
    print FILEOUT3 "<PARCOURS>\n";
    close(FILEOUT1);
    close(FILEOUT2);
    close(FILEOUT3);
}



##########################################
&parcourarborescence_fichiers($repertoire);	
# fonction pour traiter tous les fichiers
foreach my $rub (@liste_rubriques) {
    my $OUTPUT1="SORTIE-".$rub.".xml";
    my $OUTPUT3="SORTIE-".$rub."-treetagger.xml";
    if (!open (FILEOUT1,">>:encoding(utf-8)", $OUTPUT1)) { die "Pb a l'ouverture du fichier $OUTPUT1"};
    if (!open (FILEOUT3,">>:encoding(utf-8)",$OUTPUT3)) { die "Pb a l'ouverture du fichier $OUTPUT3"};
    print FILEOUT1 "</PARCOURS>\n";
    print FILEOUT3 "</PARCOURS>\n";
    close(FILEOUT1);
    close(FILEOUT3);
}
exit;



#################################################
sub parcourarborescence_fichiers {
    my $dossier = shift(@_); # creer une variable du repertoire
    opendir(DOSSIER, $dossier) or die "can't open $dossier: $!\n"; # ouverture du dossier
    my @files = readdir(DOSSIER); # creer une liste qui contient les noms des contenus de ce dossier
    closedir(DOSSIER);
    foreach my $file (@files) { # pour chaque element de ce dossier
	next if $file =~ /^\.\.?$/; # ignorer les éléments caches, ceux qui commencent par . ou .. en cas renconter les cachés, passer au suivant
	$file = $dossier."/".$file; # le chemin absolu du élément
	if (-d $file) { #si c'est un répertoire, on regarde son contenu
	    &parcourarborescence_fichiers($file); # recurser
	}
	if (-f $file) { # si c'est un fichier
	    if (($file=~/\.xml$/) && ($file!~/\/fil.+\.xml$/)) { # et si le fichier est un fichier xml
		open(FILE, $file); # ouvrir et traiter
		my $texte="";
		while (my $ligne=<FILE>) {
		    $ligne =~ s/\n//g;
		    $texte .= $ligne;
		}
		close(FILE);
		$texte=~/encoding ?= ?[\'\"]([^\'\"]+)[\'\"]/i;
		my $encodage=$1; # extraire l'encodage de fichier
		if ($encodage ne "") {
		    print "Extraction dans : $file \n";
		    my $tmptexteXML="<file>\n"; # creer un texte temporel xml
		    $tmptexteXML.="<name>$file</name>\n";
		    my $tmptexteXMLtagger="<file>\n"; # creer un texte temporel tagger xml
		    $tmptexteXMLtagger.="<name>$file</name>\n";
		    $texte =~ s/> *</></g;
		    $texte=~/<pubDate>([^<]+)<\/pubDate>/;
		    $tmptexteXML.="<date>$1</date>\n";
		    $tmptexteXML.="<items>\n";
		    $tmptexteXMLtagger.="<date>$1</date>\n";
		    $tmptexteXMLtagger.="<items>\n";
		    my $tmptexteBRUT=""; # creer un texte brut temporel
		    open(FILE,"<:encoding($encodage)", $file);
		    $texte="";
		    while (my $ligne=<FILE>) {
			$ligne =~ s/\n//g; # enlever le changement de ligne
			$texte .= $ligne;
		    }
		    close(FILE);
		    $texte=~s/> *</></g; # 
		    $texte=~/<channel><title>([^<]+)<\/title>/;
		    my $rub=$1;
		    # nettoyer les rubriques
		    $rub=~s/Ê/e/gi;
		    $rub=~s/È/e/gi;
		    $rub=~s/Ë/e/gi;
		    $rub=~s/É/e/gi;
		    $rub=~s/À/a/gi;
		    $rub=~s/Î/i/gi;
		    $rub=~s/Ï/i/gi;
		    $rub=~s/Ù/u/gi;
		    $rub=~s/Ç/c/gi;
		    $rub=~s/é/e/gi;
		    $rub=~s/è/e/gi;
		    $rub=~s/ê/e/gi;
		    $rub=~s/à/a/gi;
		    $rub=~s/Le Monde.fr//gi;
		    $rub=~s/LeMonde.fr//gi;
			$rub=~s/Le *Monde *\. *fr *://gi;
			$rub=~s/ //g;
			$rub=~s/s$//;
			$rub=~s/,/_/g;
			$rub=~s/[\.\:;\'\"\-]+//g;
		    $rub=uc($rub);

		    my $OUTPUT1="SORTIE-".$rub.".xml";
		    my $OUTPUT2="SORTIE-".$rub.".txt";
		    my $OUTPUT3="SORTIE-".$rub."-treetagger.xml";
		    if (!open (FILEOUT1,">>:encoding(utf-8)", $OUTPUT1)) { die "Pb a l'ouverture du fichier $OUTPUT1"};
		    if (!open (FILEOUT2,">>:encoding(utf-8)", $OUTPUT2)) { die "Pb a l'ouverture du fichier $OUTPUT2"};
		    if (!open (FILEOUT3,">>:encoding(utf-8)", $OUTPUT3)) { die "Pb a l'ouverture du fichier $OUTPUT3"};

		    my $compteurItem=0;
		    my $compteurEtiquetage=0;
		    while ($texte =~ /<item><title>(.+?)<\/title>.+?<description>(.+?)<\/description>/g) {
			my $titre=$1;
			my $resume=$2;
			if (uc($encodage) ne "UTF-8") {utf8($titre);utf8($resume);}
			$titre = &nettoietexte($1);
			$resume = &nettoietexte($2);
			$compteurItem++;
			if (!(exists($dictionnairedesitems{$resume}))) {
			    $compteurEtiquetage++;
			    print "Etiquetage (num : $compteurEtiquetage)  sur item (num : $compteurItem) \n";
                            my ($titreetiquete,$texteetiquete)=&etiquetageavectreetagger($titre,$resume);
			    $tmptexteBRUT.="$titre \n";
			    $tmptexteBRUT.="$resume \n";
			    $tmptexteXML.="<item><title>$titre</title><abstract>$resume</abstract></item>\n";
			    $tmptexteXMLtagger.="<item>\n<title>\n$titreetiquete</title>\n<abstract>\n$texteetiquete</abstract>\n</item>\n";
			    $dictionnairedesitems{$resume}++;
			}
			else {
			    $tmptexteXML.="<item><title>-</title><abstract>-</abstract></item>\n";
			}
		    }
		    $tmptexteXML.="</items>\n</file>\n";
		    $tmptexteXMLtagger.="</items>\n</file>\n";
		    print FILEOUT1 $tmptexteXML;
		    print FILEOUT2 $tmptexteBRUT;
		    print FILEOUT3 $tmptexteXMLtagger;
		    close FILEOUT1;
		    close FILEOUT2;
		    close FILEOUT3;
		}
		else {
		    print "$file ==> $encodage \n";
		}
	    }
	}
    }
}
#----------------------------------------------------
sub nettoietexte {
    my $texte=shift;
    $texte =~ s/&lt;/</g;
    $texte =~ s/&gt;/>/g;
    $texte =~ s/<a href[^>]+>//g;
    $texte =~ s/<img[^>]+>//g;
    $texte =~ s/<\/a>//g;
    $texte =~ s/&#38;#39;/'/g;
    $texte =~ s/&#38;#34;/"/g;
    $texte =~ s/<[^>]+>//g;
    $texte =~s/&#39;/\'/g;
    $texte =~s/&#34;/\"/g;
    $texte =~s/&#233;/é/g;
    $texte =~s/&#234;/ê/g;
    $texte =~s/&amp;eacute;/é/g;
    $texte =~s/&amp;egrave;/è/g;
    $texte =~s/&amp;icirc;/\î/g;
    $texte =~s/&amp;ocirc;/\ô/g;
    $texte =~s/&amp;ccedil;/\ç/g;
    $texte =~s/&amp;agrave;/\à/g;
    $texte =~s/&#38;/&/g;
    $texte =~s/<.*$//g;
	$texte =~ s/&amp;|&#38;/&/g;
	$texte =~ s/&amp;|&#38;/&/g;
	$texte =~ s/&apos;|&#39;/'/g;
	$texte =~ s/&nbsp;|&#160;/? /g;
	$texte =~ s/&shy;|&#173;/­/g;
	$texte =~ s/&quot;|&#34;/"/g;
	$texte =~ s/&laquo;|&#171;/«/g;
	$texte =~ s/&raquo;|&#187;/»/g;
	$texte =~ s/&lsaquo;|&#8249;/‹/g;
	$texte =~ s/&rsaquo;|&#8250;/›/g;
	$texte =~ s/&ldquo;|&#8220;/“/g;
	$texte =~ s/&rdquo;|&#8221;/”/g;
	$texte =~ s/&bdquo;|&#8222;/„/g;
	$texte =~ s/&lsquo;|&#8216;/‘/g;
	$texte =~ s/&bdquo;|&#8222;/„/g;
	$texte =~ s/&rsquo;|&#8217;/’/g;
	$texte =~ s/&sbquo;|&#8218;/‚/g;
	$texte =~ s/&hellip;|&#8230;/…/g;
	$texte =~ s/!|&#33;/!/g;
	$texte =~ s/&iexcl;|&#161;/¡/g;
	$texte =~ s/\?|&#63;/\?/g;
	$texte =~ s/\(|&#40;/\(/g;
	$texte =~ s/\)|&#41;/\)/g;
	$texte =~ s/\[|&#91;/\[/g;
	$texte =~ s/]|&#93;/]/g;
	$texte =~ s/{|&#123;/{/g;
    $texte =~ s/}|&#125;/}/g;
	$texte =~ s/&uml;|&#168;/¨/g;
	$texte =~ s/&acute;|&#180;/´/g;
	$texte =~ s/\^|&#94;/\^/g;
	$texte =~ s/&circ;|&#710;/ˆ/g;
	$texte =~ s/~|&#126;/~/g;
	$texte =~ s/#|&#35;/#/g;
	$texte =~ s/\*|&#42;/\*/g;
	$texte =~ s/,|&#44;/,/g;
	$texte =~ s/\.|&#46;/\./g;
	$texte =~ s/:|&#58;/:/g;
	$texte =~ s/;|&#59;/;/g;
	$texte =~ s/&middot;|&#183;/·/g;
	$texte =~ s/&bull;|&#8226;/•/g;
	$texte =~ s/&macr;|&#175;/¯/g;
	$texte =~ s/-|&#45;/-/g;
	$texte =~ s/&ndash;|&#8211;/–/g;
	$texte =~ s/&mdash;|&#8212;/—/g;
	$texte =~ s/_|&#95;/_/g;
	$texte =~ s/\||&#124;/\|/g;
	$texte =~ s/&brvbar;|&#166;/¦/g;
	$texte =~ s/&zwj;|&#8205;/?/g;
	$texte =~ s/&dagger;|&#8224;/†/g;
	$texte =~ s/&Dagger;|&#8225;/‡/g;
	$texte =~ s/&Dagger;|&#8225;/‡/g;
	$texte =~ s/&sect;|&#167;/§/g;
	$texte =~ s/&para;|&#182;/¶/g;
	$texte =~ s/&copy;|&#169;/©/g;
	$texte =~ s/&reg;|&#174;/®/g;
	$texte =~ s/&trade;|&#8482;/™/g;
	$texte =~ s/@|&#64;/@/g;
	$texte =~ s/\/|&#47;/\//g;
	$texte =~ s/\\|&#92;/\\/g;
	$texte =~ s/&loz;|&#9674;/?/g;
	$texte =~ s/&spades;|&#9824;/?/g;
	$texte =~ s/&clubs;|&#9827;/?/g;
	$texte =~ s/&hearts;|&#9829;/?/g;
	$texte =~ s/&diams;|&#9830;/?/g;
	$texte =~ s/&larr;|&#8592;/?/g;
	$texte =~ s/&uarr;|&#8593;/?/g;
	$texte =~ s/&rarr;|&#8594;/?/g;
	$texte =~ s/&darr;|&#8595;/?/g;
	$texte =~ s/&harr;|&#8596;/?/g;
	$texte =~ s/&aacute;|&#225;/á/g;
	$texte =~ s/&Aacute;|&#193;/Á/g;
	$texte =~ s/&acirc;|&#226;/â/g;
	$texte =~ s/&Acirc;|&#194;/Â/g;
	$texte =~ s/&agrave;|&#224;/à/g;
	$texte =~ s/&Agrave;|&#192;/À/g;
	$texte =~ s/&aring;|&#229;/å/g;
	$texte =~ s/&Aring;|&#197;/Å/g;
	$texte =~ s/&atilde;|&#227;/ã/g;
	$texte =~ s/&Atilde;|&#195;/Ã/g;
	$texte =~ s/&auml;|&#228;/ä/g;
	$texte =~ s/&Auml;|&#196;/Ä/g;
	$texte =~ s/&aelig;|&#230;/æ/g;
	$texte =~ s/&AElig;|&#198;/Æ/g;
	$texte =~ s/&ccedil;|&#231;/ç/g;
	$texte =~ s/&Ccedil;|&#199;/Ç/g;
	$texte =~ s/&eacute;|&#233;/é/g;
	$texte =~ s/&Eacute;|&#201;/É/g;
	$texte =~ s/&ecirc;|&#234;/ê/g;
	$texte =~ s/&Ecirc;|&#202;/Ê/g;
	$texte =~ s/&egrave;|&#232;/è/g;
	$texte =~ s/&Egrave;|&#200;/È/g;
	$texte =~ s/&euml;|&#235;/ë/g;
	$texte =~ s/&Euml;|&#203;/Ë/g;
	$texte =~ s/&iacute;|&#237;/í/g;
	$texte =~ s/&Iacute;|&#205;/Í/g;
	$texte =~ s/&icirc;|&#238;/î/g;
	$texte =~ s/&Icirc;|&#206;/Î/g;
	$texte =~ s/&igrave;|&#236;/ì/g;
	$texte =~ s/&Igrave;|&#204;/Ì/g;
	$texte =~ s/&iuml;|&#239;/ï/g;
	$texte =~ s/&Iuml;|&#207;/Ï/g;
	$texte =~ s/&ntilde;|&#241;/ñ/g;
	$texte =~ s/&Ntilde;|&#209;/Ñ/g;
	$texte =~ s/&oacute;|&#243;/ó/g;
	$texte =~ s/&Oacute;|&#211;/Ó/g;
	$texte =~ s/&ocirc;|&#244;/ô/g;
	$texte =~ s/&Ocirc;|&#212;/Ô/g;
	$texte =~ s/&ograve;|&#242;/ò/g;
	$texte =~ s/&Ograve;|&#210;/Ò/g;
	$texte =~ s/&oslash;|&#248;/ø/g;
	$texte =~ s/&Oslash;|&#216;/Ø/g;
	$texte =~ s/&otilde;|&#245;/õ/g;
	$texte =~ s/&Otilde;|&#213;/Õ/g;
	$texte =~ s/&ouml;|&#246;/ö/g;
	$texte =~ s/&Ouml;|&#214;/Ö/g;
	$texte =~ s/&oelig;|&#156;/œ/g;
	$texte =~ s/&OElig;|&#140;/Œ/g;
	$texte =~ s/&scaron;|&#353;/š/g;
	$texte =~ s/&Scaron;|&#352;/Š/g;
	$texte =~ s/&szlig;|&#223;/ß/g;
	$texte =~ s/&eth;|&#240;/ð/g;
	$texte =~ s/&ETH;|&#208;/Ð/g;
	$texte =~ s/&thorn;|&#254;/þ/g;
	$texte =~ s/&THORN;|&#222;/Þ/g;
	$texte =~ s/&uacute;|&#250;/ú/g;
	$texte =~ s/&Uacute;|&#218;/Ú/g;
	$texte =~ s/&ucirc;|&#251;/û/g;
	$texte =~ s/&Ucirc;|&#219;/Û/g;
	$texte =~ s/&ugrave;|&#249;/ù/g;
	$texte =~ s/&Ugrave;|&#217;/Ù/g;
	$texte =~ s/&uuml;|&#252;/ü/g;
	$texte =~ s/&Uuml;|&#220;/Ü/g;
	$texte =~ s/&yacute;|&#253;/ý/g;
	$texte =~ s/&Yacute;|&#221;/Ý/g;
	$texte =~ s/&yuml;|&#255;/ÿ/g;
	$texte =~ s/&Yuml;|&#376;/Ÿ/g;
	$texte =~ s/&curren;|&#164;/¤/g;
	$texte =~ s/&euro;|&#128;/€/g;
	$texte =~ s/\$|&#36;/\$/g;
	$texte =~ s/&cent;|&#162;/¢/g;
	$texte =~ s/&pound;|&#163;/£/g;
	$texte =~ s/&yen;|&#165;/¥/g;
	$texte =~ s/&fnof;|&#402;/ƒ/g;
	$texte =~ s/&alpha;|&#945;/a/g;
	$texte =~ s/&Alpha;|&#913;/?/g;
	$texte =~ s/&beta;|&#946;/ß/g;
	$texte =~ s/&Beta;|&#914;/?/g;
	$texte =~ s/&gamma;|&#947;/?/g;
	$texte =~ s/&Gamma;|&#915;/G/g;
	$texte =~ s/&delta;|&#948;/d/g;
	$texte =~ s/&Delta;|&#916;/?/g;
	$texte =~ s/&epsilon;|&#949;/e/g;
	$texte =~ s/&Epsilon;|&#917;/?/g;
	$texte =~ s/&zeta;|&#950;/?/g;
	$texte =~ s/&Zeta;|&#918;/?/g;
	$texte =~ s/&eta;|&#951;/?/g;
	$texte =~ s/&Eta;|&#919;/?/g;
	$texte =~ s/&theta;|&#952;/?/g;
	$texte =~ s/&Theta;|&#920;/T/g;
	$texte =~ s/&iota;|&#953;/?/g;
	$texte =~ s/&Iota;|&#921;/?/g;
	$texte =~ s/&kappa;|&#954;/?/g;
	$texte =~ s/&Kappa;|&#922;/?/g;
	$texte =~ s/&lambda;|&#955;/?/g;
	$texte =~ s/&Lambda;|&#923;/?/g;
	$texte =~ s/&mu;|&#956;/µ/g;
	$texte =~ s/&Mu;|&#924;/?/g;
	$texte =~ s/&nu;|&#957;/?/g;
	$texte =~ s/&Nu;|&#925;/?/g;
	$texte =~ s/&xi;|&#958;/?/g;
	$texte =~ s/&Xi;|&#926;/?/g;
	$texte =~ s/&omicron;|&#959;/?/g;
	$texte =~ s/&Omicron;|&#927;/?/g;
	$texte =~ s/&pi;|&#960;/p/g;
	$texte =~ s/&Pi;|&#928;/?/g;
	$texte =~ s/&rho;|&#961;/?/g;
	$texte =~ s/&Rho;|&#929;/?/g;
	$texte =~ s/&sigma;|&#963;/s/g;
	$texte =~ s/&sigmaf;|&#962;/?/g;
	$texte =~ s/&Sigma;|&#931;/S/g;
	$texte =~ s/&tau;|&#964;/t/g;
	$texte =~ s/&Tau;|&#932;/?/g;
	$texte =~ s/&upsilon;|&#965;/?/g;
	$texte =~ s/&Upsilon;|&#933;/?/g;
	$texte =~ s/&phi;|&#966;/f/g;
	$texte =~ s/&Phi;|&#934;/F/g;
	$texte =~ s/&chi;|&#967;/?/g;
	$texte =~ s/&Chi;|&#935;/?/g;
	$texte =~ s/&psi;|&#968;/?/g;
	$texte =~ s/&Psi;|&#936;/?/g;
	$texte =~ s/&omega;|&#969;/?/g;
	$texte =~ s/&Omega;|&#937;/O/g;
	$texte =~ s/&deg;|&#176;/°/g;
	$texte =~ s/&micro;|&#181;/µ/g;
	$texte =~ s/&lt;|&#60;/</g;
	$texte =~ s/&gt;|&#62;/>/g;
	$texte =~ s/&le;|&#8804;/=/g;
	$texte =~ s/&ge;|&#8805;/=/g;
	$texte =~ s/=|&#61;/=/g;
	$texte =~ s/&asymp;|&#8776;/˜/g;
	$texte =~ s/&ne;|&#8800;/?/g;
	$texte =~ s/&equiv;|&#8801;/=/g;
	$texte =~ s/&plusmn;|&#177;/±/g;
	$texte =~ s/&minus;|&#8722;/-/g;
	$texte =~ s/\+|&#43;/\+/g;
	$texte =~ s/&times;|&#215;/×/g;
	$texte =~ s/&divide;|&#247;/÷/g;
	$texte =~ s/&frasl;|&#8260;//g;
	$texte =~ s/%|&#37;/%/g;
	$texte =~ s/&permil;|&#8240;/‰/g;
	$texte =~ s/&frac14;|&#188;/¼/g;
	$texte =~ s/&frac12;|&#188;/½/g;
	$texte =~ s/&frac34;|&#188;/¾/g;
	$texte =~ s/&sup1;|&#185;/¹/g;
	$texte =~ s/&sup2;|&#178;/²/g;
	$texte =~ s/&sup3;|&#179;/³/g;
	$texte =~ s/&ordm;|&#186;/º/g;
	$texte =~ s/&ordf;|&#170;/ª/g;
	$texte =~ s/&fnof;|&#402;/ƒ/g;
	$texte =~ s/&prime;|&#8242;/'/g;
	$texte =~ s/&Prime;|&#8243;/?/g;
	$texte =~ s/&part;|&#8706;/?/g;
	$texte =~ s/&prod;|&#8719;/?/g;
	$texte =~ s/&sum;|&#8721;/?/g;
	$texte =~ s/&radic;|&#8730;/v/g;
	$texte =~ s/&infin;|&#8734;/8/g;
	$texte =~ s/&not;|&#172;/¬/g;
	$texte =~ s/&cap;|&#8745;/n/g;
	$texte =~ s/&int;|&#8747;/?/g;
	#$texte =~ s/et|&/?/g;
	$texte =~ s/&/et/g;
	$texte =~ s/<.+?>//g;
    return $texte;
}
#-----------------------------------------------------------------------------------
sub parcourarborescence_recupererrubriques {
    my $dossier = shift(@_);
    opendir(DOSSIER, $dossier) or die "can't open $dossier: $!\n";
    my @files = readdir(DOSSIER);
    closedir(DOSSIER);
    foreach my $file (@files) {
	next if $file =~ /^\.\.?$/;
	$file = $dossier."/".$file;
	if (-d $file) {
	    &parcourarborescence_recupererrubriques($file);
	}
	if (-f $file) {
	    if (($file=~/\.xml$/) && ($file!~/\/fil.+\.xml$/)) {
		open(FILE,$file);
		my $texte="";
		while (my $ligne=<FILE>) {
		    $ligne =~ s/\n//g;
		    $texte .= $ligne;
		}
		close(FILE);
		$texte=~/encoding ?= ?[\'\"]([^\'\"]+)[\'\"]/i;
		my $encodage=$1;
		if ($encodage ne "") {
		    open(FILE,"<:encoding($encodage)", $file);
		    $texte="";
		    while (my $ligne=<FILE>) {
			$ligne =~ s/\n//g;
			$texte .= $ligne;
		    }
		    close(FILE);
		    $texte =~ s/> *</></g;
		    if ($texte=~ /<channel><title>([^>]+)<\/title>/) {
			my $rub=$1;
			$rub=~s/Ê/e/gi;
		    $rub=~s/È/e/gi;
		    $rub=~s/Ë/e/gi;
		    $rub=~s/É/e/gi;
		    $rub=~s/À/a/gi;
		    $rub=~s/Î/i/gi;
		    $rub=~s/Ï/i/gi;
		    $rub=~s/Ù/u/gi;
		    $rub=~s/Ç/c/gi;
		    $rub=~s/é/e/gi;
		    $rub=~s/è/e/gi;
		    $rub=~s/ê/e/gi;
		    $rub=~s/à/a/gi;
		    $rub=~s/Le Monde.fr//gi;
		    $rub=~s/LeMonde.fr//gi;
			$rub=~s/Le *Monde *\. *fr *://gi;
			$rub=~s/ //g;
			$rub=~s/s$//;
			$rub=~s/,/_/g;
			$rub=~s/[\.\:;\'\"\-]+//g;
			$rub=uc($rub);
			$dico_rubriques{$rub}++;
		    }
		}
		else {
		}
	    }
	}
    }
}
sub etiquetageavectreetagger {
    my ($titre,$texte)=@_; # titre
    my $codage="utf-8";
    my $tmptag="texteaetiqueter.txt";
    open (TMPFILE,">:encoding(utf-8)", $tmptag);
    print TMPFILE $titre,"\n";
    close(TMPFILE);
    system("perl tokenise-utf8.pl $tmptag | /Users/Yunhe/Desktop/treetagger/tree-tagger-MacOSX-3.2-intel/bin/tree-tagger -lemma -token /Users/Yunhe/Desktop/treetagger/lib/french-utf8.par > treetagger.txt");
    
    system("perl treetagger2xml-utf8.pl treetagger.txt $codage "); # lecture du resultat tagge en xml :
    open(OUT,"<:encoding(utf-8)","treetagger.txt.xml");
    my $fistline=<OUT>;
    my $titreetiquete="";
    while (my $l=<OUT>) {
	$titreetiquete.=$l;
    }
    close(OUT);
    # le resume
    open (TMPFILE,">:encoding(utf-8)", $tmptag);
    print TMPFILE $texte,"\n";
    close(TMPFILE);
    system("perl tokenise-utf8.pl $tmptag | /Users/Yunhe/Desktop/treetagger/tree-tagger-MacOSX-3.2-intel/bin/tree-tagger -lemma -token /Users/Yunhe/Desktop/treetagger/lib/french-utf8.par > treetagger.txt");	
    system("perl treetagger2xml-utf8.pl treetagger.txt $codage");
    # lecture du resultat tagge en xml :
    open(OUT,"<:encoding(utf-8)","treetagger.txt.xml");
    my $fistline=<OUT>;
    my $texteetiquete="";
    while (my $l=<OUT>) {
	$texteetiquete.=$l;
    }
    close(OUT);
    # renvoie les resultats :
    return ($titreetiquete,$texteetiquete);
}
