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