【问题标题】:Freebase API - listing a city's tourist attractions by relevanceFreebase API - 按相关性列出城市的旅游景点
【发布时间】:2014-03-05 20:41:22
【问题描述】:

我正在尝试使用 Freebase 按相关性列出城市的旅游景点。

使用 Topic API,使用其 MID 检索某个城市的结果很简单(例如,伦敦的“/m/04jpl”)

https://www.googleapis.com/freebase/v1/topic/m/04jpl/?&filter=/travel/travel_destination/tourist_attractions

但是,这提供了有限的 10 个结果。响应以"count": 87.0" 结尾。如何获得全部 87?可以单击伦敦 Freebase 页面上的“总计 87 个值”链接。实际上,我想在这里做同样的事情。

我意识到我可以使用 MQL,但我希望根据相关性而不是时​​间戳对结果进行排名。使用 Search API,可以按免费库、实体或模式进行排名,所以我宁愿使用它。

首先,我查看了搜索 API 的搜索输出架构。但是,即使输出“全部”也不会产生旅游景点结果。将元模式与 Search API DID 一起使用。我使用“part_of”来选择伦敦。但是,它仅适用于某些位置:

https://www.googleapis.com/freebase/v1/search?limit=50&filter=(all%20type:/travel/tourist_attraction%20part_of:/m/04jpl)&indent=true

我真正想做的是让它在一个相对未知的位置工作,比如“Loughborough”(MID /m/01z21p)。如您所见,将 /m/04jpl 替换为 /m/01z21p 不会产生任何结果:

https://www.googleapis.com/freebase/v1/search?limit=50&filter=(all%20type:/travel/tourist_attraction%20part_of:/m/01z21p)&indent=true

查看“拉夫堡”,我们看到它的旅游景点“Loughborough Town Hall”有一个“拉夫堡”的“/travel/tourist_attraction/near_travel_destination”。我将如何组成这个过滤器?

我想要类似以下的东西(确实有效):

https://www.googleapis.com/freebase/v1/search?limit=50&filter=(all%20type:/travel/tourist_attraction)&filter=(/travel/tourist_attraction/near_travel_destination:/m/01z21p )&indent=true

谢谢!

注意:要在浏览器中输入链接,您需要删除 https:// 和 www 之间的空格。我会这样做,但我还没有在此处发布超过 2 个链接所需的权限。

【问题讨论】:

    标签: api search location coordinates freebase


    【解决方案1】:

    我使用 2 个 Freebase API 调用解决了这个问题。

    1) 获取特定 MID 的所有旅游景点列表的 MQL 查询。这些结果没有以任何有用的方式排名。我还返回了结果编号,以便以后处理更容易

    https://www.googleapis.com/freebase/v1/mqlread?query={"mid":"/m/04jpl","/travel/travel_destination/tourist_attractions":[{"mid":null}],"resultnumber:/travel/travel_destination/tourist_attractions":[{"return":"count"}]}
    

    然后使用返回的 MID 列表创建新查询(使用 for 循环)。您必须输入从上述查询返回的所有 MID,以便它们都可以一起排名。

    2) https://www.googleapis.com/freebase/v1/search?limit=10&filter=(any%20mid:/m/0gsxw%20mid:/m/01d_0p%20mid:/m/07gyc)&scoring=entity

    最好选择只返回 MID 的返回格式,以确保加载时间不会很长。

    然后您就有了 MID 的排名列表!您需要一个最终查询来返回您想要的任何详细信息。

    我希望这被证明是有帮助的。

    【讨论】:

      猜你喜欢
      • 2012-04-16
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2014-01-20
      • 2018-05-28
      • 1970-01-01
      • 2012-08-05
      • 1970-01-01
      相关资源
      最近更新 更多