我有一个字符串列表(名词短语),我想从中筛选出所有有效的地理位置。其中大多数(不需要的位置名称)是国家或城市或州名称。怎么办呢?是否有可用的开源查找表,其中包含世界上所有国家,州/城市?
示例所需输出: TREC4 :false, Vienna : true ,部:false, IBM :false ,蒙特利尔: true ,新加坡: true
与此帖不同:Verify user input location string is a valid geographic location? 我有很多像这样的字符串(约70万),所以谷歌地理位置API 可能不适合我。
答案 0 :(得分:3)
您可以使用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)中将是有益的。
答案 1 :(得分:1)
我可以建议以下三个选项:
a)使用Alchemy API:http://www.alchemyapi.com/ 如果您尝试他们的演示,像法国,檀香山这样的地方会将实体类型指定为国家或城市
b)使用TAGME:http://tagme.di.unipi.it/ TAGME将给定文本中的每个实体连接到相应的维基百科页面。抓取维基百科页面并检查信息框和过滤器
c)使用Wikipedia Miner:我无法找到相关链接。但是,这也像TAGME一样。
建议您尝试所有三个并为每个实例进行多数表决。