【问题标题】:Extracting City, State and Country from Raw address string [closed]从原始地址字符串中提取城市、州和国家 [关闭]
【发布时间】:2015-09-11 14:16:04
【问题描述】:

给定一个原始字符串输入

1600 Divisadero St
San Francisco, CA 94115
b/t Post St & Sutter St 
Lower Pacific Heights

我要提取

城市:San Francisco
状态:CaliforniaCA
国家:USA

我将解析数百万个地址并且使用付费 API 是不可行的

我计划使用命名实体识别器,但我无法找到大量训练数据来理想地覆盖任何位置

有没有我可以使用的开源项目?

【问题讨论】:

  • 您的输入不包含国家,但您的输出包含,这是一个错误吗?还是您希望程序根据城市和州的输入来查找国家/地区
  • 您需要提供更多示例。所有地址都是不同格式的吗,或者你总是可以吗?提取第二行得到城市和州?
  • 另见here
  • @Mauris 地址格式不同,关于您的链接,我喜欢世界上所有城市和国家的地名数据库。我想如果你能从地址字符串中提取城市名称,你现在可以查明州和国家
  • this

标签: python nlp geocoding text-processing


【解决方案1】:

OpenStreetMap 的地理编码解决方案Nominatim 可以下载和set up on your own machine。这是一个极其繁琐且耗时的过程。您将需要 500GB 的可用磁盘空间,O(10s) 天来进行索引,但最后,您将在自己的机器上拥有一个完整的地理编码器,它应该能够满足您当前的需求等等未来的。
如果你走这条路,我建议首先尝试他们的示例 web api,看看质量是否可以接受。
完全值得考虑花钱购买 Google 或 Bing 地理编码器。

【讨论】:

  • 迄今为止最好的建议:)
  • 你知道rome2rio是怎么做的吗?
  • @wolfgang 我自己从来没有这样做过,所以不知道这是否是个好主意。
  • @alvas 直到现在才知道这个网站.. 但看起来他们使用 OSM 和大量自定义魔法 - blog.rome2rio.com/2015/03/02/… .. 如果地理编码是他们的核心部分业务,在这方面投入这么多精力是有意义的
【解决方案2】:

@adi92 的答案是这里的最佳选择,但需要一台非常强大的机器,具有许多内核和巨大的 RAM 来索引整个数据库。对于那些需要较少计算的人,www.geonames.org 非常全面,仅适用于城市、州、国家/地区。

【讨论】:

    猜你喜欢
    • 2011-01-21
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2013-11-13
    • 2017-09-02
    • 1970-01-01
    • 2015-04-24
    • 2017-10-20
    相关资源
    最近更新 更多