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



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

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

与此帖子不同:验证用户输入的位置字符串是否为有效的地理位置?我有很多这样的字符串(约70万),所以谷歌地理定位API可能不是我的选择。

您可以使用雅虎的地球行星数据,也可以使用geonames.org的地名数据。以下是包含世界500万个地理位置的地球行星TSV文件的链接:https://developer.yahoo.com/geo/geoplanet/data/

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

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

我可以建议以下三个选项:

a) 使用Alchemy API:http://www.alchemyapi.com/如果你尝试他们的演示,像法国、火奴鲁鲁这样的地方会给出国家或城市的实体类型

b) 使用TAGME:http://tagme.di.unipi.it/TAGME将给定文本中的每个实体连接到相应的维基百科页面。抓取维基百科页面,检查信息框并过滤

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

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

最新更新