2016-04-06 13 views
1

私はApache Mahoutの初心者です。私はApache mahout 0.11.2を使用しています。ですから、私は以下のようにsamplereccommender.javaというJavaクラスを作成しました。私はインターネットや本 "に読んだから今
のjava -cp n.jar f.SampleReccommender n_lib/wishlistdata.txtApache Mahoutを使用しているカスタム提案者ジョブhadoopの上に0.11.2

として、コマンドラインから同じコードを実行するために管理

package f; 
import java.io.File; 
import java.io.IOException; 
import org.apache.mahout.cf.taste.common.TasteException; 
import org.apache.mahout.cf.taste.impl.model.file.FileDataModel; 
import org.apache.mahout.cf.taste.impl.neighborhood.ThresholdUserNeighborhood; 
import org.apache.mahout.cf.taste.impl.recommender.GenericUserBasedRecommender; 
import org.apache.mahout.cf.taste.impl.similarity.PearsonCorrelationSimilarity; 
import org.apache.mahout.cf.taste.model.DataModel; 
import org.apache.mahout.cf.taste.neighborhood.UserNeighborhood; 
import org.apache.mahout.cf.taste.recommender.RecommendedItem; 
import org.apache.mahout.cf.taste.recommender.UserBasedRecommender; 
import org.apache.mahout.cf.taste.similarity.ItemSimilarity; 
import org.apache.mahout.cf.taste.similarity.UserSimilarity; 
import java.util.List; 

public class SampleReccommender { 
    public static void main(String args[]){ 
     try{ 
      DataModel datamodel = new FileDataModel(new File(args[0])); 
      //Creating UserSimilarity object. 
      UserSimilarity usersimilarity = new PearsonCorrelationSimilarity(datamodel); 
      //Creating UserNeighbourHHood object. 
      UserNeighborhood userneighborhood = new ThresholdUserNeighborhood(1.0, usersimilarity, datamodel); 
      //Create UserRecomender 
      UserBasedRecommender recommender = new GenericUserBasedRecommender(datamodel, userneighborhood, usersimilarity); 
      List recommendations = (List) recommender.recommend(2, 3); 
      System.out.println(recommendations.size()); 
      for (int i=0; i< recommendations.size();i++) { 
       System.out.println(recommendations.get(i)); 
      } 
     } 
catch(Exception e){ 
    e.printStackTrace(); 
} 
}} 

Mahout in action "以下のコマンドを使って同じコードをhadoop上で実行できることを理解しました。 私のSampleReccommender.javaを既存のapache-mahout-distribution-0.11.2/mahout-mr-0.11.2-job.jarに含める必要があります。だから私は以下の手順に従った。

瓶UF /Users/rohitjain/Documents/apache-mahout-distribution-0.11.2/mahout-mr-0.11.2-job.jar samplerecommender.jar

、私は使用して象使いのジョブを実行しようとしました以下のコマンド

ビン/ Hadoopのジャー/Users/rohitjain/Documents/apache-mahout-distribution-0.11.2/mahout-mr-0.11.2-job.jar org.apache.mahout.cf.taste.hadoop .item.RecommenderJob -i /input/wishlistdata.txt -o/output/--recommenderClassName \ f.SampleRecommender

しかし、それはのように私にエラーを与える:ジョブ固有のオプションを処理している間に

予期しない--recommenderClassName:

私は

下に述べたようにある「象使いのアクションで」ブック与えられた構文に基づいて上記のコマンドを試みました

hadoop jar mahout-core-0.5-job.jar \ org.apache.mahout.cf.taste.hadoop.pseudo.RecommenderJob \ -Dmapred.input.dir = input/ua.base.hadoop \ -Dmapred.output .dir =出力\ --recommenderClassName \ org.apache.mahout.cf.taste.impl.recommender.slopeone.SlopeOneRecommender

何か間違っていますか?また、私がスタンドアロンの実装に使用したコードをrecommendJobsに使用できるのか、それともすべて異なる実装を必要とするのかを教えてください。

答えて

0

Mahout in Actionが古く、使用しているコードは廃止予定です。

最近、MahoutはSparkのような最新の計算プラットフォームで動作します。最新のMahout Recommenderの場合は、Commandline Interfaceを使用してアイテム間の類似性を確認し、SolrまたはEleasticsearchと統合することができます。

Mahoutのと、推薦の構築
関連する問題