从原始地址字符串中提取城市、州和国家/地区

Extracting City, State and Country from Raw address string

给定原始字符串输入

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

我要提取

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

我将解析数百万个地址,使用付费 API 不可行

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

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

OpenStreetMap 的地理编码解决方案 Nominatim can be downloaded and set up on your own machine。这是一个极其乏味和耗时的过程。您将需要 500GB 的可用磁盘 space,O(10s) 天来进行索引编制,但在它结束时,您将在自己的机器上拥有一个完整的地理编码器,它应该能够处理您当前的需要和更多未来的需要。
如果您走这条路,我建议您先试用他们的示例网站 api,看看质量是否可以接受。
花钱买 Google 或 Bing 地理编码器是完全值得的。

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