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


Автор: Sergic 14.10.2008, 19:15
Не могу сообразить один алгоритм... Суть такова...
Есть программа, которой пользуются многое число пользователей, в программе есть документы, тоже множество... 
1. Нужно найти похожего пользователя оп критерию куда, допустим этот пользователь лазил (в какие документы)
2. Нужно предложить этому пользователю документы, которые он не просматривал, но просматривал похожий пользователь.

пример такой:
пользователь1 (п1): 2А-1Б-3В-1Г (2 раза посещал А, 1 раз - Б и т.д)
пользователь2 (п2): 2А-1Б-2В-2Г
пользователь3 (п3): 1А-1Б-3В
как узнать сходство пользователя п1 с п2, или п1 с п3? Может есть какой-то коэффициент сходства?
Помогите или дайте хоть намёки на работу алгоритмов. Спасибо.

Автор: ksnk 14.10.2008, 19:46
Вряд ли стоит считать количество просмотров документов. Может у клиента память хорошая и ему достаточно один раз увидеть... ;-)

Для примера - вот такой алгоритм:
Хранить массив посещенных документов на каждого юзера и для пары юзеров считать мощность разницы массивов, деленную на среднюю мощность массивов

пользователь1 (п1): 2А-1Б-3В-1Г (2 раза посещал А, 1 раз - Б и т.д)
пользователь2 (п2): 2А-1Б-2В-2Г
пользователь3 (п3): 1А-1Б-3В
пользователь4 (п3): 1C-1D-3В

Итого 1 и 2 разница - (0 / 4) = 0
1 и 3 - разница 1/3,5 
3 и 4 - разница 2/3 

Для большого количества документов, вероятно, будет нагляднее smile Критерий определяется методом научного тыка. Среднепотолочное значение - 1/3. Если меньше - однокурсники...

Автор: Sergic 15.10.2008, 12:49
спасиб. хорошая идея с мощностью массивов, а то мне предложили дискретную математику использовать...

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