Forum |  HardWare.fr | News | Articles | PC | S'identifier | S'inscrire | Shop Recherche
2395 connectés 

  FORUM HardWare.fr
  Programmation
  PHP

  comment faire une orthographe approchée ? [trouvé]

 


 Mot :   Pseudo :  
 
Bas de page
Auteur Sujet :

comment faire une orthographe approchée ? [trouvé]

n°824763
Lex
Posté le 17-08-2004 à 09:58:31  profilanswer
 

Comment font les moteurs de recherches (ou les pages jaunes par exemple) pour proposer des mots clés approchés de ceux que l'on propose ? Quel type d'indexation utilisent-ils ?
 
Par exemple : sur les pages jaunes je demande "mortin" à paris et comme il n'existe pas de "mortin" il me sort les "martin".
 
merci de votre aide
 
edit : solution SELECT soundex('mortin'); dans mysql


Message édité par Lex le 17-08-2004 à 10:05:40
mood
Publicité
Posté le 17-08-2004 à 09:58:31  profilanswer
 

n°824821
Master p
My new cock ring :D
Posté le 17-08-2004 à 10:56:54  profilanswer
 

:jap: Merci

n°824871
Lex
Posté le 17-08-2004 à 11:29:38  profilanswer
 

la fonction soundex() existe aussi en PHP. il y a aussi d'autres fonctions permettan de comparer en pourcentage le rapprochement de deux mots ... put1 le PHP c'est génial :D

n°825146
Lex
Posté le 17-08-2004 à 15:18:43  profilanswer
 

A noter cette fonction qui est plus précise, car elle prend en compte la prononciation française :
 

Code :
  1. function soundex_fr($chaine){
  2. // algorithme original :  
  3. //http://www.chez.com/algor/soundex/soundex.htm  
  4.   if (!is_string($chaine) || strlen($chaine) == 0){ return "";}
  5.   // suppression des espaces initiaux  
  6.   $chaine = trim($chaine);
  7.   // mise en minuscule  
  8.   $chaine = strtolower($chaine);
  9.   // suppression des doublons  
  10.   $chaine = preg_replace("/(.)\\1/", "\\1", $chaine);
  11.   // garder la premiere lettre  
  12.   $p = $chaine[0];
  13.   // supprimer les lettres A, E, I, O, U, Y, H et W  
  14.   $chaine = ereg_replace("aeiouyhw", "", $chaine);
  15.   // remplacer les lettres restantes par leur chiffre  
  16.   //print $maire;  
  17.   $chaine = $p.strtr("1122233455677888999", "bpckqdtlmnrgjxzsfv", $chaine);
  18.   if (strlen($chaine) < 4){
  19.   str_pad($chaine, 4-strlen($chaine), " " );
  20.   } else {
  21.   $chaine = substr($chaine, 0, 4);
  22.   }
  23.   return $chaine;
  24. }


Message édité par Lex le 17-08-2004 à 15:19:05
n°825411
Master p
My new cock ring :D
Posté le 17-08-2004 à 20:15:44  profilanswer
 

Et moi qui croyait avoir affaire à des "fonctions magiques" (limites mystiques) dans leurs fonctionnements, je me rend compte que c'est juste la voyelle qui fait le son...
[:obawi]

n°825425
Lex
Posté le 17-08-2004 à 20:38:18  profilanswer
 

Attention, la fonction que j'ai posté plus haut semble ne pas fonctionner ...

n°825434
Master p
My new cock ring :D
Posté le 17-08-2004 à 20:50:06  profilanswer
 

Perso je trouve tes ereg bizarement foutu et ça m'étonnerait que ça marche, mais n'ayant jamais essayé cette méthode...
Chez moi :

$chaine = ereg_replace('a|e|i|o|u|y|h|w', '', $chaine);


et idem pour les consonnes...
 
edit: et sans avoir du tout essayé


Message édité par Master p le 17-08-2004 à 20:51:04
n°825483
Lex
Posté le 17-08-2004 à 21:38:35  profilanswer
 

nan c pas une regexp !! c'est strtr() qui remplace 1 par 1 le contenu des chaines de caractère

