2011-02-14 6 views
2

Pouvez-vous expliquer pourquoi j'ai besoin d'utiliser à la fois la chaîne d'entrée et la chaîne correspondante pour déterminer le pourcentage de levenshtein?Pourcentages PHP Levenshtein

$str1len = strlen($str1);   
$str2len = strlen($str2);  
if($str1len < $str2len){  
    $pct = ($str1len - $lev)/$str1len;  
} else {  
    $pct = ($str2len - $lev)/$str2len;  
} 
$pct = $pct * 100;  
+7

Je ne vois pas l'algorithme de distance de Leveshtein appliqué n'importe où dans votre code. De toute façon, vous avez besoin de deux chaînes, vous comparez une chaîne à l'autre. Je ne comprends pas vraiment ce que tu veux dire. –

+0

Parce que la formule l'utilise. "Pourquoi" les questions sont généralement trop ambiguës pour répondre objectivement. Essayez de réviser la question sans utiliser le "pourquoi". –

Répondre

2

Parce que c'est un pourcentage. Vous devez comparer un nombre par rapport à un autre. Une distance levenshtein est le nombre de changements de caractères entre deux chaînes nécessaires pour changer la première chaîne en seconde chaîne. Le pourcentage correspond au nombre de caractères originaux qui ont été modifiés. par exemple. un lev. distance de 2 sur un mot de 10 caractères (20%) est un pourcentage inférieur à un lev. distance de 2 sur un mot de 2 caractères (100%), même si les deux lev. les distances sont les mêmes.