Сбалансированное сочетание последних, интересных и новых / неотвеченных сообщений - PullRequest
0 голосов
/ 12 сентября 2011

Я ищу алгоритм или какой-то метод оценки пригодности.

В качестве примера возьмем Stackoverflow. Посты делятся на группы по

  • Рейтинг (+, -, 0)
  • Теги (и важность тегов в зависимости от активности в них)
  • Пользователи (рейтинг / репутация, возраст, недавняя активность)
  • Ключевые слова

И я ищу способ, как отсортировать их для создания оптимизированного / сбалансированного микса.
Я не хочу показывать ТОЛЬКО самые новые ИЛИ ТОЛЬКО самые популярные ИЛИ ТОЛЬКО важные теги

возможно, имя будет "Оптимальная сортировка по нескольким атрибутам" или что-то подобное.

Кто-нибудь может что-то посоветовать? Спасибо

ADD1: может быть, мы говорим о Fitness function (http://en.wikipedia.org/wiki/Fitness_function)

1 Ответ

1 голос
/ 12 сентября 2011

Создайте отдельные промежуточные оценки для каждого из этих факторов, затем нормализуйте их, сложите их и отсортируйте по итоговой сумме для каждого поста. Например,

  1. Ранжируйте все посты по рейтингу, а затем сопоставьте их позицию в рейтинге с диапазоном 0,0-1,0 (самый высокий рейтинг поста 1,0, самый низкий 0,0).
  2. Создайте функцию, чтобы брать теги поста и вычислять аналогичный показатель 0,0-1,0, основываясь только на тегах.
  3. Создайте еще одну функцию, чтобы сделать то же самое для пользователя.
  4. И еще для любых ключевых слов, которые вы хотите.

Если вы хотите, чтобы некоторые вещи учитывались в большей степени, чем другие, умножьте подсчет на постоянный коэффициент, прежде чем добавлять его к итоговому значению - например, если вы хотите, чтобы рейтинг был важным, а остальные менее важны, вы могли бы это сделать (3*A)+B+C+D если четыре подкласса являются буквами.

А как именно вы переводите вещи в подкорки? Это то, что вы действительно должны определить для своего конкретного приложения; нет единственного «правильного» способа сделать это.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...