ruby-on-rails - 用于 ruby​​ on rails 的 Mahout 插件

标签 ruby-on-rails ruby-on-rails-plugins recommendation-engine mahout

我想在我的 Ruby on Rails 项目中使用 Apache Mahout 来实现推荐和协作过滤。特别是我的要求是:

  • 建议相关标签。
  • 推荐相关文章。
  • 根据用户的喜好提示他查看文章。
  • 根据用户的地理位置和其他元信息,向他推荐相似的用户。

  • 我愿意使用任何其他解决方案(mahout 除外),如果它可以轻松地与 Rails 集成并满足我的要求。

    最佳答案

    Mahout(和 Hadoop)在运行在 JRuby 上的 Rails 中工作得很好。您可以像这样包含 Hadoop 和 Mahout jar:

    require 'rubygems'
    require 'java'

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



    然后您可以包含您计划使用的 Mahout 类,例如:

    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'



    从那里,您可以遵循 Mahout Java Docs 和 JRuby 约定来构建您的 Rails rec 系统。

    话虽如此,我不确定这将是您网站的最佳架构(如果没有更多细节很难说)。如果您的问题规模大到足以保证 Mahout,那么将 Rails 仅用于 Web 内容并在 Web 框架之外生成您的建议可能更有意义(例如通过每晚生成相似性等)。

    关于ruby-on-rails - 用于 ruby​​ on rails 的 Mahout 插件,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/2084131/

    相关文章:

    mysql - 在 ROR 中为 MYSQL 表创建 Controller

    ruby-on-rails - ambethia 在 Rails 3 上的 reCAPTCHA 插件。覆盖 flash 消息 div 默认值?

    algorithm - 将偏好转换为评级

    ruby-on-rails - Rails 根据用户类型呈现不同操作和 View 的方式?

    ruby-on-rails - Rails 在父级范围内的唯一名称

    rubygems - gemspec中包含的依赖关系未添加到Rails引擎的 Assets 管道中

    machine-learning - 为什么 ALS.trainImplicit 对显式评分给出更好的预测?

    machine-learning - 如何评价svd相似的元素?

    ruby-on-rails - as_json 没有在关联上调用 as_json

    ruby-on-rails - 我正在使用 RVM,使用 bundle install 和 rvm bundle install 有什么区别?