繁体   English   中英

如何使用Freebase MQL查找相关的相关歌曲或歌手?

[英]How to find related related songs or artists using Freebase MQL?

我有任何Freebase中间版本,例如: /m/0mgcr ,即The Offspring。

使用MQL查找相关歌手的最佳方法是什么?

或者,如果我有一首歌,例如: /m/0l_f7f ,这是The Offspring的Original Prankster

使用MQL查找相关歌曲的最佳方法是什么?

因此,给定一个音乐艺术家,修改后的问题是找到所有其他音乐艺术家,它们共享分配给第一位艺术家的所有相同流派。

MQL没有任何可在查询树的各个部分之间工作的运算符,因此无法在单个查询中完成,但是鉴于您很可能是通过编程语言来执行此操作的,因此只需两步即可完成脚步。

首先,我们将获取主题艺术​​家的所有流派,并按使用此查询的方式包含他们所包含的艺术家的数量(尽管并非严格要求最后一部分):

[{
  "id": "/m/0mgcr",
  "name": null,
  "/music/artist/genre": [{
    "name": null,
    "id": null,
    "artists": {
      "return": "count"
    },
    "sort": "artists.count"
  }]
}]

然后,使用艺术家数量最少的流派来实现最大的选择性,我们将添加其他流派以使其更具针对性。 这是查询的一个版本,其中包含在三种最特定的流派上匹配的艺术家(基本流派和另外两种):

[{
  "id": "/m/0mgcr",
  "name": null,
  "/music/artist/genre": [{
    "name": null,
    "id": null,
    "artists": {
      "return": "count"
    },
    "sort": "artists.count",
    "limit": 1,
    "a:artists": [{
      "name": null,
      "id": null,
      "a:genre": {
        "id": "/en/ska_punk"
      },
      "b:genre": {
        "id": "/en/melodic_hardcore"
      }
    }]
  }]
}]

这给了我们:零号权威,米伦科林,迈克尔·约翰·伯克特,NOFX,比格维格,韦尔加·德·汉布雷,弗雷高洛,人为破坏者

关于此查询的注意事项是该片段:

    "sort": "artists.count",
    "limit": 1,

将我们的初始流派选择限制为艺术家最少的单一流派(即Skate Punk),而前缀表示法为:

      "a:genre": {"id": "/en/ska_punk"},
      "b:genre": {"id": "/en/melodic_hardcore"}

是为了避免JSON限制,即没有多个具有相同名称的键。 前缀将被忽略,只需要唯一即可(这与查询其他位置的a:artists相同。

因此,在完成了整个小练习之后,我将最后说一遍,也许有更好的方法可以做到这一点。 代替绝对匹配,您可以使用评分功能来获得更好的结果,评分功能针对最特定的类型或某些其他指标查看重叠百分比。 诸如普通乐队成员,合作,同期录音历史记录等之类的内容也可以计入您的得分。 当然,这超出了原始MQL的功能,您可能希望将音乐域(或某些子集)的Freebase数据加载到图形数据库中以运行这些评分算法。

实际上,last.fm和Google都认为更好的列表将包括Sum 41,blink-182,Bad Religion,Green Day等乐队。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM