3

我正在研究使用CASS认证的地址验证服务来在输入时更正用户提供的街道地址。(具体来说,我正在查看 SmartyStreets 的 LiveAddress。)但是,USPS 规定正确的地址必须全部大写,因此 CASS 服务几乎一致地以这种方式返回地址。但是,在向该地址的客户邮寄时,最好使用更人性化的传统外壳。

当然,问题是如何做到这一点。我知道没有一个完美的解决方案不涉及完整的全国性正确大写街道和城市名称的数据库。不过,一组可以通过的启发式方法可能就足够了,因为我们可能会将更正的地址踢回给用户,最终留给他们。

经过几分钟的思考,我能够提出的问题的简短列表:

  • SW FIRST ST应该SW First St,不是Sw First St
  • MCDOUGLE ST应该McDougle St,不是Mcdougle St
  • MACDOUGLE ST应该可能Macdougle St而不是MacDougle St,因为Macoroni Rd通常不应该MacOroni Rd
  • 1ST ST应该1st St,不是1St St
  • 不知道街道名称是否基于姓氏,我们可能无法安全地VAN变成van,但VON可能会变成von

是否有任何现有的图书馆至少可以让我开始?地址是复杂多变的东西,如果我不需要的话,我宁愿不自制。我正在使用 C#,但我愿意从另一种语言移植代码。

除此之外,是否有人对街道和/或城市名称的常见大写例外有很好的参考?

4

2 回答 2

2

很高兴看到您使用 LiveAddress 服务来促进地址验证和标准化。在将大小写规则应用于标准化地址的过程中,您可能需要注意一件事:

我们最近引入了一个新的REST+JSON端点,它返回地址的标准化形式以及地址的各个组成部分。因此,很容易将大小写规则应用于独立于街道后缀和前/后方向返回的“street_name”和“city_name”值。

除了 Stack Overflow 上的问题(我们会持续监控)之外,欢迎您联系 SmartyStreets 支持以获取有关此问题的更多帮助。我可能还应该提到我是 SmartyStreets 的创始人。最后,我们正在努力返回正确大小写的地址,但我还没有任何发布时间框架。

于 2011-10-27T03:18:42.067 回答
1

不是库,但您可能可以根据您的要求使用Google Maps API解决问题。

于 2011-10-26T20:39:17.780 回答