Well, guys i wrote this code, can you tell me if it's right or not?
Thanks in advance :)
package org.apache.mahout.cf.taste.hadoop.item;
import org.apache.mahout.cf.taste.common.Refreshable;
import org.apache.mahout.cf.taste.common.TasteException;
import org.apache.mahout.cf.taste.example.grouplens.GroupLensDataModel;
import org.apache.mahout.cf.taste.impl.eval.LoadEvaluator;
import org.apache.mahout.cf.taste.impl.model.file.*;
import org.apache.mahout.cf.taste.impl.recommender.*;
import org.apache.mahout.cf.taste.impl.recommender.svd.SVDRecommender;
import org.apache.mahout.cf.taste.impl.similarity.*;
import org.apache.mahout.cf.taste.model.*;
import org.apache.mahout.cf.taste.recommender.*;
import org.apache.mahout.cf.taste.similarity.*;
import java.io.*;
import java.util.*;
public class ItemBased implements Recommender {
private final Recommender delegate;
private DataModel model;
public ItemBased(DataModel model) throws TasteException, IOException {
ItemSimilarity similarity = new PearsonCorrelationSimilarity(model);
delegate = new GenericItemBasedRecommender(model, similarity);
LoadEvaluator.runLoad(delegate);
List<RecommendedItem> recommendations = delegate.recommend(1,1);
for (RecommendedItem recommendation : recommendations){
System.out.println(recommendation);
}
}
@Override
public float estimatePreference(long userID, long itemID)
throws TasteException {
// TODO Auto-generated method stub
return delegate.estimatePreference(userID, itemID);
}
@Override
public DataModel getDataModel() {
return delegate.getDataModel();
}
@Override
public List<RecommendedItem> recommend(long userID, int howMany)
throws TasteException {
return delegate.recommend(userID, howMany);
}
@Override
public List<RecommendedItem> recommend(long userID, int howMany,
IDRescorer rescorer) throws TasteException {
// TODO Auto-generated method stub
return delegate.recommend(userID, howMany);
}
@Override
public void removePreference(long userID, long itemID)
throws TasteException {
// TODO Auto-generated method stub
}
@Override
public void setPreference(long userID, long itemID, float value)
throws TasteException {
delegate.setPreference(userID, itemID, value);
}
@Override
public void refresh(Collection<Refreshable> alreadyRefreshed) {
delegate.refresh(alreadyRefreshed);
}
}
Il giorno 21/nov/2010, alle ore 07.49, web service ha scritto:
> Well, I did run the grouplensrecommender on hadoop.Most of the time the
> problem I encountered (like exceptions of yours) was packing the libs,
> creating jar and configuring input paths. As Sean said, look at
> GroupLensRecommender implementation in
> o.a.m.c.t.example.grouplens.GroupLensRecommender.
>
> HTH
>
>
> On Sat, Nov 20, 2010 at 7:11 AM, Sean Owen <srowen@gmail.com> wrote:
>
>> The first part looks right, but you have not delegated any methods.
>> Please see the example I referred you to.
>>
>> On Sat, Nov 20, 2010 at 3:06 PM, Stefano Bellasio <
>> stefanobellasio@gmail.com
>>> wrote:
>>
>>> Something like this? And then i have to package it and use instead of
>>> Mahout-core..job right? Thanks again
>>>
>>>
>>
|