レコメンデーションと協調フィルタリングを実装するために、Ruby on Rails のプロジェクトで Apache Mahout を使用したいと考えています。特に私の要件は次のとおりです。
- 関連するタグを提案します。
- 関連記事の提案。
- ユーザーの好みに基づいて、記事のレビューを促します。
- 地理的な場所やユーザーの他のメタ情報に基づいて、類似のユーザーを提案します。
レールと簡単に統合でき、私の要件を満たす場合は、他のソリューション (mahout 以外) を使用することにオープンです。
レコメンデーションと協調フィルタリングを実装するために、Ruby on Rails のプロジェクトで Apache Mahout を使用したいと考えています。特に私の要件は次のとおりです。
レールと簡単に統合でき、私の要件を満たす場合は、他のソリューション (mahout 以外) を使用することにオープンです。
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 フレームワークの外部で推奨事項を生成する方がおそらく理にかなっています (たとえば、毎晩のバッチでアフィニティを生成するなど)。
価値のあることとして、Mahout の「taste-web」モジュールには、Tomcat などにデプロイできる .war ファイルとして、Java ベースの Recommender を中心にすぐに使用できる Web サービスを構築するスクリプトが含まれています。 HTTP経由で。これは、HTTP リクエストを作成できる任意のプラットフォームからアクセスできます。