8

在按流派分类音乐时,我发现维基百科比大多数其他数据源拥有更多有趣的流派信息。

我似乎记得有一个数据库从 Wikipedia 收集了此类信息并使其更易于访问,但我今天无法搜索任何内容。

如果我要尝试检索这些数据,我有哪些选择?有什么像我描述的那样,还是我需要去屏幕抓取?

4

3 回答 3

11

您应该查看Freebase(例如,参见他们的音乐艺术家表)。如果您确实选择了 Wikipedia,那么您可能应该下载一个数据库转储

比较 Radiohead 乐队的 Freebase 和 Wikipedia 的流派列表的示例:

  • Freebase:另类摇滚、艺术摇滚、电子音乐、前卫摇滚、电子乐和实验摇滚。
  • 维基百科:另类摇滚、电子摇滚和实验摇滚。

编辑:更重要的是,我包含了一个使用 mjt 的工作示例,这是一个为 Freebase 设计的 Javascript 框架。将其复制粘贴到文件中,用浏览器打开,输入艺术家的姓名,然后查看 Freebase 为他们提供的流派。

不太重要的是,我更改了我的示例并默认为 Radiohead。=)

<html>
<head>
  <script type="text/javascript" src="http://mjtemplate.org/dist/mjt-0.6/mjt.js"></script>
</head>
<body onload="mjt.run()">
<pre mjt.script="">
var name = mjt.urlquery.name ? mjt.urlquery.name : 'Radiohead';
</pre>
<div mjt.task="q">
mjt.freebase.MqlRead([{
  type: '/music/artist',
  name: {
    value:name,
    lang:{name:{value:'English'}}
  },
  genre: [{
    name: {
      value:null,
      lang:{name:{value:'English'}}}
  }]
}])
</div>

<form method="get" action="">
<input type="text" name="name" value="$name" />
<input type="submit" value="search" />
</form>

<table mjt.for="topic in q.result">
  <tr mjt.for="(var rowi = 0; rowi &lt; topic.genre.length; rowi++)">
    <td><pre mjt.script="">var gname = topic.genre[rowi].name;</pre>$gname.value</td>
  </tr>
</table>
</body></html>

您很可能使用另一种语言,但希望您可以轻松翻译上述查询。

于 2009-01-19T04:05:33.057 回答
7

MusicBrainz ( http://musicbrainz.org/ ) 可能是你想要的,而不是维基百科。这是一个制作免费许可的高质量音乐元数据(作曲家姓名、专辑名称、曲目标题、该曲目上长号手的姓名等)的项目。他们开发了一个很棒的数据库、一个详细的数据库架构、用于使元数据准确和一致的综合风格指南、可以将元数据插入音乐数据文件中的标签的应用程序软件,以及一个您可以使用数据的 API。所有免费提供和协作编辑。

MusicBrainz 元数据的一个薄弱环节是音乐流派。这是因为这是一个非常棘手的问题:一个人的“放克”是另一个人的“流行”。

于 2009-01-19T07:41:49.047 回答
2

当我发布我的问题时,我发现了我的想法。Infochimps收集了来自 Wikipedia 的信息框,例如音乐艺术家的信息框。不过,这并不是我真正想要的,因为它只能作为下载提供。

在我寻找的过程中,我发现了如何使用未呈现的 wiki 标记访问XML 格式的文章。显然它在维基百科服务器上更容易,但我不确定它是否更容易解析。

于 2009-01-20T00:26:35.213 回答