Версия для печати темы
Нажмите сюда для просмотра этой темы в оригинальном формате
Форум программистов > Алгоритмы > Получить рейтинг определенного элемента


Автор: numerovan 17.1.2014, 17:52
Здравствуйте, хочу спросить следующее: как вычислить рейтинг какого нибудь элемента, то ли это будет пользователь на сайте, или фотоальбом, или файл какой нибудь ... ?
Я пока решил эту ситуацию так ...
1. на элемент выделил 4 составляющие - комменты, просмотры, лайки, скачивания.
2. узнаю максимальные значения этих 4-х составляющих на всем сайте, получаю к примеру то что на какой-то файл есть 55 комментов, 1000 просмотров (на др. файл), 100 лайков и 10 скачиваний - это разные файлы.
3. каждой составляющей присвоил степерь важности, 
одно скачивание - 5 баллов
один лайк - 4 балла
один коммент - 3 балла
один просмотр - 1 балл
4. узнаю 4 составляющие для определенного файла, допустим 5-5-5-5
5. перемнажаю значения максимальные, текущие ... допустим из вышепоказанного примера 
максимальные:
скачивание - 10 * 5 балла
лайки - 100 * 4 балла
комменты - 55 * 3 балла
просмотры - 1000 * 1 балл

текущие:
 скачивание - 5 * 5 балла
лайки - 5 * 4 балла
комменты - 5 * 3 балла
просмотры - 5 * 1 балл

в итоге допустим получил цифры 1000 и 100, далее путем процентного соотношения, понимаю что 100 это 10% от 1000, следовательно 1 оценка из 5 ... ну как в школе ... тем самым присваиваю файлу 1 звездочку.


Что скажете по этому делу ?

Автор: imageman 30.1.2014, 19:47
посмотрите тут http://habrahabr.ru/company/darudar/blog/143188/

может пригодится. 

PS. На хабре по поводу этой статьи есть еще несколько дополнений

Автор: numerovan 30.1.2014, 21:04
посмотрел там ... что-то в голову эти формулы не лезут ) ...

Автор: numerovan 2.1.2015, 20:18
Мой вариант:

товар, в моем случае mp3-файл, характеризуется по - скачиваниям, лайкам, комментариям и просмотрам.
В начале установил приоретет для каждого показателя:
1. Скачивание, имеет 4
2. Лайк, имеет 3
3. Комментарий к данному треку, имеет 2
4. просмотр, имеет 1, или можно ни на что не перемножать.

Код

$total = $row['Download']*4 + $row['Like']*3 + $row['Comment']*2 + $row['See']/1000;

просмотры разделил на 1000, интуиктивно понимаю что лучше разделить его на 1000, без веских обоснований.

далее перебираю каждый товар (трек) и вычисляю для него балл
Код

$cur        = $res['Download']*4 + $res['Like']*3 + $res['Comment']*2 + $res['See']/1000;
        $percent    = ($cur*100)/$total;
        $ball        = round((5 * $percent)/100);

отсюдова получаю текущий бал исходя из максимально возможного и действующего на данный момент времени.
Перерыл на Хабре разные статьи http://habrahabr.ru/company/darudar/blog/143188/, http://habrahabr.ru/post/150683/, http://habrahabr.ru/post/150808/ ... мой вариант для меня ближе.

Powered by Invision Power Board (http://www.invisionboard.com)
© Invision Power Services (http://www.invisionpower.com)