R=P(User1)*K(User1)/Tp(User1)+P(User2)*K(User2)/Tp(User2)+ … +P(UserN)*K(UserN)/Tp(UserN), где
R - рейтинг,
Р - общее число постов текущего юзера,
K - вес юзера. Можно задать К поумолчанию =1, и только для отдельных юзеров сделать табличку. К может быть, как больше 1, так и меньше.
Tp - время поста в днях + 1, в двухднях +1, в неделях +1. Надо пробовать.
Если рейтинг юзера брать по логарифмической шкале и темы оценивать не как средне-взвешенное, а как средне-квадратичное взвешенное, то… можно уже дисер писать. 😛
На самом деле к вопросу лучше с другой стороны подходить. К примеру, как на anekdot.ru верхняя десятка формируется. Вот это будет репрезентативно!
Но для этого скрипт надо подправлять. 😕
На самом деле к вопросу лучше с другой стороны подходить. К примеру, как на anekdot.ru верхняя десятка формируется. Вот это будет репрезентативно!
Не получится. Там каждый анекдот оценивается и анекдоты друг с другом не связаны. Если оценивать тему целиком, то все равно есть вопросы. Например, рейтинг темы может меняться по мере ее развития. Как в положительную, так и в отрицательную сторону. Если люди уже как-то голосовали за нее в начале, то что им делать потом? И еще, чем бредовее тема, тем почему-то она популярнее. Здравомыслящая часть аудитории будет оценивать такую тему ниже плинтуса, но к популярности-то такая оценка отношения не имеет. 😃
Так, трындеть хватит, а? Формулы гоните.
Я пока склоняюсь оценивать по средней скорости поступления сообщений за последнюю неделю. То есть:
Количество сообщений/[дата первого сообщения - дата последнего]
(*) Сообщения отсекаются где-то по последним 2 неделям.
Возможно, есть смысл какие-то локальные максимумы считать за 3 дня. Надо подумать.
Зато никакой привязки к “умности” пользователей, ибо это мне это почему-то не нравится. Есть вероятность что будет слишком усредненная “авторитарная попса” вылезать.
для всех сообщений в теме за последний месяц:
сумма{([дата i-го сообщения] - [дата i+1-го сообщения]) < 3 дней } / кол-во {([дата i-го сообщения] - [дата i+1-го сообщения]) < 3 дней }
чтобы “авторитарная попса” не лезла, можно засчитывать первое сообщение пользователя с весом 1, второе сообщение от этого же пользователя в этой же теме с весом 0.5, третье - 0.25 и так далее. Таким образом, тема, где участвуют два собеседника, будет проигрывать теме, где участвуют 3 и больше, при прочих равных.
так как мы берем сравнительно небольшой интервал времени, то в этом интервале можно взять от каждого участника по одному сообщению, все последующие сообщения этого участника в теме отбрасывать. получается: “чем больше разных участников высказалось за ограниченный промежуток времени, тем тема популярнее”.
О, дельная мысль, кстати. Насчет количества авторов.
Тоха прав, а то по формуле
Количество сообщений/[дата первого сообщения - дата последнего]
Самыми “интересными и актуальными” темами вылезут
Полетушки в Люберцах и
магазины нашинские. доколе ещё?
{"assets_hash":"a8b26fa7f6e768b07a72c8c9aadb9422","page_data":{"users":{"39c21abc3df9550077797d18":{"_id":"39c21abc3df9550077797d18","hid":349,"name":"Vitaly","nick":"Vitaly","avatar_id":null,"css":""},"3b6f97673df9550077797d00":{"_id":"3b6f97673df9550077797d00","hid":355,"name":"vovic","nick":"vovic","avatar_id":null,"css":""},"3d4a30483df95500777977e0":{"_id":"3d4a30483df95500777977e0","hid":624,"name":"toxa","nick":"toxa","avatar_id":null,"css":""},"3e5f98243df95500777969e4":{"_id":"3e5f98243df95500777969e4","hid":1390,"name":"SAN","nick":"SAN","avatar_id":null,"css":""},"403268573df9550077795157":{"_id":"403268573df9550077795157","hid":2904,"name":"Taboo","nick":"Taboo","avatar_id":null,"css":""}},"settings":{"can_see_ip":false,"can_report_abuse":false,"can_see_hellbanned":false,"forum_can_view":true,"forum_can_reply":false,"forum_edit_max_time":30,"forum_can_close_topic":false,"forum_show_ignored":false,"forum_mod_can_delete_topics":false,"forum_mod_can_hard_delete_topics":false,"forum_mod_can_see_hard_deleted_topics":false,"forum_mod_can_edit_posts":false,"forum_mod_can_pin_topic":false,"forum_mod_can_edit_titles":false,"forum_mod_can_close_topic":false,"can_vote":false,"forum_mod_can_add_infractions":false,"forum_topic_title_min_length":10,"forum_reply_old_post_threshold":30,"votes_add_max_time":168,"forum_show_post_interval":7,"can_see_deleted_users":false},"section":{"_id":"61c9a54c3df9550077bb50ab","hid":6,"title":"Курилка","parent":"61c9a54c3df9550077bb5123","description":"Разговоры на общие околомодельные темы.","is_category":false,"is_votable":true,"is_writable":true,"cache":{"topic_count":8213,"post_count":312957,"last_post":"673e469ef9bb00ab89224613","last_topic":"672bdee8f9bb00ab89c25e0c","last_topic_hid":572564,"last_topic_title":"Уро......ы заблокировали форум!","last_ts":"2024-11-20T20:29:18.553Z","last_user":"5773e2193df955007770fc08"}},"topic":{"_id":"42b3b5f69970730077040572","hid":24193,"title":"Как генерить список интересных тем?","views_count":2339,"last_post_counter":20,"cache":{"post_count":20,"first_post":"42b3b5f6997073007704091a","first_ts":"2005-06-18T05:49:42.000Z","first_user":"39c21abc3df9550077797d18","last_post":"42b6cd839970730077040940","last_post_hid":20,"last_ts":"2005-06-20T14:06:59.000Z","last_user":"3e5f98243df95500777969e4"},"st":1,"section":"61c9a54c3df9550077bb50ab"},"subscription":null,"pagination":{"total":20,"per_page":25,"chunk_offset":13},"posts_list_before_post":["paginator","datediff"]},"locale":"en-US","user_id":"000000000000000000000000","user_hid":0,"user_name":"","user_nick":"","user_avatar":null,"is_member":false,"settings":{"can_access_acp":false,"can_use_dialogs":false,"hide_heavy_content":false},"unread_dialogs":false,"footer":{"rules":{"to":"common.rules"},"contacts":{"to":"rco-nodeca.contacts"}},"navbar":{"tracker":{"to":"users.tracker","autoselect":false,"priority":10},"forum":{"to":"forum.index"},"blogs":{"to":"blogs.index"},"clubs":{"to":"clubs.index"},"market":{"to":"market.index.buy"}},"recaptcha":{"public_key":"6LcyTs0dAAAAADW_1wxPfl0IHuXxBG7vMSSX26Z4"},"layout":"common.layout"}