php – 巨大的列表中的类似名称

前端之家收集整理的这篇文章主要介绍了php – 巨大的列表中的类似名称前端之家小编觉得挺不错的,现在分享给大家,也给大家做个参考。

我有5万家公司的数据库,不断更新(每月200个).

重复内容是一个巨大的问题,因为名称并不总是严格/正确:
“超级1商店”
“超级一店”
“超级1商店”

编辑:另一个例子……可能需要不同的方法
“Amy’s Pizza”< ---> “Amy and Company的有机披萨”

我们需要工具来扫描数据以寻找相似的名称.
我对Levenshtein DistanceLCS有一些经验,但如果2个字符串相似,它们可以很好地进行比较…
在这里,我必须扫描50 000个名称,每个可能是每个,并在那里计算…整体相似性评级……

我需要建议如何攻击这个问题,预期的结果是有一个列表与10-20组非常相似的名称,并可能进一步调整灵敏度以获得更多结果.

最佳答案
我有一年前左右的类似问题,如果我记得很清楚,我解决了(或多或少)使用similar_text和soundex,正如其他人在评论中所说.像这样的东西:

PHP

$str1 = "Store 1 for you";
$str2 = "Store One 4 You";

similar_text(soundex($str1),soundex($str2),$percent);

if ($percent >= 66){
    echo "Equal";
    //Send an email for review
}else{
    echo "Different";
    //Proceed to insert in database
}
?>

在我的情况下,使用66%的百分比来确定公司是相同的(在这种情况下,不要插入数据库,但发送电子邮件给我审查,并检查是否正确).

经过几个月的解决方案,我决定为公司使用某种独特的代码(在我的案例中是CIF,因为西班牙的公司是独一无二的).

猜你在找的MySQL相关文章