2

您能解释一下为什么在确定 levenshtein 百分比时我需要同时使用输入字符串和匹配字符串吗?

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

1 回答 1

2

因为它是一个百分比。您需要将一个数字与另一个数字进行比较。

Levenshtein 距离是将第一个字符串更改为第二个字符串所需的两个字符串之间的单个字符更改的数量。百分比是改变了多少原始字符。例如列弗。10 个字符的单词(20%)上的距离为 2 比 lev 的百分比更小。2 个字符的单词(100%)的距离为 2,即使两者都 lev。距离是一样的。

于 2011-02-14T02:34:27.010 回答