分享两个PHP对字符串计算模糊匹配度的函数

后端开发   发布日期:2023年05月16日   浏览次数:351

今天分享两个PHP中用于对字符串计算模糊匹配度的函数,感觉PHP还是很强大的,只是理想和现实还是有差距的。

similar_text() 函数 计算两个字符串的相似度。该函数也能计算两个字符串的百分比相似度。

<?php
    $biaozhun="九品源码 PHP 博客 技术博客";
    $string1="PHP 技术学习";
    $string2="李雷 PHP在线 技术博客";
    
    $nums=similar_text($biaozhun,$string1);
    echo "第1组匹配字符的数目: ".$nums."<br>";//计算的结果中空格也会计算在内
    
    similar_text($biaozhun,$string1,$percent);
    echo "第1组字符串的相似度为: ".$percent." %<br>";
    
    similar_text($biaozhun,$string2,$percent);
    echo "第2组字符串的相似度为: ".$percent." %<br>";
    
    echo "-------------------------------------------------<br>";
?>

输出结果:

第1组匹配字符的数目: 8
第1组字符串的相似度为: 42.105263157895 %
第2组字符串的相似度为: 72.340425531915 %

levenshtein() 函数 返回两个字符串之间的 Levenshtein 距离。

Levenshtein 距离,又称编辑距离,指的是两个字符串之间,由一个字符串转换成另一个字符串所需的最少编辑操作次数。许可的编辑操作包括将一个字符替换成另一个字符,插入一个字符,删除一个字符。

默认地,PHP 给每个操作(替换、插入和删除)相同的权重。然而,您可以通过设置可选的 insert、replace、delete 参数,来定义每个操作的成本。

Levenshtein值越低,越相近,限制255字符以内,否则返回-1

<?php
    $biaozhun="九品源码 PHP 博客 技术博客";
    $string1="PHP博客 PHP在线";
    $string2="李雷 PHP在线 技术博客 www.19jp.com";
    echo "匹配度1:".levenshtein($biaozhun,$string1,1,1,1)."<br>";
    echo "匹配度2:".levenshtein($biaozhun,$string2,1,1,1)."<br>";
?>

输出结果:

匹配度1:18
匹配度2:24

我个人感觉,这两个函数的应用也只能是参考,实际应用中要根据具体情况进行判断。

以上就是分享两个PHP对字符串计算模糊匹配度的函数的详细内容,更多关于分享两个PHP对字符串计算模糊匹配度的函数的资料请关注九品源码其它相关文章!