¿Cómo implementar un sitio web con un sistema de recomendación similar a stackoverflow/digg/reddit? Es decir, los usuarios envían contenido y el sitio web necesita calcular algún tipo de "calor" de acuerdo con la popularidad del artículo. El flujo es el siguiente:¿Cómo implementar un algoritmo tipo Digg?
- Los usuarios envían contenido
- Otros usuarios ver y votar sobre el contenido (a suponer el 90% de los usuarios solo vistas de contenido y el 10% de los votos activamente arriba o hacia abajo en el contenido)
- El nuevo contenido se envía continuamente
¿Cómo implemento un algoritmo que calcule el "picor" de un elemento enviado, preferiblemente en tiempo real? ¿Hay mejores prácticas o patrones de diseño?
quiero suponer que el algoritmo toma en consideración lo siguiente:
- Cuando se presentó un artículo
- Cuando fue echado cada voto
- Cuando se ve el elemento
P. ej un ítem que obtiene un chorrito constante de votos se mantendrá un tanto "caliente" constantemente mientras que un ítem que recibe un estallido de votos cuando se presente por primera vez saltará a la cima de la lista de "picor" pero luego caerá cuando los votos se detengan entrando.
(Estoy usando un PHP MySQL + pero estoy interesado en patrones generales de diseño).
pregunta relacionada, que documenta la fórmula que usamos: http://meta.stackexchange.com/questions/11602/what-formula-should-be-used-to-determine-hot-questions –