Estoy trabajando en un sitio web que es bastante similar a Yahoo! Respuestas: un usuario puede publicar la pregunta, esperar respuestas de otras personas y elegir la mejor. Con el fin de identificar a los mejores usuarios, existe un sistema de reputación que tiene estas características:¿Buenos sistemas de clasificación/reputación?
- Uno puede votar con votos a favor o en contra del usuario;
- Uno puede votar o rechazar una respuesta;
- Hay una puntuación de "experiencia" para cada tema, que aumenta para cada pregunta respondida.
Ahora, si es posible, me gustaría encontrar un algoritmo para combinar todos estos factores y dar un puntaje de "confiabilidad" para cada respuesta.
Hasta ahora, he intentado hacerlo solo usando productos como Coefficient * (UpVotes/TotalVotes)
, pero era demasiado lineal. También probé de otras maneras, pero no funcionaron (algoritmo bayesiano). Por el momento, en la versión Alpha, estoy usando Trustability = sqrt(GoodAnswers)
.
Notas: el algoritmo debe ser individual (no es necesario escanear toda la base de datos para obtener datos como promedios, sumas, etc.) y rápido, si es posible. Voy a implementar esto en PHP-MySQL.
Interesante, dijiste similitud con Yahoo, pregunté por SO :) – mishadoff
También es posible que quieras pensar en la confiabilidad de los usuarios para votar/rechazar votos. Los usuarios que no son de confianza deben contar menos para la confiabilidad de los usuarios que los usuarios confiables. –
Puede asignarle a cada usuario puntos por voto positivo, al igual que en SO. Trabaja para que la reputación sea un valor numérico. –