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

Geolocation 如何检查给定字符串是否为有效的地理位置?,geolocation,nlp,gis,text-mining,data-science,Geolocation,Nlp,Gis,Text Mining,Data Science,我有一个字符串(名词短语)列表,我想从中筛选出所有有效的地理位置。其中大多数(不需要的位置名称)是国家或城市或州名称。这样做的方法是什么?是否有包含世界上所有国家、州、城市的开源查找表 所需输出示例: TREC4:false,维也纳:true,部:false,IBM:false,蒙特利尔:true,新加坡:true 与此帖子不同: 我有大量这样的字符串(~70万),所以谷歌地理定位API可能不是我的选择。你可以使用Yahoo提供的geoplanet数据,或者geonames.org提供的geon

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

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

与此帖子不同:
我有大量这样的字符串(~70万),所以谷歌地理定位API可能不是我的选择。

你可以使用Yahoo提供的geoplanet数据,或者geonames.org提供的geonames数据。 以下是指向geoplanet TSV文件的链接,其中包含500万个世界地理位置:

此外,geoplanet数据将为您提供地理位置的类型(城市、国家、郊区等),以及唯一的id。

您可以将针字符串与此数据中的名称进行小写、净化(例如,删除特殊字符和其他异常)匹配。
如果您不希望进行完整的文件扫描,则首先处理此数据,将其存储在mongodb或redis等快速查找数据库中将非常有益。

我可以建议以下三种选择:

a) 使用炼金术API: 如果您尝试他们的演示,法国、檀香山等地会将实体类型设置为国家或城市

b) 使用TAGME: TAGME将给定文本中的每个实体连接到相应的wikipedia页面。抓取wikipedia页面并选中信息框和过滤器

c) 使用Wikipedia Miner:我无法找到相关链接。然而,这也像TAGME一样起作用


建议您尝试这三种方法,并对每种情况进行多数投票

如何:en-ner-location.bin或类似于我使用NLTK ner识别的东西。stanford ner tagger看起来不错,我会尝试一下。看起来Yahoo已经停止提供数据集供下载了。他们提供了一个API:\。。。。无论如何,我正在研究它。该数据库可能可以从其他来源下载。您也可以尝试使用geonames或openstreetmap数据。