• 欢迎访问开心洋葱网站,在线教程,推荐使用最新版火狐浏览器和Chrome浏览器访问本网站,欢迎加入开心洋葱 QQ群
  • 为方便开心洋葱网用户,开心洋葱官网已经开启复制功能!
  • 欢迎访问开心洋葱网站,手机也能访问哦~欢迎加入开心洋葱多维思维学习平台 QQ群
  • 如果您觉得本站非常有看点,那么赶紧使用Ctrl+D 收藏开心洋葱吧~~~~~~~~~~~~~!
  • 由于近期流量激增,小站的ECS没能经的起亲们的访问,本站依然没有盈利,如果各位看如果觉着文字不错,还请看官给小站打个赏~~~~~~~~~~~~~!

php中比较两个字符串的相似度代码

PHP 水墨上仙 1923次浏览 0个评论

在php计算字符串相似度similar_text与相似度levenshtein函数的详细介绍

similar_text&nbsp—&nbsp计算两个字符串的相似度&nbsp
int&nbspsimilar_text&nbsp(&nbspstring&nbsp$first&nbsp,&nbspstring&nbsp$second&nbsp[,&nbspfloat&nbsp&$percent&nbsp]&nbsp)&nbsp
$first&nbsp必需。规定要比较的第一个字符串。&nbsp
$second&nbsp必需。规定要比较的第二个字符串。&nbsp
$percent&nbsp可选。规定供存储百分比相似度的变量名。&nbsp

两个字符串的相似程度计算依据&nbspOliver&nbsp[1993]&nbsp的描述进行。注意该实现没有使用&nbspOliver&nbsp虚拟码中的堆栈,但是却进行了递归调用,这个做法可能会导致整个过程变慢或变快。也请注意,该算法的复杂度是&nbspO(N**3),N&nbsp是最长字符串的长度。&nbsp

比如我们想找字符串abcdefg和字符串aeg的相似度:&nbsp

$first = "abcdefg"; 
$second = "aeg"; 
echo similar_text($first, $second);结果输出3.如果想以百分比显示,则可使用它的第三个参数,如下: 
$first = "abcdefg"; 
$second = "aeg"; 
similar_text($first, $second, $percent); 
echo $percent; 

similar_text函数的使用及实现过程。similar_text()&nbsp函数主要是用来计算两个字符串的匹配字符的数目,也可以计算两个字符串的相似度(以百分比计)。与&nbspsimilar_text()&nbsp函数相比,我们今天要介绍的&nbsplevenshtein()&nbsp函数更快。不过,similar_text()&nbsp函数能通过更少的必需修改次数提供更精确的结果。在追求速度而少精确度,并且字符串长度有限时可以考虑使用&nbsplevenshtein()&nbsp函数。&nbsp

使用说明&nbsp

先看手册上&nbsplevenshtein()&nbsp函数的说明:&nbsp

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

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

例如把&nbspkitten&nbsp转换为&nbspsitting:&nbsp

sitten&nbsp(k→s)&nbsp
sittin&nbsp(e→i)&nbsp
sitting&nbsp(→g)levenshtein()&nbsp函数给每个操作(替换、插入和删除)相同的权重。不过,您可以通过设置可选的&nbspinsert、replace、delete&nbsp参数,来定义每个操作的代价。&nbsp

语法:&nbsp

levenshtein(string1,string2,insert,replace,delete)&nbsp

参数&nbsp描述&nbsp

•string1&nbsp必需。要对比的第一个字符串。&nbsp
•string2&nbsp必需。要对比的第二个字符串。&nbsp
•insert&nbsp可选。插入一个字符的代价。默认是&nbsp1。&nbsp
•replace&nbsp可选。替换一个字符的代价。默认是&nbsp1。&nbsp
•delete&nbsp可选。删除一个字符的代价。默认是&nbsp1。&nbsp
提示和注释&nbsp

•如果其中一个字符串超过&nbsp255&nbsp个字符,levenshtein()&nbsp函数返回&nbsp-1。&nbsp
•levenshtein()&nbsp函数对大小写不敏感。&nbsp
•levenshtein()&nbsp函数比&nbspsimilar_text()&nbsp函数更快。不过,similar_text()&nbsp函数提供需要更少修改的更精确的结果。&nbsp
代码例子&nbsp:

<?php 
echo levenshtein("Hello World","ello World"); 
echo "<br />"; 
echo levenshtein("Hello World","ello World",10,20,30); 
?> 

输出:&nbsp1&nbsp30


开心洋葱 , 版权所有丨如未注明 , 均为原创丨未经授权请勿修改 , 转载请注明php中比较两个字符串的相似度代码
喜欢 (0)

您必须 登录 才能发表评论!

加载中……