我想在 Ruby on Rails 项目中使用 Apache Mahout 来实现推荐和协作过滤。特别是我的要求是:
- 建议相关标签。
- 推荐相关文章。
- 根据用户的喜好提示他评论文章。
- 根据用户的地理位置和其他元信息,向他推荐类似的用户。
如果任何其他解决方案能够轻松地与 Rails 集成并满足我的要求,我愿意使用任何其他解决方案(除了 mahout)。
Mahout(和 Hadoop)在 JRuby 上运行的 Rails 中工作得很好。您可以像这样包含 Hadoop 和 Mahout jar:
需要“红宝石”
需要“java”
Dir["/mahout-base-dir/**/*.jar"].each { |jar|需要罐子}
Dir["/hadoop-base-dir/**/*.jar"].each { |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 文档和 JRuby 约定来构建您的 Rails 记录系统。
话虽如此,我不确定这是否是您网站的最佳架构(如果没有更多细节,很难说)。如果您的问题规模足够大,足以保证使用 Mahout,那么仅将 Rails 用于 Web 内容并在 Web 框架之外生成建议(例如通过在夜间批次中生成亲和力等)可能更有意义。
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)