我正在研究使用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#,但我愿意从另一种语言移植代码。
除此之外,是否有人对街道和/或城市名称的常见大写例外有很好的参考?