Подтвердить что ты не робот

Плагин Mahout для рубинов на рельсах

Я хочу использовать Apache Mahout в своем проекте Ruby on Rails для реализации рекомендаций и совместной фильтрации. В частности, мои требования:

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

Я открыт для использования любого другого решения (кроме mahout), если он легко интегрируется с рельсами и удовлетворяет моим требованиям.

4b9b3361

Ответ 1

Mahout (и Hadoop) работают очень хорошо в Rails, запущенном на JRuby. Вы можете включить баночки Hadoop и Mahout следующим образом:

требуется "rubygems"
require 'java'

Dir [ "/mahout-base-dir/**/*. jar" ]. each {| jar | require jar}
Dir [ "/hadoop-base-dir/**/*. Jar" ]. Each {| jar | require jar}

Затем вы можете включить классы Mahout, которые вы планируете использовать, например:

include_class 'org.apache.hadoop.fs.Path'
include_class 'org.apache.hadoop.conf.Configuration'
include_class 'org.apache.hadoop.fs.FileSystem'
include_class 'org.apache.mahout.clustering.spectral.common.AffinityMatrixInputJob'
include_class 'org.apache.mahout.clustering.spectral.kmeans.SpectralKMeansDriver'

Оттуда вы можете следовать соглашениям Java Youtube и JRuby для создания системы Rails rec.

Говоря, я не уверен, что это будет лучшая архитектура для вашего сайта (трудно сказать без каких-либо подробностей). Если масштаб вашей задачи достаточно велик, чтобы оправдать Махут, вероятно, имеет смысл использовать Rails только для веб-материалов и генерировать ваши рекомендации за пределами веб-фреймворка (например, путем создания аффинностей в ночных пакетах и ​​т.д.).

Ответ 2

Для того, что стоит, модуль Mahout "taste-web" содержит сценарии, которые будут создавать готовый к использованию веб-сервис вокруг Java-рекомендателя, в виде файла .war, который можно развернуть на чем-то вроде Tomcat, а затем поговорить через HTTP. Это было бы доступно с любой платформы, которая может выполнять HTTP-запросы.

http://lucene.apache.org/mahout/taste.html#Standalone+server