我想在我的 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/