12

Quiero utilizar Apache Mahout en mi proyecto en Ruby on Rails para implementar recomendaciones y filtros colaborativos. En particular, mis requisitos son:Mahout Plugin para ruby ​​on rails

  1. sugiriendo etiquetas relacionadas.
  2. sugiriendo artículos relacionados.
  3. según las preferencias del usuario, solicítelo para la revisión de los artículos.
  4. según la ubicación geográfica y otra meta información de un usuario, sugiérale usuarios similares.

Estoy abierto a utilizar cualquier otra solución (que no sea mahout) si se integra fácilmente con los rieles y cumple mis requisitos.

+0

El filtrado colaborativo no es un algoritmo particularmente largo de implementar. Puede pasar mucho menos tiempo simplemente implementando el algoritmo que tratar de hacerlo funcionar con ruby ​​on rails. – Steve

Respuesta

6

Por lo que vale, el módulo Mahout 'taste-web' contiene scripts que construirán un servicio web listo para usar en torno a un Recommender basado en Java, como un archivo .war que puede implementar en algo como Tomcat , y luego hablar a través de HTTP. Eso sería accesible desde cualquier plataforma que pueda hacer solicitudes HTTP.

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

7

Mahout (y Hadoop) funcionan bastante bien dentro de los carriles que se ejecutan en JRuby. Puede incluir Hadoop y Mahout frascos de este modo:

requieren '' rubygems
requieren 'java'

Dir [ "/ mahout-base-dir/**/* frasco."]. cada {| jar | requieren jar}
Dir ["/ hadoop-base-dir/**/*. jar"]. each {| jar | requerir frasco}

A continuación, puede incluir las clases Mahout que desee usar, por ejemplo:

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' .espectral .kmeans.SpectralKMeansDriver'

A partir de ahí, puede seguir las convenciones de Java Mahout Docs y JRuby para construir su sistema de rieles rec.

Habiendo dicho eso, no estoy seguro de que sea la mejor arquitectura para su sitio (difícil de decir sin más detalles). Si su escala de problemas es lo suficientemente grande como para justificar a Mahout, probablemente tenga más sentido usar Rails solo para el contenido web y generar sus recomendaciones fuera del marco web (por ejemplo, generando afinidades en lotes nocturnos, etc.).