Ruby on rails RubyonRails的Mahout插件

Ruby on rails RubyonRails的Mahout插件,ruby-on-rails,ruby-on-rails-plugins,recommendation-engine,mahout,Ruby On Rails,Ruby On Rails Plugins,Recommendation Engine,Mahout,我想在RubyonRails上的项目中使用ApacheMahout来实现推荐和协作过滤。我的具体要求是: 建议相关标签 建议相关文章 根据用户的偏好提示他审阅文章 根据用户的地理位置和其他元信息,向他推荐类似的用户 如果它能够轻松地与rails集成并满足我的要求,我愿意使用任何其他解决方案(mahout除外) 值得一提的是,Mahout“taste web”模块包含的脚本将围绕基于Java的推荐程序构建一个随时可用的web服务,作为一个.war文件,可以部署在Tomcat之类的东西上,然后通过H

我想在RubyonRails上的项目中使用ApacheMahout来实现推荐和协作过滤。我的具体要求是:

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

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

    值得一提的是,Mahout“taste web”模块包含的脚本将围绕基于Java的推荐程序构建一个随时可用的web服务,作为一个.war文件,可以部署在Tomcat之类的东西上,然后通过HTTP与之通信。可以从任何可以发出HTTP请求的平台访问

    Mahout(和Hadoop)在JRuby上运行的Rails中运行得非常好。您可以包括Hadoop和Mahout JAR,如下所示:

    需要“rubygems”
    需要“java”

    Dir[“/mahout base Dir/***.jar”]。每个{jar | require jar}
    Dir[“/hadoop base Dir/***.jar”]。每个{jar | require jar}

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

    包括_类“org.apache.hadoop.fs.Path”
    包括_类“org.apache.hadoop.conf.Configuration”
    包括_类“org.apache.hadoop.fs.FileSystem”
    包括_类“org.apache.mahout.clustering.spectrum.common.AffinityMatrixInputJob”
    包括_类“org.apache.mahout.clustering.spectral.kmeans.SpectralKMeansDriver”

    从那里,您可以按照Mahout Java文档和JRuby约定构建Rails rec系统


    话虽如此,我不确定这是否是你网站的最佳架构(没有更多细节很难说)。如果您的问题规模足够大,足以让Mahout负责,那么将Rails仅用于web内容,并在web框架之外生成您的建议(例如,通过在夜间批量生成亲缘关系等)可能更有意义

    协同过滤不是一个特别长的算法来实现。与使用RubyonRails相比,您可能只需实现该算法所花费的时间要少得多。