簡體   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