[英]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.