Нечеткие запросы к базе данных - PullRequest
0 голосов
/ 25 октября 2010

Мне любопытно, как сегодня работает функция на многих социальных сайтах.

Например, вы вводите список фильмов, которые вам нравятся, и система предлагает другие фильмы, которые вам могут понравиться (на основе фильмов, которые нравятся другим людям, которые любят те же фильмы, что и вы).Я думаю, что делать это прямым способом (соединить список моих фильмов с фильмами, пользователи присоединяются к группе пользовательских фильмов по названию фильма и применять к нему счет) для больших наборов данных было бы просто невозможно реализовать из-за «тяжести» такого запроса,

В то же время нам не нужно точное решение, приблизительное будет достаточно.Интересно, есть ли способ реализовать что-то вроде нечеткого запроса к традиционным СУБД, который бы выполнялся быстро, но имел некоторую погрешность.Или как такие функции реализованы в реальных системах.

Ответы [ 3 ]

2 голосов
/ 30 ноября 2010

это коллективная фильтрация или рекомендация

, если вам не нужно что-то действительно сложное, предиктор наклона один является одним из более простых, он похож на 50 строк питона, Совместная фильтрация Брайана О'Салливана стала проще, статья Daniel Lemire et al.введя «Предикторы наклона 1 для совместной фильтрации на основе рейтингов онлайн»

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

Я использовал этот код Python, чтобы предсказать количество слов, не встречающихся в документах, но у меня возникли проблемы с памятью и тому подобное, и я думаю, что могу написать версию из нехватки памяти, возможно, используя sqlite

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

1 голос
/ 30 ноября 2010

Вы ищете термин "совместная фильтрация"

Прочитайте Программирование Коллективный разум, О'Рейли Пресс

0 голосов
/ 25 октября 2010

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

...