我需要比较可以用多种方式书写的名称。例如,像 St. Thomas 这样的名字有时会写成 St-Thomas 或 Sant Thomas。最好,我希望构建一个函数,为比较提供“平等”的百分比,就像一些论坛所做的那样(这篇文章已编辑 5%例如)。
PHP 为此有两个(主要)内置函数。
levenshtein http://php.net/manual/en/function.levenshtein.php它计算从 string1 生成 string2 需要多少次更改(删除/添加/替换)。 (越低越好)
and
similar_text http://www.php.net/manual/en/function.similar-text.php它返回匹配字符的数量(越高越好)。请注意,您可以传递引用作为第三个参数,它会给您一个百分比。
<?php
$originalPost = "Here's my question to stack overflou. Thanks /h2ooooooo";
$editedPost = "Question to stack overflow.";
$matchingCharacters = similar_text($originalPost, $editedPost, $matchingPercentage);
var_dump($matchingCharacters); //int(25)
var_dump($matchingPercentage); //float(60.975609756098) (hence edited 40%)
?>
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)