diff --git a/stats/README.md b/stats/README.md index 2c20be0..3b5f2a0 100644 --- a/stats/README.md +++ b/stats/README.md @@ -9,9 +9,12 @@ Si les fichiers XML éditeurs ont été extraits, il permet aussi de vérifier s’ils sont structurés ou non. +Le résultat comprend, en plus de l’en-tête, une ligne par document avec des champs séparés par +des tabulations (format TSV). + ### Usage ``` - statsCorpus.pl -l logfile ( -p préfixe | -c corpus ) [ -r répertoire ] + statsCorpus.pl -l logfile ( -p préfixe | -c corpus ) [ -r répertoire ] [ -s sortie ] statsCorpus.pl -h ``` @@ -28,10 +31,11 @@ “harvestCorpus.pl”. -r indique le répertoire où se trouve les fichiers XML éditeurs déchargés par le programme “harvestCorpus.pl”. + -s indique le nom du fichier de sortie. Sinon, la sortie se fait sur la sortie standard. ``` ### Exemple ``` statsCorpus.pl -l Arthropodes/logRequete.txt -c Arthropodes_v2b.corpus -r Arthropodes - statsCorpus.pl -l Vieillissement/logRequete.txt -p Vieil_ -r Vieillissement + statsCorpus.pl -l Vieillissement/logRequete.txt -p Vieil_ -r Vieillissement -s Vieil.tsv ``` diff --git a/stats/statsCorpus.pl b/stats/statsCorpus.pl index 584ab26..beb706f 100755 --- a/stats/statsCorpus.pl +++ b/stats/statsCorpus.pl @@ -27,6 +27,7 @@ my $logfile = ""; my $prefixe = ""; my $repertoire = ""; +my $sortie = ""; eval { $SIG{__WARN__} = sub {usage(1);}; @@ -36,6 +37,7 @@ "logfile=s" => \$logfile, "prefixe=s" => \$prefixe, "repertoire=s" => \$repertoire, + "sortie=s" => \$sortie, ); }; $SIG{__WARN__} = sub {warn $_[0];}; @@ -47,7 +49,7 @@ # print " \n"; print " Si les fichiers XML éditeurs ont été extraits, il permet aussi de vérifier s’ils sont \n"; print " structurés ou non. \n"; - print "\nUsage : \n $programme -l logfile ( -p préfixe | -c corpus ) [ -r répertoire ] \n"; + print "\nUsage : \n $programme -l logfile ( -p préfixe | -c corpus ) [ -r répertoire ] [ -s sortie ]\n"; print " $programme -h\n"; print "\nOptions : \n"; print " -l indique le nom du fichier “logfile” contenant les métadonnées ISTEX au format JSON \n"; @@ -61,9 +63,10 @@ print " “harvestCorpus.pl”. \n"; print " -r indique le répertoire où se trouve les fichiers XML éditeurs déchargés par le programme \n"; print " “harvestCorpus.pl”.\n"; + print " -s indique le nom du fichier de sortie. Sinon, la sortie se fait sur la sortie standard. \n"; print "\nExemples : \n"; print " $programme -l Arthropodes/logRequete.txt -c Arthropodes_v2b.corpus -r Arthropodes\n"; - print " $programme -l Vieillissement/logRequete.txt -p Vieil_ -r Vieillissement\n\n"; + print " $programme -l Vieillissement/logRequete.txt -p Vieil_ -r Vieillissement -s Vieil.tsv\n\n"; exit 0; } @@ -90,6 +93,17 @@ close TAB; } +if ( $sortie ) { + open(OUT, ">:utf8", $sortie) or die "\"$sortie\" : $!,"; + } +else { + open(OUT, ">&STDOUT") or die "$!,"; + binmode(OUT, ">:utf8"); + } +print OUT "\x{FEFF}Identifiant ISTEX\tNom de fichier\tÉditeur\tScore qualité\tVersion PDF"; +print OUT "\tXML structuré\tDate de publication\tTitre\tRevue\tISSN\te-ISSN\tType de publication"; +print OUT "\tType de document\tCatégories WoS\tCatégories Science-Metrix\tCatégories INIST\n"; + open(INP, "<:raw", $logfile) or die "$!,"; while() { if ( /^# (\w+_\d+)/ ) { @@ -123,8 +137,10 @@ elsif ( $prefixe ) { $fichier = "$prefixe" . sprintf($format, $num); } - if ( $repertoire and defined $fichier ) { - $xml = "$repertoire/$fichier.xml"; + if ( defined $fichier ) { + if ( $repertoire ) { + $xml = "$repertoire/$fichier.xml"; + } } else { $fichier = "Nom de fichier inconnu"; @@ -175,6 +191,7 @@ my $revue = ""; my $issn = ""; my $eissn = ""; + my $dt = ""; if ( defined $hit{'host'} ) { my %host = %{$hit{'host'}}; if ( defined $host{'title'} ) { @@ -187,13 +204,7 @@ $eissn = join("/", @{$host{'eissn'}}); } if ( defined $host{'genre'} ) { - my $tmp = join(", ", @{$host{'genre'}}); - if ( $genre ) { - $genre = "$tmp ; $genre"; - } - else { - $genre = $tmp; - } + $dt = join(", ", @{$host{'genre'}}); } } my $structure = "Inconnu"; @@ -241,8 +252,8 @@ $structure = "Oui" if $texte =~ m|\s*

|o; } } - print "$id\t$fichier\t$nom\t$score\t$pdfVersion\t$structure\t$date\t$titre"; - print "\t$revue\t$issn\t$eissn\t$genre\t$wos\t$scienceMetrix\t$inist\n"; + print OUT "$id\t$fichier\t$nom\t$score\t$pdfVersion\t$structure\t$date\t$titre"; + print OUT "\t$revue\t$issn\t$eissn\t$genre\t$dt\t$wos\t$scienceMetrix\t$inist\n"; } } else { @@ -257,7 +268,7 @@ sub usage { -print STDERR "Usage : $programme -l logfile ( -p préfixe | -c corpus ) [ -r répertoire ] \n"; +print STDERR "Usage : $programme -l logfile ( -p préfixe | -c corpus ) [ -r répertoire ] [ -s sortie ] \n"; print STDERR " $programme -h \n"; exit shift;