Distance entre deux chaines

rhum07 Messages postés 12 Date d'inscription jeudi 17 juillet 2003 Statut Membre Dernière intervention 14 avril 2006 - 7 juin 2005 à 18:25
malalam Messages postés 10839 Date d'inscription lundi 24 février 2003 Statut Membre Dernière intervention 2 mars 2010 - 9 juin 2005 à 10:22
Je cherche une fonction qui permet de calculer la distance entre 2 chaines de caractéres au niveau des mots contenus dans les chaines et non le calcul du nombres de caractères identiques dans ces 2 chaines (méthode levenshtein).

7 réponses

cs_Anthomicro Messages postés 9433 Date d'inscription mardi 9 octobre 2001 Statut Membre Dernière intervention 13 avril 2007 8
7 juin 2005 à 21:43
Salut,



heu désolé mais j'ai pas bien compris... T'as pas un exemple stp ?

<hr size="2" width="100%">




<li>Entraide, dépannage et vulgarisation informatique: Mon site de vulgarisation informatique</li>
0
malalam Messages postés 10839 Date d'inscription lundi 24 février 2003 Statut Membre Dernière intervention 2 mars 2010 25
8 juin 2005 à 09:20
Hello,



il n'y a pas de fonction toute prete pour ca a ma connaissance. Outre
levenmachin (), il y a aussi similar_text() mais elle se base aussi sur
les caracteres. Ensuite, il y a soundex () mais elle se base sur la
similarite de la prononciation des mots (en anglais...), et enfin
metaphone () qui fait pareil.



Donc a mon avis, va falloir te debrouiller tout seul, et la creer,
cette fonction. D'ailleurs ce serait interessant je pense! Si tu la
crees, mets la ici ce serait sans doute une bonne source :-)



Antho => il veut calculer la similarite de deux chaines en fonctions des mots qu'elles comportent. Genre :

Hello Wold, my name is Antho the Great !

Hello Monde, my name is Antho the Great !

seraient tres proches (il faut trouver une unite de mesure aussi...).



Rhum7 => tu veux calculer en fonction des mots hein, pas du sens de
ces mots...? Une aide : str_word_count te retourne le nombre de mots
contenus dans une chaine. Apres, il faut les comparer...



Bon courage.
0
malalam Messages postés 10839 Date d'inscription lundi 24 février 2003 Statut Membre Dernière intervention 2 mars 2010 25
8 juin 2005 à 10:54
re,



comme ca m'interessait, je t'ai fait une base, a ameliorer hein, a
beaucoup ameliorer lol. Et a adapter selon tes besoins que je ne
connais pas. Tu as sans doute plus reflechi a la question que moi :



<?php



function compareChaines ($str1, $str2) {

$cpt = 0;

$tab1 = str_word_count (strtolower($str1), 1);

$str2 = strtolower ($str2);

if (is_array ($tab1)) {

foreach ($tab1 as $mot) {

if (false !== strpos ($str2, $mot)) {

$cpt += 1;

}

}

return $pourcent = (100 / count ($tab1)) * $cpt;

}

else

return $pourcent = 0;

}

$chaine1 = 'Hello monde, my name is Antho the Great!';

$chaine2 = 'Hello world, my name is Antho the Great!';



$percent = compareChaines ($chaine1, $chaine2);

echo $percent, ' % de similitudes';



?>
0
cs_Anthomicro Messages postés 9433 Date d'inscription mardi 9 octobre 2001 Statut Membre Dernière intervention 13 avril 2007 8
8 juin 2005 à 10:56
pas mal :-)

<hr size="2" width="100%">




<li>Entraide, dépannage et vulgarisation informatique: Mon site de vulgarisation informatique</li>
0

Vous n’avez pas trouvé la réponse que vous recherchez ?

Posez votre question
malalam Messages postés 10839 Date d'inscription lundi 24 février 2003 Statut Membre Dernière intervention 2 mars 2010 25
8 juin 2005 à 11:05
Lol merci (je savais que ca te plairait ;-) )
Mais bon, il faudrait voir comment on veut comparer. La je fais une comparaison bete, mot a mot, en prenant arbitrairement la premiere chaine comme mesure. C'est pas ideal.
0
rhum07 Messages postés 12 Date d'inscription jeudi 17 juillet 2003 Statut Membre Dernière intervention 14 avril 2006
8 juin 2005 à 18:57
Merci pour vos réponses.
En effet si on pouvait calculer par rapport du sens des mots, cela m'interesserait beaucoup.
Si quelqu'un a des exemples, merci.

Encore merci pour le script
0
malalam Messages postés 10839 Date d'inscription lundi 24 février 2003 Statut Membre Dernière intervention 2 mars 2010 25
9 juin 2005 à 10:22
Bah ca c'est impossible a moins de faire toute une enorme application avec un dictionnaire...
0
Rejoignez-nous