12

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

  1. Предлагая похожие метки.
  2. Предлагаю соответствующие статьи.
  3. , основанный на предпочтениях пользователя, предлагает ему ознакомиться с статьями.
  4. , основанный на географическом местоположении и другой метаинформации пользователя, предлагает ему подобных пользователей.

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

+0

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

ответ

6

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

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

7

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

требуют 'RubyGems'
требуют 'Java'

Dir [ "/ Погонщик база-Dir/**/* баночку."]. каждый {| jar | require jar}
Dir ["/ hadoop-base-dir/**/*. jar"]. each {| jar | требуют баночка}

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

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

Оттуда вы можете следовать соглашениям Mahout Java Docs и JRuby, чтобы построить ваш Rails прна системы.

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