2

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

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

与这篇文章不同:验证用户输入的位置字符串是有效的地理位置吗? 我有大量这样的字符串(约 70 万),所以谷歌地理定位 API可能不是我的选择。

4

2 回答 2

3

您可以使用 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 等快速查找数据库中将是有益的。

于 2016-01-09T12:32:55.847 回答
1

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

a) 使用 Alchemy API:http ://www.alchemyapi.com/ 如果您尝试他们的演示,法国、檀香山等地会将实体类型指定为 Country 或 City

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

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

建议您尝试所有三个并为每个实例进行多数投票。

于 2016-01-09T17:07:54.910 回答