diff --git "a/Niveau-1/Iramuteq/Construction_Dictionnaires_Nom_Esp\303\250ce.pl" "b/Niveau-1/Iramuteq/Construction_Dictionnaires_Nom_Esp\303\250ce.pl" new file mode 100755 index 0000000..b98f19e --- /dev/null +++ "b/Niveau-1/Iramuteq/Construction_Dictionnaires_Nom_Esp\303\250ce.pl" @@ -0,0 +1,66 @@ +#!/usr/bin/perl + +use strict; +use warnings; + +use Getopt::Long; + +my ($programme) = $0 =~ m|^(?:.*/)?(.+)|; + +my $input = ""; +my $lexique = "lexique.txt"; +my $output = ""; +my $type = ""; + +eval { + $SIG{__WARN__} = sub {usage(1);}; + GetOptions( + "input=s" => \$input, + "lexique=s" => \$lexique, + "output=s" => \$output, + "type=s" => \$type, + ); + }; +$SIG{__WARN__} = sub {warn $_[0];}; + +if (not $input or $output) +{ + usage(2); +} +if ($type ne "animalia" and $type ne "plantae") +{ + usage(3); +} + + +open(FILE, "<:utf8", $input) or + die "Couldn't open file $input, $!"; +open(LEXIQUE, ">:utf8", $lexique) or + die "Couldn't open file $lexique, $!"; +open(EXPRESSION, ">:utf8", $output) or + die "Couldn't open file $output, $!"; + +while (my $ligne = ) { + $ligne = lc($ligne); + $ligne =~ /(\pL*) (\pL*)\t(\pL*)/; + if($ligne =~ /(\pL*) (\pL*)\t$type/){ + print LEXIQUE "$1_$2\t$1_$2\tnom\n"; + print EXPRESSION "$1 $2\t$1_$2\n"; + } +} +close(FILE); +close(LEXIQUE); +close(EXPRESSION); + +exit 0; + +sub usage +{ +my $code = shift; + +print STDERR "Usage : $programme -i input -o output -t (\"animalia\"|\"plantae\") [ -l lexique ]\n"; +print STDERR " -i input : liste des espèces\n"; +print STDERR " -o output : liste des expressions espèces\n"; + +exit $code; +} \ No newline at end of file diff --git "a/Niveau-1/Iramuteq/Pr\303\251paration_Donn\303\251es_entr\303\251e_Iramuteq.pl" "b/Niveau-1/Iramuteq/Pr\303\251paration_Donn\303\251es_entr\303\251e_Iramuteq.pl" new file mode 100755 index 0000000..1875bf0 --- /dev/null +++ "b/Niveau-1/Iramuteq/Pr\303\251paration_Donn\303\251es_entr\303\251e_Iramuteq.pl" @@ -0,0 +1,77 @@ +#!/usr/bin/perl + +use strict; +use warnings; +use utf8; +use open qw/:std :utf8/; + +use Encode; +use Getopt::Long; + +my ($programme) = $0 =~ m|^(?:.*/)?(.+)|; +$programme = decode_utf8($programme); + +my $dir = ""; # par exemple "ArthropodesTest" +my $racine = ""; # par exemple "Arthropodes" +my $metadata = ""; # par exemple "metadata.csv" +my $sortie = ""; # par exemple "Arthropodes_Ira.txt" + +eval { + $SIG{__WARN__} = sub {usage(1);}; + GetOptions( + "dir=s" => \$dir, + "racine=s" => \$racine, + "metadata=s" => \$metadata, + "sortie=s" => \$sortie, + ); + }; +$SIG{__WARN__} = sub {warn $_[0];}; + +usage(2) if not $dir or not $racine or not $metadata or not $sortie; + +#ouverture du dossier contenant les fichier .txt + +opendir(my $dh, $dir) or die "Couldn't open file $dir, $!"; +my @files = sort grep { /^${racine}_\d+.txt$/ and -f "$dir/$_" } readdir($dh); +closedir($dh); +my $size = @files; +print STDERR "Total : $size\n"; + +#ouverture des métadonnées +open(METADATA, "<:utf8", $metadata) or die "Couldn't open file $metadata, $!"; + +#ouverture d'un fichier pour saisir des données +open(DATA, ">:utf8", $sortie) or die "Couldn't open file $sortie, $!"; + +#une boucle pour métadonnées, une autre pour les fichiers .txt dans le dossier ArthropodesTest +my $i = 0; +while (my $metadata = ) { + $metadata =~ s/"(.*?)","(.*?)","(.*?)","(.*?)"/\*\*\*\* \*s_$2 \*c_$3 \*annee_$4/; + print DATA "$metadata"; + open(FILE, "<:utf8", "$dir/$files[$i]") or die "Couldn't open file $files[$i], $!"; + while(my $ligne = ){ + #suppression des étoiles et des chiffres + $ligne =~ s/\*//; + $ligne =~ s/\d//g; + print DATA $ligne; + } + close(FILE); + $i++; +} + +close(METADATA); +close(DATA); + +exit 0; + + +sub usage +{ +my $code = shift; + +print STDERR "Usage : $programme -d répertoire -r racine -m métadonnées -s sortie\n\n"; +print STDERR "Exemple : \n"; +print STDERR " $programme -d ArthropodesTest -r Arthropodes -m metadata.csv -s Arthropodes_Ira.txt\n"; + +exit $code; +} \ No newline at end of file