geolocation - 如何检查给定字符串是否是有效的地理位置?

标签 geolocation nlp gis text-mining data-science

我有一个字符串(名词短语)列表,我想从中过滤掉所有有效的地理位置。其中大多数(不需要的位置名称)是国家或城市或州名称。有什么方法可以做到这一点?是否有包含世界上所有国家、州、城市的开源查找表?

所需输出示例: TREC4:假,维也纳:Ministry:假,IBM:假,蒙特利尔:true新加坡:true

与这篇文章不同:Verify user input location string is a valid geographic location? 我有大量这样的字符串(约 70 万),因此 google geolocation API 可能不适合我。

最佳答案

您可以使用 Yahoo 提供的 geoplanet 数据,或 geonames.org 提供的 geonames 数据。 以下是包含世界 500 万个地理位置的 geoplanet TSV 文件的链接: https://developer.yahoo.com/geo/geoplanet/data/

此外,geoplanet 数据将为您提供地理位置的类型(城市、国家、郊区等)以及唯一的 ID。 https://developer.yahoo.com/geo/geoplanet/guide/concepts.html

您可以将针字符串与此数据中存在的名称进行小写、经过清理(例如删除特殊字符和其他异常)的匹配。 如果您不想进行完整文件扫描,首先处理这些数据并将其存储在快速查找数据库(如 mongodb 或 redis)中将会很有帮助。

关于geolocation - 如何检查给定字符串是否是有效的地理位置?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/34682869/

相关文章:

jquery-ui - 按年份分组的传单 slider

mysql - 本地 Geonames 数据库查询

android - Cordova 地理定位不适用于 Android

python - 最小编辑距离重建

python - word_tokenize TypeError : expected string or buffer

windows - 如何从 Python 使用 cmd.exe 打开程序?

java - 如何使用 Selenium 默认启用地理位置?

iphone - 为什么在我交换参数时 MKMetersBetweenMapPoints 会给我不同的结果?

machine-learning - 作为 SVM 向量的文本特征表示

gis - 在 GeoDataFrame 中有超过 1 个几何列是不好的做法吗?