欢迎您来到,李雷博客 | PHP博客        登录  |  注册

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

更新:2022-06-01 13:01:50
人气:1368
来源:本站原创
A+

今天分享两个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.mdaima.com";
    echo "匹配度1:".levenshtein($biaozhun,$string1,1,1,1)."<br>";
    echo "匹配度2:".levenshtein($biaozhun,$string2,1,1,1)."<br>";
?>

输出结果:

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

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

推荐的文章
# 发表我的评论
  /     /  
# 最近评论
暂时还没有评论,要不要说点什么?
  Ads by Google
  联系博主
Hello,本博客系统采用PHP和MySql开发,程序开发完全是因为个人爱好,是自己纯手写PHP源代码,未采用任何PHP框架!
QQ:858353007   微信号:lileihot123
网站地图
会员服务
关于我们
QQ:858353007
 
广告服务
加我微信
移动端访问
 
 
Copyright © 2014- 2024 www.mdaima.com All Rights Reserved.
李雷博客,专注PHP经验、PHP教程及PHP源代码开源下载分享的PHP博客!   ICP备案号:京ICP备10202169号-4