如何将免费的街道/邮政地址从文本中解析出来,并转换成组件

如何将免费的街道/邮政地址从文本中解析出来,并转换成组件

我们主要在美国做生意,并试图通过将所有的地址字段合并成一个单一的文本区域来改善用户体验。但是有几个问题:

  • 用户类型的地址可能不正确,也可能不符合标准格式。
  • 地址必须分开(街道、城市、州等)。处理信用卡付款
  • 用户可以输入的不仅仅是他们的地址(比如他们的名字或公司)。
  • 谷歌可以做到这一点,但服务条款和查询限制是令人望而却步的,特别是在预算紧张的情况下。

显然,这是一个常见的问题:

有没有办法将地址与其周围的文本分离,并将其分解成碎片?是否有解析地址的正则表达式?


慕容708150
浏览 875回答 3
3回答

PIPIONE

有很多街道地址解析器。它们有两种基本形式-一种是有地名和街道名称的数据库,另一种是没有的。一个正则表达式街道地址解析器可以达到95%的成功率,没有太多的麻烦。然后你就开始打那些不寻常的案子。CPAN中的Perl一个,“Geo:StreetAddress:us”,就是这样。这里有Python和Javascript端口,都是开源的。我在Python中有一个改进的版本,它通过处理更多的案例稍微提高了成功率。然而,为了正确处理最后3%,您需要数据库来帮助消除歧义。一个有三位数邮政编码、美国国名和缩写的数据库是一个很大的帮助.当解析器看到一致的邮政编码和状态名称时,它可以开始锁定格式。这对美国和英国非常有效。正确的街道地址解析从结束开始并向后工作。USPS系统就是这么做的。地址在结尾处最不含糊,国家名称、城市名称和邮政编码相对容易识别。街道名称通常可以被隔离。街道上的位置是最复杂的解析;在那里你会遇到诸如“五楼”和“斯台普斯展馆”之类的东西。这时数据库是一个很大的帮助。
打开App,查看更多内容
随时随地看视频慕课网APP