我有一个字符串列表(名词短语),我想从中过滤掉所有有效的地理位置。其中大多数(不需要的位置名称)是国家或城市或州名称。有什么方法可以做到这一点?是否有任何可用的包含世界所有国家、州、城市的开源查找表?
所需输出示例: TREC4:假, 维也纳:真, 部:假, IBM:假, 蒙特利尔:真, 新加坡:真
与这篇文章不同:验证用户输入的位置字符串是有效的地理位置吗? 我有大量这样的字符串(约 70 万),所以谷歌地理定位 API可能不是我的选择。
我有一个字符串列表(名词短语),我想从中过滤掉所有有效的地理位置。其中大多数(不需要的位置名称)是国家或城市或州名称。有什么方法可以做到这一点?是否有任何可用的包含世界所有国家、州、城市的开源查找表?
所需输出示例: TREC4:假, 维也纳:真, 部:假, IBM:假, 蒙特利尔:真, 新加坡:真
与这篇文章不同:验证用户输入的位置字符串是有效的地理位置吗? 我有大量这样的字符串(约 70 万),所以谷歌地理定位 API可能不是我的选择。
您可以使用 Yahoo 的 geoplanet 数据,或 geonames.org 的 geonames 数据。这是包含世界 500 万个地理位置的 geoplanet TSV 文件的链接: https ://developer.yahoo.com/geo/geoplanet/data/
此外,地球行星数据将为您提供地理位置的类型(城市、国家、郊区等)以及唯一的 ID。 https://developer.yahoo.com/geo/geoplanet/guide/concepts.html
您可以将针字符串与此数据中存在的名称进行小写、净化(例如删除特殊字符和其他异常)匹配。如果您不想要完整文件扫描,首先处理这些数据以将其存储在 mongodb 或 redis 等快速查找数据库中将是有益的。