我需要寫一個返回最接近的匹配基於用戶輸入的姓名和地址的聯繫人的算法。這兩者都是令人不安的,因爲有這麼多的方法輸入公司名稱和地址,例如:加權搜索算法找到像聯繫人
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