2009-08-21 5 views
2

Je travaille actuellement sur des systèmes de recommandation en particulier pour les fichiers audio. Mais je suis un débutant à ce sujet.J'essaie de concevoir la base de données d'abord avec mysql mais je ne peux pas décider comment le faire.Il est fondamentalement un système alors recherchez la musique et le système leur recommandent la musique semblable à ils ont aimé.Conception de la base de données du moteur de recommandation?

  1. quelle base de données dois-je utiliser? (Mysql vient mon esprit comme une première estimation)
  2. c'est un projet web et aussi ensuite avec les technologies de side.Which mobiles dois-je utiliser? (Php, android plateforme ...)
  3. Quels sont les pièges de ce projet . Comment concevoir la base de données pour le système comme ça?

Répondre

4

Toute base de données relationnelle devrait être bon pour stocker les données brutes comme des listes de chansons, la liste des utilisateurs, les préférences des chansons des utilisateurs ..

Je pense que vous trouverez qu'une base de données relationnelle (et SQL) sont pas très bien pour stocker les différentes structures de données que votre recommandeur va construire. Votre moteur de recommandation créera probablement des données qui n'ont pas vraiment besoin d'être dans des tables et le manipuler pour le stockage dans une base de données relationnelle peut simplement être gaspillé. Soyez conscient de ce que vous faites et ne perdez pas de temps à mettre des choses dans une base de données SQL si cela vous semble incorrect. Peut-être envisager d'utiliser une base de données orientée document comme MongoDB.

Le recommandeur que j'ai récemment écrit est en fait un processus de serveur Java qui lit dans les données brutes de MySQL, tout son travail en mémoire, et fournit des données de recommandation à mon application via une API HTTP. Je n'ai même pas pris la peine de stocker les données de recommandation de façon permanente car elles peuvent être régénérées.

3

Eh bien, cela est une question vague et demi, mais je ferai de mon mieux pour répondre:

  1. MySQL est une base de données solide, et est donc PostgreSQL. Les deux sont gratuits et ouverts. MySQL est plus largement supporté et un peu plus facile à utiliser, mais Postgres a quelques caractéristiques et fonctionnalités très intéressantes qui méritent d'être prises en considération. WikiVS a une bonne comparaison des deux.
  2. Les smartphones sont de mieux en mieux équipés de navigateurs. Utilisez PHP ou ASP.NET (tout ce qui vous convient), puis créez un site mobile qui soit plus adapté aux petites résolutions.
  3. Il y en a beaucoup. Tout d'abord, à quel point votre algorithme de recommandation est-il bon? Deuxièmement, le stockage de fichiers audio peut rapidement prendre de l'espace de stockage. Quel est votre plan pour la mise à l'échelle? Troisièmement, à quel point connaissez-vous la conception de bases de données? Pouvez-vous concevoir une grande base de données lourde et l'indexer correctement? Sinon, vous devez commencer à lire tout ce que vous pouvez sur les indices et la conception de la base de données. Quatrièmement, c'est un projet logiciel, et ceux-ci ont toujours des pièges. Le mieux que vous pouvez faire est de poster ici quand des problèmes surviennent et nous pouvons toujours voir ce que les bonnes personnes de StackOverflow peuvent faire pour vous aider.
+0

Je ne stockerai pas de fichiers audio réels dans la base de données, au lieu de stocker des références de fichiers audio. –

+0

@Burak: Ils utilisent toujours la même quantité de stockage. – Eric

4

Allez lire "Programming Collective Intelligence". Ils ont un certain nombre d'algorithmes fins pour les recommandations dans le chapitre 2, "Faire des recommandations".

+0

J'ai ce livre, je m'attends à ce que ce soit un livre théorique mais ce n'est pas comme ça, l'auteur utilise de très bons exemples –