Mise au point d'un bon algo
Je cherche a faire un algo pour déterminer la langue de certains fichiers.
les mots de ces fichiers sont stocké dans le tableau et mes "dictionnaire" sont dans un fichier Les mot dans les dicos sont rangé sous la forme
J'ai déja fait un début d'algo que j'ai trouvé sur le forum mais il est loin d'être optimal.
Code:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38
| #!/usr/bin/perl -w
#Tout d'abord, fais toi un repertoire ou tu auras tous tes dicos
use strict;
use Carp;
my $count = 0;
my $ligne_dico;
my @mots_dico;
my $texte = "voici un exemple de ligne dont je dois trouver la langue";
my @mon_texte = split(/ /,$texte);
#Recuperation des fichiers (dico) par une commande system
my @mes_dico = `ls /home/.../mon_repertoire/`;
#parcour chaque fichier dico
foreach my $un_dico (@mes_dico) {
#ouverture dico
open (FILE, "$un_dico") || die "impossible to open $un_dico $!";
#recupere la &ere et unique ligne du dico
$ligne_dico = <FILE>;
close (FILE);
#met chaque mot du dico dans une case du tableau @mots_dico
@mots_dico = split(/\|/,$ligne_dico);
#comparaison de @mon_texte avec les mots du dico @mots_dico
foreach my $mot_texte (@mon_texte) {
foreach my $un_mot_dico (@mots_dico) {
if ($mot_texte eq $un_mot_dico) {
$count ++;
}
}
}
print "$count mot(s) trouve(s) dans $un_dico \n";
$count = 0; #reinitialise le nombre à 0 pour le traitement du prochain fichier
} |