Хорошая библиотека совместной фильтрации / соответствия / рекомендации для Python / Django? - PullRequest
15 голосов
/ 21 января 2012

Я ищу библиотеку, которую я могу использовать для сопоставления своих пользователей с другими моделями Django на основе ответов на вопросы - также моей собственной модели Django.

Так что я бы хотел что-то настраиваемое, с хорошей документацией / поддержкой и, надеюсь, не слишком сложным для реализации!

У кого-нибудь есть хорошие рекомендации? Я посмотрел на Краба и Джанго-Рекомендера, но ни один из них не очень хорошо задокументирован.

В основном у меня есть две анкеты с соответствующими, но не идентичными вопросами и ответами. Например. вопрос в app1 может быть "сколько ночей в неделю ты пьешь?" и вопрос в app2 может быть «сколько ночей в неделю вы собираетесь выпить?» с внешним ключом к первому вопросу в данном случае. Я хочу взять ответы на эти вопросы и использовать их для объединения пользователей из каждого набора, чтобы дать пользователям в группе 2 рекомендации, основанные на том, что пользователи в группе 1 уже используют.

Ответы [ 3 ]

2 голосов
/ 23 февраля 2012

Они охватили эту тему в бесплатном классе Стэнфорда ML. Посмотрите видео для главы XVI по адресу http://www.ml -class.org / course / video / preview_list

Хотя обсуждаемая реализация - Matlab / Octave, реализовать ее на Python не составит труда, еще проще, если вы используете Numpy

0 голосов
/ 27 апреля 2017

Очень гибким решением, которое работает на любом языке кодирования (включая Python), является Abracadabra Recommender API .

По сути, это Алгоритмы Рекомендатора как Сервиса .Настройка очень проста: вам нужно только отправить HTTP-вызовы (что вы можете сделать с Django) на URL-адрес конечной точки API, чтобы обучить вашу модель и получить рекомендации. Просмотрите документы, как .

С помощью API рекомендателя Abracadabra при использовании Python вы сначала добавляете данные в свою модель:

# These code snippets use an open-source library. http://unirest.io/python
response = unirest.post("https://noodlio-abracadabra-recommender-systems-v1.p.mashape.com/add/subjects?recommenderId=rec1&subjectId=See+docs",
  headers={
    "X-Mashape-Key": "<required>",
    "Accept": "application/json",
    "Content-Type": "application/json"
  }
)

Затем вы обучаетемодель по рейтингу или по тематике (например, фильмы):

# These code snippets use an open-source library. http://unirest.io/python
response = unirest.post("https://noodlio-abracadabra-recommender-systems-v1.p.mashape.com/rate/subject?recommenderId=rec1&subjectId=gameofthrones&subjectWeight=10&userId=user1",
  headers={
    "X-Mashape-Key": "<required>",
    "Accept": "application/json",
    "Content-Type": "application/json"
  }
)

После выполнения вы получите рекомендации на основе контентной, совместной или гибридной фильтрации следующим образом:

# These code snippets use an open-source library. http://unirest.io/python
response = unirest.post("https://noodlio-abracadabra-recommender-systems-v1.p.mashape.com/recommend?method=content&recommenderId=rec1&userId=user1",
  headers={
    "X-Mashape-Key": "<required>",
    "Accept": "application/json",
    "Content-Type": "application/json"
  }
)

Вы можете просмотреть другие примеры на других языках, включая Angular, React, Javascript, NodeJS, Curl, Java, Python, Objective-C, Ruby, .NET... на домашней странице API .

0 голосов
/ 02 февраля 2012

Есть несколько хороших книг о социальных сетях в сочетании с Python.

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