地址资本化

时间:2011-10-26 20:32:57

标签: street-address capitalization

我正在考虑使用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#,但我愿意使用其他语言移植代码。

除此之外,是否有人对街道和/或城市名称的共同资本化例外有一个不错的参考?

2 个答案:

答案 0 :(得分:2)

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

我们最近推出了一个新的REST+JSON端点,它返回地址的标准化形式以及地址的各个组成部分。因此,将套管规则应用于“street_name”和“city_name”值非常容易,这些值的返回与街道后缀和前后方向无关。

除了Stack Overflow(我们不断监控)上的问题之外,欢迎您联系SmartyStreets支持以获得有关此问题的其他帮助。我可能还应该提到我是SmartyStreets的创始人。最后,我们正在努力恢复正确的地址,但我还没有任何类型的发布时间框架。

答案 1 :(得分:1)

不是图书馆,但根据您的要求,您可以使用Google Maps API来解决问题。