【问题标题】:Extract street address from a string从字符串中提取街道地址
【发布时间】:2014-03-25 10:08:50
【问题描述】:

有没有办法使用 python 从字符串(比如电子邮件)中提取街道地址?地址不是固定格式。它可以不带州、邮政编码、城市,但如果缺少这些参数,我可以猜测并提供它们。此外,地址可以由两条街道的拐角表示。提取地址后,我想将其发送到 Google Map 或其他类似服务以获取真实的格式化地址。

它不需要 100% 准确,但是有没有图书馆可以做到这一点?如果不存在,我应该如何开始?

【问题讨论】:

  • 你能添加一些示例字符串以及你想要得到什么输出吗?

标签: python string text-extraction


【解决方案1】:

正如您自己所说,地址可以有多种格式。如果考虑到其他国家的地址,现实情况实际上会更糟。所以不,没有一个很好的方法来解析和清理这些地址。您希望包含的可能格式的区域越大,它就越复杂。

如果您仍然想将地址发送到 Google 地图,那么只需发送您的原始格式即可。谷歌有足够的数据来提取更有用的部分并充分利用它。因为无论如何您都要把它发送给 Google,所以您可以一开始就这样做。

【讨论】:

  • 但是我不至少在发送谷歌之前提取一些候选人吗?因为字符串可能很长。
【解决方案2】:
a = re.split(r"[\s\-:\\/_,]", "string address here !")
a1 = ""
for i in a:
    if re.findall(r"[^\W]",i):
        a1 += i + " " 
print(a1)

尝试将此发送给谷歌。

【讨论】:

    【解决方案3】:

    地址通常遵循一种格式,可以使用正则表达式加以利用。这很棘手,所以幸运的是有一个很棒的库可以让你更轻松。

    pip install commonregex
    

    然后

    from commonregex import CommonRegex
    parsed_text = CommonRegex("123 Your Street")
    print(parsed_text.street_addresses)
    

    【讨论】:

      猜你喜欢
      • 2018-07-20
      • 1970-01-01
      • 1970-01-01
      • 2018-08-10
      • 1970-01-01
      • 2012-12-14
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多