我需要写一个返回最接近的匹配基于用户输入的姓名和地址的联系人的算法。这两者都是令人不安的,因为有这么多的方法输入公司名称和地址,例如:加权搜索算法找到像联系人
Company A, 123 Any Street Suite 200, Anytown, AK 99012
Comp. A, 123 Any St., Suite 200, Anytown, AK 99012
CA, 123 Any Street Ste 200, Anytown, AK 99012
我已经看过这样的名称的Levenshtein距离,但似乎并没有很大的工具,因为它们可以缩写名称。我正在寻找可能的最多信息匹配的东西。
我最初的尝试是首先以邮政编码的前5位数字限制结果,然后尝试根据其他信息过滤到一个结果,但必须有一个更加标准的方法来完成此操作。我在.NET中工作,但会查看您可以提供的任何代码,以了解如何完成此操作。
USPS API确实可以工作到一定程度,因为它是免费的,但缺乏重要功能,可能不会返回所有需要的信息来查找重复的联系人。我认为,CASS认证的USPS服务供应商(如SmartyStreets;请参阅我的补充答案)将提供更多SteveBering的需求。 – Matt 2012-01-05 19:30:43