ruby on Rails 的 Mahout 插件

发布于 2024-08-17 19:53:12 字数 238 浏览 16 评论 0原文

我想在 Ruby on Rails 项目中使用 Apache Mahout 来实现推荐和协作过滤。我的具体要求是:

  1. 建议相关标签。
  2. 推荐相关文章。
  3. 根据用户的喜好提示他评论文章。
  4. 根据用户的地理位置和其他元信息,向他推荐类似的用户。

如果任何其他解决方案能够轻松地与 Rails 集成并满足我的要求,我愿意使用任何其他解决方案(除了 mahout)。

I want to use Apache Mahout in my project on Ruby on Rails for implementing recommendations and collaborative filtering. In Particular my requirements are:

  1. suggesting related tags.
  2. suggesting related articles.
  3. based on user's preferences prompt him for review of articles.
  4. based on geographical location, and other meta information of a user, suggest him similar users.

I am open to using any other solution (other than mahout) if it integrates with rails easily and fulfills my requirements.

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(2

微暖i 2024-08-24 19:53:12

Mahout(和 Hadoop)在 JRuby 上运行的 Rails 中工作得很好。您可以像这样包含 Hadoop 和 Mahout jar:

需要“rubygems”
需要“java”

Dir["/mahout-base-dir/**/*.jar"].each { |jar|需要 jar }
Dir["/hadoop-base-dir/**/*.jar"].each { |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 文档和 JRuby 约定来构建您的 Rails 记录系统。

话虽如此,我不确定这是否是您网站的最佳架构(如果没有更多细节,很难说)。如果您的问题规模足够大,足以保证使用 Mahout,那么仅将 Rails 用于 Web 内容并在 Web 框架之外生成建议(例如通过在夜间批次中生成亲和力等)可能更有意义。

Mahout (and Hadoop) work pretty well within Rails running on JRuby. You can include Hadoop and Mahout jars like so:

require 'rubygems'
require 'java'

Dir["/mahout-base-dir/**/*.jar"].each { |jar| require jar }
Dir["/hadoop-base-dir/**/*.jar"].each { |jar| require jar }

Then you can include the Mahout classes you plan on using, for instance:

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'

From there, you can follow the Mahout Java Docs and JRuby conventions to build your Rails rec system.

That being said, I'm not sure that would be the best architecture for your site (hard to say without more detail). If your problem scale is large enough to warrant Mahout, it probably makes more sense to use Rails for just the web stuff, and generate your recommendations outside the web framework (for instance by generating affinities in nightly batches, etc.).

初吻给了烟 2024-08-24 19:53:12

就其价值而言,Mahout“taste-web”模块包含一些脚本,这些脚本将围绕基于 Java 的推荐器构建现成的 Web 服务,作为 .war 文件,您可以将其部署在 Tomcat 等设备上,然后进行对话通过 HTTP。可以从任何可以发出 HTTP 请求的平台访问它。

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

For what it's worth, the Mahout 'taste-web' module contains scripts that will build a ready-to-use web service around a Java-based Recommender, as a .war file that you can deploy on something like Tomcat, and then talk to via HTTP. That would be accessible from any platform that can make HTTP requests.

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

~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文