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.).
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