Mahout Plugin for ruby on rails

后端 未结 2 1829
我在风中等你
我在风中等你 2021-02-04 10:46

I want to use Apache Mahout in my project on Ruby on Rails for implementing recommendations and collaborative filtering. In Particular my requirements are:

  1. suggest
相关标签:
2条回答
  • 2021-02-04 11:07

    Mahout (and Hadoop) work pretty well within Rails running on JRuby. You can include Hadoop and Mahout jars like so:

    require 'rubygems'
    require 'java'

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

    Then you can include the Mahout classes you plan on using, for instance:

    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'

    From there, you can follow the Mahout Java Docs and JRuby conventions to build your Rails rec system.

    That being said, I'm not sure that would be the best architecture for your site (hard to say without more detail). If your problem scale is large enough to warrant Mahout, it probably makes more sense to use Rails for just the web stuff, and generate your recommendations outside the web framework (for instance by generating affinities in nightly batches, etc.).

    0 讨论(0)
  • 2021-02-04 11:30

    For what it's worth, the Mahout 'taste-web' module contains scripts that will build a ready-to-use web service around a Java-based Recommender, as a .war file that you can deploy on something like Tomcat, and then talk to via HTTP. That would be accessible from any platform that can make HTTP requests.

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

    0 讨论(0)
提交回复
热议问题