php - 巨大列表中的相似名称

标签 php mysql data-analysis

我有 50 000 多家公司的数据库,这些公司不断更新(每月 200 多家)。

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

编辑:另一个例子..可能需要不同的方法:
“艾米的披萨”<--->“艾米和公司的有机披萨”

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

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

最佳答案

大约一年前我遇到过类似的问题,如果我没记错的话,我(或多或少)解决了使用 similar_textsoundex 正如其他人在评论中所说.像这样:

<?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,因为在西类牙这里的公司是独一无二的)。

关于php - 巨大列表中的相似名称,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/20211523/

相关文章:

python - 计算 Pandas 中的元素

php - 当我加入另一个表时发现查询错误

javascript - php 的动态名称属性

c++ - 什么时候应该使用 C++ 而不是 SQL?

mysql - 如何分解字符串多种颜色并使用MySql中的查询对其进行分组

php - Mysql PHP生成表: doesn't work with Tablesorter

Python。 Pandas 。大数据。凌乱的 TSV 文件。如何争论数据?

php - 如何在php中逐字节上传文件

javascript - 将php表单数据传输到js窗口

python - 在django中将两个字段相乘