ruby-on-rails – Mahout插件,用于轨道上的ruby

我想在我的 Ruby on Rails项目中使用Apache Mahout来实现建议和协同过滤.具体我的要求是:

>建议相关标签.
>建议相关文章.
>根据用户的偏好提示他审查文章.
根据地理位置和用户的其他元信息,建议他类似用户.

如果轻松地与轨道轨道集成,并满足我的要求,我可以使用任何其他解决方案(除了mahout).

解决方法

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文档和JRuby约定来构建您的Rails rec系统.

话虽如此,我不知道这将是你的网站最好的架构(很难说没有更多的细节).如果您的问题规模足够大以保证Mahout,那么使用Rails只是为了网络的东西可能更有意义,并在Web框架之外生成您的建议(例如通过在夜间批量生成亲和力等).

相关文章

validates:conclusion,:presence=>true,:inclusion=>{...
一、redis集群搭建redis3.0以前,提供了Sentinel工具来监控各...
分享一下我老师大神的人工智能教程。零基础!通俗易懂!风趣...
上一篇博文 ruby传参之引用类型 里边定义了一个方法名 mo...
一编程与编程语言 什么是编程语言? 能够被计算机所识别的表...
Ruby类和对象Ruby是一种完美的面向对象编程语言。面向对象编...