我想在Ruby on Rails上的项目中使用Apache Mahout来实现建议和协作过滤.特别是我的要求是:
建议相关标签.
提出相关文章.
根据用户的偏好提示他审阅文章.
基于地理位置和用户的其他元信息,建议他类似的用户.
如果它可以轻松地与rails集成并满足我的要求,我愿意使用任何其他解决方案(除了mahout).
Mahout(和Hadoop)在JRuby上运行的Rails中运行良好.你可以像这样包括Hadoop和Mahout罐子:
要求'rubygems'
需要'java'Dir ["/ mahout-base-dir/**/*.jar"].每个{| jar | require 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框架之外生成您的建议(例如通过在每晚批量生成亲和力等).
对于它的价值,象夫"味道的Web"模块中包含的脚本,将围绕一个基于Java的推荐者随时可以使用的Web服务,你可以像Tomcat的部署.war文件,然后再谈通过HTTP.这可以从任何可以发出HTTP请求的平台访问.
http://lucene.apache.org/mahout/taste.html#Standalone+server