PHP Левенштейна в процентах - PullRequest
2 голосов
/ 14 февраля 2011

Можете ли вы объяснить, почему мне нужно использовать как входную строку, так и совпадающую строку при определении процента Левенштейна?

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

1 Ответ

2 голосов
/ 14 февраля 2011

Потому что это процент. Вам нужно сравнить одно число с другим.

Расстояние Левенштейна - это число изменений одного символа между двумя строками, необходимое для изменения первой строки во вторую строку. Процент - это количество оригинальных персонажей, которые были изменены. например лев расстояние 2 на 10-символьном слове (20%) - это меньший процент, чем лев. расстояние 2 на двухсимвольном слове (100%), хотя оба лев. расстояния одинаковы.

...