【发布时间】:2013-12-11 06:26:15
【问题描述】:
我有 50 000 多家公司的数据库,不断更新(每月 200 多家)。
重复内容是个大问题,因为名称并不总是严格/正确:
“超级1店”
“超级一店”
“超级一店”
编辑:另一个示例 .. 可能需要不同的方法:
“艾米的披萨”“艾米公司的有机披萨”
我们需要工具来扫描类似名称的数据。
我对Levenshtein Distance 和LCS 有一些经验,但是它们很适合比较两个字符串是否相似...
在这里,我必须扫描 50 000 个可能是一个个的名字并在那里计算...总体相似度...
我需要建议如何解决这个问题,预期的结果是有一个包含 10-20 组非常相似的名称的列表,并且可能会进一步调整灵敏度以获得更多结果。
【问题讨论】:
-
有趣!你试过
similar_text()function吗? -
简单的答案是首先在 map/reduce 之后进行标准化,但我想您正在寻找更复杂的东西。
-
我没用过,SOUNDEX怎么样?
-
levenshtein、soundex 和similar_text 差不多,只是算法不同
-
我的方法是“手工”,你必须创建自己的规则来规范化名称,为什么常见的变体,这将是更准确的方法,但使用 soundex/levenshtein 将是简单的方法.
标签: php mysql data-analysis