"С этой книгой читают" и быстрофикс (потенциальный)

Автор: wayerr

Четыре дня я смотрел на то, что этот виджет выдаёт. Насколько я могу предположить, принцип его работы выглядит примерно так:

Есть, допустим, три книги:

- "маски" - 1000 библиотек

- "кицунэ" - 20 библиотек

- "лисичка" - 10 библиотек

При этом:

- 5 пользователей добавили в библиотеку "кицунэ" и "лисичка"

- 10 пользователей имеют в библиотеке "маски", а также "кицунэ" или "лисичка"

Теперь представим сколько общих библиотек (ну то есть "эти книги читают вместе"):


маски
кицунэ
лисичка
маски
-
10
10
кицунэ
10
-
5
лисичка
10
5
-

Теперь, если у нас задача найти самую "близкую" книгу, по числу общих библиотек для книги "кицунэ" или "лисичка", то на первом месте будут "маски".

Предположительно, именно так и работает виджет. Проблема в том, что никак не связано с похожестью книг, даже с похожестью для читателя. 

Исправить это легко, надо поделить число "связей" (общих библиотек) на максимальное число библиотек пары сравниваемых книг (т.е. для пары "маски"-любая книга будем делить на 1000, для "кицуне"-"лисичка" на 20). Составим новую таблицу с таким подходом:


маски
кицунэ
лисичка
маски
-
0.01
0.01
кицунэ
0.01
-
0.25
лисичка
0.01
0.25
-

Неожиданно, маленькое математическое колдунство даёт нам результат который:

- показывает хоть какую-то схожесть книг

- позволяет хоть как-то удовлетворить читателя, скрыв от него книгу про которую он и так знает

Если что, я не в курсе, как там виджет сейчас работает, это чисто предположения.

+53
325

0 комментариев, по

2 370 425 206
Наверх Вниз