background image

PHP 函数:相似度计算函数 levenshtein 的使用介绍

本文主要为为大家介绍,关于 PHP

 

的相似度计算函数 levenshtein 的使用,供大家参考

使用说明

 

先看手册上 levenshtein() 函数的说明:
levenshtein() 

 

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

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

 

例如把 kitten 

 

转换为 sitting:

sitten (k s

→ )

sittin (e i

→ )

sitting (→g)levenshtein() 函数给每个操作(替换、插入和删除)相同的权重。不过,

 

您可以通过设置可选的 insert、replace、delete 参数,来定义每个操作的代价。
语法:
levenshtein(string1,string2,insert,replace,delete)

 

参数 描述
string1 必需。要对比的第一个字符串。
string2 必需。要对比的第二个字符串。
insert 

 

可选。插入一个字符的代价。默认是 1。

replace 

 

可选。替换一个字符的代价。默认是 1。

delete 

 

可选。删除一个字符的代价。默认是 1。

提示和注释

 

如果其中一个字符串超过 255 个字符,levenshtein() 

 

函数返回 -1。

levenshtein() 函数对大小写不敏感。
levenshtein() 

 

函数比 similar_text() 函数更快。不过,similar_text() 函数提供需要更

少修改的更精确的结果。
例子
代码如下:

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

 

输出: 1 30
源码分析
levenshtein() 属于标准函数,在/ext/standard/目录下有专门针对此函数实现的文件: