2012-02-23 28 views
5

什么是为geonames数据进行位置消歧的最佳方法?什么是为geonames数据进行位置消歧的最佳方法?

有一些geonames搜索的评分算法,但他们不开源,我不确定他们是非常复杂的。 (即,soma, ca返回Soma lake in Canada它甚至还没有维基百科的文章,而不是很受欢迎Soma Neirbohood in san francisco

还有一些作品我在谷歌的学者发现,但他们似乎很浅,我试探像被什么东西得分相似(log(population) + 1000*hasWikipedia(article)+ isCity100+isCapital(10))。

我在旅游文章中的域名,所以我的评分功能应该提供最有可能的旅游景点(城市,感兴趣的地方(迪斯尼乐园,大厅,大本钟))。

你知道这个领域的任何重要文章,或谷歌地图,雅虎,Bing甚至是地理名称在制作中使用的算法吗?

+0

这是一个赏金问题...'retag-ing'会带来更多的游客。请,我希望有人添加标签。 (我没有500 +代表)。 _建议我认为是好标签add_; [字符串匹配] [搜索] [算法]。 – 2012-06-27 06:19:22

+0

@OlofAdler我们可以添加最多5个标签 – Hector 2012-06-30 05:21:00

+0

不知道。感谢您的信息。 – 2012-06-30 14:05:20

回答

3

@yura,这不是你要找的东西,但我不认为任何聪明的算法将能够一致地消除像“soma ca”这样的查询是否指San Fran或Soma Lake中的Soma加拿大。问题不在于你的算法不够复杂;问题是查询“soma ca”中根本没有足够的信息。

我不知道如何表达清楚,但这里有一个信息理论的事情。这就像随机数据无法无损压缩的方式:输入中没有足够的信息来计算所需的输出。

即使人类手动解释您的查询,他们也不一定会明白“soma ca”应该表示SF中的Soma。也许对你来说,“ca”这个2字母的缩写“自然地”是指美国的一个国家而不是外国,但是这个选择并没有根本的“正确”,也不能用纯粹的逻辑推导出来。这是一个任意的,特定于领域的临时规则,就像您提到的临时log(population)启发式一样。

一些可能的“解决方案”(除了从设计,可以读取用户的头脑中传心术计算机):

  1. 向用户提供每个查询可能匹配的列表。跟踪他们选择的人,当其他用户稍后输入相同的查询时,请按照流行度对结果进行排序。或者,一旦您收集了大量关于查询结果流行性的数据,您甚至可以使用机器学习算法挖掘数据,并从中获取更好的启发式数据。
  2. 或者,在将应用程序投入生产使用之前,您可以首先编译一系列假查询,以及您认为您的算法应为每个此类查询产生的结果。然后使用你的机器学习算法。
  3. 编译一系列假查询和所需响应,或者从真实用户的选择中获取数据,并使用该数据对您手动设计和编码的排名启发式的准确性进行基准测试。继续发明新的启发式方法,直到找到能够在测试数据集上实现高精度的方法。
相关问题