1

我正在寻找一个 PHP 库,它允许我比较两个字符串,并确定它们是否相似。例如:

apple apple 100%
apple aple  80%

等等。有任何想法吗?

4

4 回答 4

11

http://www.php.net/manual/en/function.similar-text.php

similar_text — 计算两个字符串之间的相似度

描述

int similar_text ( string $first , string $second [, float &$percent ] )

这将计算两个字符串之间的相似度,如编程经典:Oliver 的世界最佳算法 (ISBN 0-131-00413-1) 中所述。请注意,此实现不像 Oliver 的伪代码那样使用堆栈,而是使用递归调用,这可能会也可能不会加速整个过程。另请注意,该算法的复杂度为 O(N**3) 其中 N 是最长字符串的长度...

正是这样做的。

于 2009-11-17T21:03:56.117 回答
4

您可以考虑使用levenshteinsimilar-textsoundexmetaphone函数。

于 2009-11-17T21:07:04.830 回答
3
similar_text('apple', 'apple', $percentage);
echo $percentage. // 100

similar_text('apple', 'aple', $percentage);
echo $percentage. // 88.88
于 2016-05-09T09:05:14.423 回答
2

此外,如果您将此比较作为从数据库中提取数据的一部分,那么许多数据库引擎都有 SOUNDS LIKE(或 SOUNDEX)实现。在数据库服务器中执行此操作会比在 PHP 中执行此操作更快。

于 2009-11-17T21:31:06.867 回答