2

我目前正在研究推荐系统,尤其是音频文件。但我是这个主题的初学者。我正在尝试先用 mysql 设计数据库,但我无法决定如何去做。它基本上是一个用户创建配置文件然后搜索的系统为音乐和系统推荐他们喜欢的音乐。

  1. 我应该使用哪个数据库?(我首先想到的是 Mysql)
  2. 这是一个网络项目,然后是移动端。我应该使用哪些技术?(php,android平台......)
  3. 这个项目有什么陷阱。
  4. 如何为这样的系统设计数据库?
4

3 回答 3

4

去阅读“编程集体智能”。他们在第 2 章“提出建议”中提供了许多用于推荐的精细算法。

于 2009-08-21T12:52:02.760 回答
4

任何关系数据库都应该适合存储原始数据,例如歌曲列表、用户列表、用户歌曲偏好。

我认为您会发现关系数据库(和 SQL)对于存储您的推荐人将要构建的各种数据结构并不是那么好。您的推荐引擎可能会创建实际上不需要在表中的数据,并对其进行操作以存储在关系数据库中可能只是浪费工作。

请注意您在做什么,如果感觉不对,请不要花时间将东西放入 SQL 数据库中。也许考虑使用像MongoDB这样的面向文档的数据库。

我最近编写的推荐器实际上是一个 Java 服务器进程,它从 MySQL 中读取原始数据,在内存中完成所有工作,并通过 HTTP API 向我的应用程序提供推荐数据。我什至没有费心永久存储推荐数据,因为它可以重新生成。

于 2009-08-21T17:51:11.683 回答
3

好吧,这是一个模糊的问题半,但我会尽力回答:

  1. MySQL 是一个可靠的数据库,PostgreSQL也是如此。两者都是免费和开源的。MySQL 得到更广泛的支持并且更易于使用,但 Postgres 具有一些非常酷的特性和功能,值得一试。WikiVS对两者进行了很好的比较。
  2. 智能手机拥有越来越好的浏览器。使用 PHP 或 ASP.NET(无论您喜欢什么),然后构建一个在较小分辨率下看起来更好的移动网站。
  3. 有很多。首先,你的推荐算法有多好?其次,存储音频文件会很快占用存储空间。你的扩展计划是什么?第三,你对数据库设计了解多少?你能设计一个庞大的、庞大的数据库并正确地索引它吗?如果没有,您需要开始阅读有关索引和数据库设计的所有内容。第四,它是一个软件项目,那些总是有陷阱的。您能做的最好的就是在出现问题时在此处发布,我们总能看到 StackOverflow 的优秀人员可以提供哪些帮助。
于 2009-08-21T12:52:01.107 回答