我在SQL Server 2008Persons
中有表。
我的目标是找到地址几乎相似的人。
state
地址用、town
、street
、house
、apartment
、postcode
和列描述phone
。
由于某些州(不是美国)和人为因素(地址错误等)的某些特定差异,地址没有以相同的模式填写。
地址中最常见的错误
- 区分大小写
- 有人写“apt.”,另一个写“apartment”或“ap”。(虽然地址不是用英文写的)
- 空格、点、逗号
- 写街道名称的差异,例如“Dr. Jones str.”或“Doctor Jones street”或“D. 乔恩。圣。”或“琼斯博士圣”等。
主要问题是数据的模式不同,因此很难找到相似的地址。
有没有针对此类问题的算法?
提前致谢。
更新
- 正如我提到的,地址被分成不同的列。我应该生成一个连接列的字符串还是为每列执行您的步骤?我假设我不应该连接列,但是如果我要分别比较列,我应该如何组织它?我应该为每列找到相似之处,将它们合并或相交或其他任何东西吗?
- 我应该收集一些统计数据还是某种教育算法?