2010-10-25 3 views
0

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

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

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

ответ

2

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

, если вам нужно что-то действительно КОМПЛЕКСА наклон одного предиктора является одним из самых простых, это как 50 строк python, Bryan O’Sullivan’s Collaborative filtering made easy, the paper by Daniel Lemire et al. introducing "Slope One Predictors for Online Rating-Based Collaborative Filtering"

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

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

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

0

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

+1

спасибо, это что-то, но все же очень общее. Что-то вроде «нейронных сетей можно использовать для распознавания образов» – kilonet

1

Термин вы ищете «совместная фильтрация»

Читать Программирование Коллективного разума, от O'Reilly Press

Смежные вопросы