【问题标题】:Entity resolution for venues and other geo locations场地和其他地理位置的实体解析
【发布时间】:2011-01-17 04:28:31
【问题描述】:
假设我想构建一个签到聚合器来计算跨平台的访问次数,这样我就可以知道给定地点有多少人在 Foursquare、Gowalla、BrightKite 等平台上签到。是否有一个好的图书馆或我可以使用开箱即用的工具集将每个服务中的场地条目与我自己的唯一地点标识符相关联?
我基本上想要一个函数,它可以从一对(地名、地址、纬度/经度)元组映射到 [0,1) 置信度,即它们指的是相同的真实世界位置。
肯定有人已经这样做了,但我的 google-fu 很弱。
【问题讨论】:
标签:
geolocation
geocoding
geotagging
foursquare
entityresolver
【解决方案1】:
是的,您可以使用geocoder.net 提交这两个地址(假设您是.Net 开发人员,您没有说)。它为地址验证和地理编码提供了一个通用接口,因此您可以合理地确定一个地址等于另一个地址。
如果你不能让它们标准化和匹配,你可以比较它们的距离,如果它们之间的距离低于某个阈值,则假设它们是同一个地方。
【解决方案2】:
我对已经有这样的工具可用感到悲观。
根据实体解析文献匹配对的一个很好的解决方案是
- 获取地名,定义并使用良好的距离函数(例如编辑距离),
- 获取地址、标准化(例如,使用提到的 geocoder.net 工具),并定义它们之间的距离,
- 获取坐标并获取距离(这很简单:有很多用于地理距离计算的库和工具,这似乎是一个很好的指标),
- 将距离转换为概率(“如果我们假设这些是相同的地方,那么这种距离的概率是多少”)(不是直截了当),
- 并结合概率(也不简单)。
那么,类似闭包的算法(根据高于给定概率阈值的合并对关闭集合)也可以帮助找到所有匹配项(例如,当给定场地的不同名称累积时)。
不过,它不会是一个糟糕的工具或服务。