n°825489
Master p
My new cock ring :D
Posté le 17-08-2004 à 21:43:09  profilanswer
 

[:autobot]

n°825493
Lex
Posté le 17-08-2004 à 21:47:05  profilanswer
 
mood
Publicité
Posté le 17-08-2004 à 21:47:05  profilanswer
 

n°825496
Master p
My new cock ring :D
Posté le 17-08-2004 à 21:50:49  profilanswer
 

Dsl c'est ta phrase qui était mal formulé :o
Ça donne quoi ta fonction? Ça marche ou pas?
 
edit: Formulation (forcément si moi aussi je m'y mets  :sleep: )


Message édité par Master p le 17-08-2004 à 22:03:42
n°825504
Lex
Posté le 17-08-2004 à 22:04:25  profilanswer
 

Master P a écrit :

Et moi qui croyait avoir affaire à des "fonctions magiques" (limites mystiques) dans leurs fonctionnements, je me rend compte que c'est juste la voyelle qui fait le son...
[:obawi]


 
en l'occurence c'est la consonne dans soundex [:huit]

n°825506
Lex
Posté le 17-08-2004 à 22:05:20  profilanswer
 

Master P a écrit :

Dsl c'est ta phrase qui était mal formulé :o
Ça donne quoi ta fonction? Ça marche ou pas?
 
edit: Formulation (forcément si moi aussi je m'y mets  :sleep: )


 
c pas la mienne (piquée sur nexen lol) et elle donne pratiquement tjs le même résultat donc bof.
 
il doit y avoir une petite subtilité à modifier pour obtenir un résultat pertinent

n°825507
Master p
My new cock ring :D
Posté le 17-08-2004 à 22:05:57  profilanswer
 

t'as commencer par supprimer les voyelles :o

n°825513
Master p
My new cock ring :D
Posté le 17-08-2004 à 22:12:37  profilanswer
 

Le seul truc qui me gêne, c'est le fait de tronquer le mot après les 4 premières lettres :
1/ On aurait dû faire ça dès le débuts, ça aurait éviter des calculs inutiles
2/ C'est pas forcément plus pertinent.

n°825521
Lex
Posté le 17-08-2004 à 22:20:40  profilanswer
 

Ben c l'algo qui veut ça
 
http://www.chez.com/algor/soundex/soundex.htm
edit : je repete que c pas moins qui l'ai pondu le truc lol


Message édité par Lex le 17-08-2004 à 22:20:55
n°825526
Master p
My new cock ring :D
Posté le 17-08-2004 à 22:25:00  profilanswer
 

Lex a écrit :

Ben c l'algo qui veut ça
 
http://www.chez.com/algor/soundex/soundex.htm
edit : je repete que c pas moins qui l'ai pondu le truc lol

Je sais j'ai compris
 
Mais ton lien en dis pas plus sur le "pourquoi" du troncage

n°825551
Lex
Posté le 17-08-2004 à 22:53:18  profilanswer
 

Master P a écrit :

Je sais j'ai compris
 
Mais ton lien en dis pas plus sur le "pourquoi" du troncage


 
je suis d'accord avec toi que c assez débile ...


Aller à :
Ajouter une réponse
  FORUM HardWare.fr
  Programmation
  PHP

  comment faire une orthographe approchée ? [trouvé]

 

Sujets relatifs
Impossible de scroller une div qd une image se trouve en dessous ?[PHP] trouve pas la table alors qu'elle existe
[PHP] un "include" ne trouve pas mon fichierJe trouve les Graphics bien mystérieux
Où se trouve la DTD ?[Requête] [MySQL] [Update] je trouve po :o
recuperer la valeur d'une variable qui se trouve dans une autres page[DOS] forcer le cd sur une lettre au boot!!! [trouvé]
Probleme simple , mais je trouve pas ![Mysql, Join] [Edit : trouve alternative]
Plus de sujets relatifs à : comment faire une orthographe approchée ? [trouvé]


Copyright © 1997-2025 Groupe LDLC (Signaler un contenu illicite / Données personnelles)