Léa-Linux & amis :   LinuxFR   GCU-Squad   GNU
[Perl] mots approchants
Envoyé par: Mildred

Je suis en train de faire un dictionnaire en Perl (Basé sur des fichiers textes tirés avec EzMacros de Windows) et jaimerais que si on tape mal un mot, il soit proposé une liste de mots avec ortographe approchantes ...
Vous n'avez pas des idées ?

Merci
Mildred

Poste le Tuesday 30 December 2003 03:39:15
Répondre     Citer    
Re: [Perl] mots approchants
Envoyé par: DomiX

Bonsoir :-)

Les expressions rationnelles sont là pour ça eye rolling smiley

$ perldoc perlre

Quand à son utilisation bon courage si c'est la première fois que tu entends ces mots sinon ça devrait rouler.

A+

Poste le Tuesday 30 December 2003 18:41:08
Répondre     Citer    
Re: [Perl] mots approchants
Envoyé par: Mildred

Je sais ce que c'est (c'est bien les expressions régulières ?) mais je cois mal comment les utiliser...
Sinon, jai immaginé un système mais il me retourne trop de réponses et n'a pas l'air fiable ...

Exemple avec les mots abcde et abbcdde:
Différence de taille: a=2
Longeur de la plus petite chaine: b=5

abcde__
abbcdde
=======
1100000 = 2

_abcde_
abbcdde
=======
0011100 = 3

__abcde
abbcdde
=======
0000011 = 2

Total: c=2+3+2=7
Similitude: (c-a)/b = (7-2)/5 = 5/5 = 1

Mais ca m'a l'air complètement foireux ...
En code perl, ca donne:

sub words
{
$w1=$_[0];
$w2=$_[1];
$len1=length $w1;
$len2=length $w2;
if($len1>$len2)
{
$len=$len1;
$len1=$len2;
$len2=$len;
$w=$w1;
$w1=$w2;
$w2=$w;
}
# we have $len1 <= $len2
$op = $len2 - $len1;
$count = 0-$op;
for($i=0;$i<=$op;$i++)
{
$w = (' ' x $i).$w1.(' ' x $op-$i);
for($j=0;$j<$len2;$j++)
{
$char1 = lc substr($w, $j, 1);
$char2 = lc substr($w2, $j, 1);
if($char1 eq $char2){ $count++; }
}
}
$nb = $count/$len1;
return $nb;
}

Poste le Tuesday 30 December 2003 18:52:14
Répondre     Citer    
Re: [Perl] mots approchants
Envoyé par: DomiX

A oui en effet j'avais mal saisie ton problème, je pensais que tu saisisais un modèle et qu'il te donnais des mots vérifiant ce modèle.

(je maintiens selon moi la traduction de regular expression c'est expression rationnelle :-))

Poste le Tuesday 30 December 2003 19:33:05
Répondre     Citer    
Re: [Perl] mots approchants
Envoyé par: Mildred

Tu dois avoir raison sur la traduction ... Mais peu importe
Personne n'aurait une idée d'algorithme un peu moins foireux par hasard ?
Merci

Mildred

Poste le Wednesday 31 December 2003 04:44:05
Répondre     Citer    
Re: [Perl] mots approchants
Envoyé par: miguel2i

Il faut un truc qui recherche les mots de même sons mais pas avec les même lettres.

Par exemple, tu cherche le mot 'mais', et il te sort 'met', 'mai' et les autres.
J'ai jamais essayé mais ca doit sortir des trucs plus fiables qu'une approche sur les lettres.

Poste le Saturday 3 January 2004 00:36:14
Répondre     Citer    

Veuillez vous authentifier auparavant pour commenter.

 

Ce forum !
[Perl] mots approchants
Pour poser vos questions sur les scripts shell, le Perl, le C, etc... Attention : nous ne sommes pas des spécialistes du dev, ce forum est juste pour de petites aides ponctuelles concernant le développement et les outils de développement.

Sauf mention contraire, les documentations publiées sont sous licence Creative-Commons