2010-02-26 6 views
1

Je suis actuellement en train de développer une application Ruby on Rails digg-like pour le projet final de mon diplôme et je suis coincé dans l'algorithme de classement à 5 points.Aide avec l'algorithme de classement 5 points de Ruby on Rails

Il y a deux facteurs qui doivent être impliqués, voici une ventilation:

utilisateurs

  • Ils ont un 5 personnel des points de classement par catégorie 5 étant le meilleur et 1 étant le pire (Pensez-y comme un classement 5 étoiles), donc je pourrais parfaitement avoir IE. Un classement 2 étoiles dans la catégorie Histoire et un classement 5 étoiles dans la catégorie Technologie.

Histoires

  • Chaque histoire sera classé avec seulement 1 catégorie, lorsque les messages de l'utilisateur l'histoire, (et est ici l'un des problèmes) il sera donné un « classement de base "basé sur le classement de l'utilisateur dans cette catégorie. IE disons que j'ai un classement de 5 étoiles dans la catégorie de la technologie, puis si je poste une histoire dans ce soit donné un classement de base de 5 étoiles parce que j'ai un classement de 5 étoiles dans cette catégorie.

Au final, j'ai 3 classements. Le classement moyen des utilisateurs, le classement de l'utilisateur par catégorie et le classement de chaque histoire.

J'ai trouvé ce lien: http://www.seomoz.org/blog/reddit-stumbleupon-delicious-and-hacker-news-algorithms-exposed

Il décompose divers algorithmes de classement, l'algorithme Reddit semble adapter à mes besoins, je crois qu'il est juste une question de remplacer le X = D - variable U avec un équation appropriée qui avg les 1-5 points qui peuvent être donnés.

Qu'en pensez-vous?

Merci, Josh

Répondre

1

Il me semble de votre question que vous êtes trop préoccupés par le classement initial. La réponse publique massive (ou l'absence de réponse) surpondérera tout classement initial assez rapidement.

En outre, vous pouvez voir dans l'article lié que toutes les formules sont de simples approximations analytiques du comportement que les créateurs avaient en tête (ou, plus probablement, avaient esquissé comme un graphe sur une feuille de papier). Ainsi, ma recommandation sera - pensez ce que vous voulez arriver au classement comme le temps passe et les gens votent; faire quelques croquis de ce comportement; pensez à une fonction qui fait plus ou moins ce que vous voulez; jouez avec les constantes jusqu'à ce que vous soyez satisfait du résultat. Désolé pour être plutôt vague, mais c'est devoirs, après tout, et vous avez donné une description assez vague vous-même. Vous êtes toujours le bienvenu avec d'autres questions.