12

レコメンデーションと協調フィルタリングを実装するために、Ruby on Rails のプロジェクトで Apache Mahout を使用したいと考えています。特に私の要件は次のとおりです。

  1. 関連するタグを提案します。
  2. 関連記事の提案。
  3. ユーザーの好みに基づいて、記事のレビューを促します。
  4. 地理的な場所やユーザーの他のメタ情報に基づいて、類似のユーザーを提案します。

レールと簡単に統合でき、私の要件を満たす場合は、他のソリューション (mahout 以外) を使用することにオープンです。

4

2 に答える 2

7

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 Docs および JRuby 規則に従って、Rails rec システムを構築できます。

そうは言っても、それがあなたのサイトに最適なアーキテクチャであるかどうかはわかりません (詳細がわからなければ、何とも言えません)。問題の規模が Mahout を正当化するのに十分な大きさである場合、Rails を Web のものだけに使用し、Web フレームワークの外部で推奨事項を生成する方がおそらく理にかなっています (たとえば、毎晩のバッチでアフィニティを生成するなど)。

于 2011-10-03T23:54:14.460 に答える
6

価値のあることとして、Mahout の「taste-web」モジュールには、Tomcat などにデプロイできる .war ファイルとして、Java ベースの Recommender を中心にすぐに使用できる Web サービスを構築するスクリプトが含まれています。 HTTP経由で。これは、HTTP リクエストを作成できる任意のプラットフォームからアクセスできます。

http://lucene.apache.org/mahout/taste.html#スタンドアロン+サーバー

于 2010-01-22T04:06:25.043 に答える