背景:我有一个庞大的人员数据库,我想查找重复项,这比看起来要困难得多。我已经对名字(通常以不同的方式拼写)、出生日期等进行了很多比较。当两个配置文件看起来与匹配算法足够相似时,它们会被呈现给将要判断的操作员。
大多数个人资料都附有多个电话号码,所以我想用它们来查找重复项。它们可以输入为“001-555-123456”,也可以输入为“555-123456”、“555-123456-7-8”、“555-123456 晚上给我打电话”或任何您可能想象的。我的第一个想法是去除所有非数字字符并获得“最长的公共子字符串”。有很多算法可以找到集合中最长的公共子串。但是每当我比较两个配置文件 A 和 B 时,我都有两组电话号码。我想找到集合 A 中的字符串和集合 B 中的字符串之间的最长公共子字符串。你能帮我找到这样的算法吗?我通常用 PHP 编程,只有 SQL 的解决方案会更好,但任何其他语言都可以。