我需要编写一个算法,根据用户输入的姓名和地址返回与联系人最接近的匹配项。这两者都令人不安,因为输入公司名称和地址的方法有很多,例如:
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 中工作,但会查看您可以提供的任何代码,以了解如何完成此操作。