Mahout Plugin for ruby​​ on rails

时间:2010-01-18 05:51:45

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

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

  1. 建议相关标签。
  2. 建议相关文章。
  3. 根据用户的偏好提示他审阅文章。
  4. 根据地理位置和用户的其他元信息,向他推荐类似用户。
  5. 如果它可以轻松地与rails集成并满足我的要求,我愿意使用任何其他解决方案(除了mahout)。

2 个答案:

答案 0 :(得分:7)

Mahout(和Hadoop)在JRuby上运行的Rails中运行良好。你可以像这样包括Hadoop和Mahout罐子:

  

要求'rubygems'   要求'java'

     

Dir [“/ mahout-base-dir / ** / * .jar”]。每个{| jar |要求罐子。
  Dir [“/ hadoop-base-dir / ** / * .jar”]。每个{| jar |要求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框架之外生成您的建议(例如通过在每晚批量生成亲和力等)可能更有意义。

答案 1 :(得分:6)

对于它的价值,Mahout'taste-web'模块包含脚本,这些脚本将围绕基于Java的Recommender构建即用型Web服务,作为.war文件,您可以在Tomcat之类的部署,然后通过HTTP交谈。这可以从任何可以发出HTTP请求的平台访问。

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