【发布时间】:2019-11-22 17:58:50
【问题描述】:
My SQL 服务器包含 2 个表,其中包含一组类似的邮寄(物理)地址字段。注意这些表是在数据进入我的数据库之前填充的(无法更改)。表中的字段集相似但不相同 - 大多数都存在于两个表中,一些只在一个表中,一些在另一个表中。目标是“高度自信”地确定两个邮寄地址是否匹配。
示例字段:
- 街道编号
- 预定向
- 街道名称
- 街道后缀
- 后向(一个表而不是另一个)
- 单元名称(一个表)v 地址 2(另一个表)--增加复杂性
- 邮政编码(每张表的长度各不相同,5 到 5 位以上)
- 法律说明
理想情况下,我想要一种简单的方法来调用“函数”,该函数返回一个布尔值或匹配的置信水平 (0.0 - 1.0)。这个调用可以在我的解决方案中用 SQL 或 Python 进行;免费/开源深受客户青睐。
在 SOUNDEX、DIFFERENCE、Levenshtein distance(所有 SQL)和 usaddress 等选项中,没有一个是适合的解决方案。
【问题讨论】:
-
“高置信度”是问题所在……您必须先将两个表中的地址标准化,然后才能尝试匹配它们。您可以查看 Accuzip.com 之类的内容...但就像我说的那样,您首先需要对地址进行标准化,然后再尝试比较它们。
-
我同意@BillRuhl 关于标准化两个地址然后比较它们的观点。这是一个option,但要花一些钱。
-
地址标准化比人们想象的要棘手,并且需要持续监控。看看stackoverflow.com/questions/41249742/…
-
您能否扩展“表中的字段相似但不相同”。 -- 您对这个问题的回答对于确定最佳行动方案很重要。
-
感谢大家的回复! @JohnCappelletti 您使用 Google Maps API 进行标准化的方法对我们来说似乎很简单且具有成本效益。请说明需要“持续监控”。在更好地理解标准化之后,我将继续比较/相似性指标。再次感谢。
标签: sql-server python-3.x street-address