На данный момент этот вопрос больше логичен, чем программирование ... как только я пойму, какой алгоритм (ы) мне нужно использовать, я подумаю, как его реализовать.
У меня есть список элементов в базе данных, которые пользователи должны проголосовать за или против, чтобы определить, верны они или нет. Цель состоит в том, чтобы указать% для каждого элемента, чтобы показать, насколько надежна информация об элементе.
Необходимо учитывать несколько критериев.
- Голоса не абсолютны - вес голоса каждого пользователя зависит от его кармы.
- Карма пользователя должна рассчитываться на основе их голосов - например, если пользователь отправляет элемент, а другие пользователи голосуют, чтобы подтвердить его правильность, карма этого пользователя увеличится. Карма также может быть дана, если пользователь голосует за элемент в том же направлении, что и другие пользователи с высокой кармой. Если они голосуют в противоположном направлении по сравнению с другими пользователями с высокой кармой, их голос будет считаться неправильным, и хотя он снизит оценку предмета, он также снизит их уровень кармы, что сделает их менее влиятельными в будущем голосовании.
- Пользователи могут отдавать как отрицательные, так и положительные голоса.
- При подсчете баллов по элементам следует учитывать возраст элемента (со временем оценка будет уменьшаться, поскольку элемент может стать менее надежным).
Есть ли у кого-нибудь рекомендации по лучшему алгоритму (-ам) для этого или какие-либо советы о том, как реализовать это на языке программирования (например, PHP)?