Je cherche a faire un algo pour déterminer la langue de certains fichiers.

les mots de ces fichiers sont stocké dans le tableau
@motsdudoc
et mes "dictionnaire" sont dans un fichier
/dico/
Les mot dans les dicos sont rangé sous la forme

mot1
mot2
mot3

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 : Sélectionner tout - Visualiser dans une fenêtre à part
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 
}