Mahout (et Hadoop) fonctionnent assez bien dans Rails en cours d'exécution sur JRuby. Vous pouvez inclure Hadoop et bocaux Mahout comme ceci:
require 'rubygems'
require 'java'
Dir [ "/ cornac-base-dir/**/* pot."]. chaque {| jar | require jar}
Dir ["/ hadoop-base-dir/**/*. jar"]. chaque {| jar | besoin pot}
Ensuite, vous pouvez inclure les classes Mahout vous prévoyez d'utiliser, par exemple:
include_class de la org.apache.hadoop.fs.Path '
include_class « org.apache .hadoop.conf.Configuration '
include_class 'org.apache.hadoop.fs.FileSystem'
include_class de la org.apache.mahout.clustering.spectral.common.AffinityMatrixInputJob'
include_class de la org.apache.mahout.clustering .spectral .kmeans.SpectralKMeansDriver »
À partir de là, vous pouvez suivre les conventions Mahout Java Docs et JRuby pour construire votre Rails système rec. Cela dit, je ne suis pas sûr que ce soit la meilleure architecture pour votre site (difficile à dire sans plus de détails). Si l'échelle de votre problème est suffisamment importante pour justifier Mahout, il est probablement préférable d'utiliser Rails uniquement pour le Web et de générer vos recommandations en dehors du cadre Web (par exemple en générant des affinités dans les lots nocturnes, etc.).
Le filtrage collaboratif n'est pas un algorithme particulièrement long à implémenter. Vous pourriez passer beaucoup moins de temps à implémenter l'algorithme qu'à essayer de l'utiliser avec ruby on rails. – Steve