import java.io.File;
import org.apache.mahout.cf.taste.model.DataModel;
import org.apache.mahout.cf.taste.impl.model.file.FileDataModel;
import org.apache.mahout.cf.taste.impl.similarity.UncenteredCosineSimilarity;
import org.apache.mahout.cf.taste.impl.neighborhood.NearestNUserNeighborhood;
import org.apache.mahout.cf.taste.impl.recommender.GenericUserBasedRecommender;
import org.apache.mahout.cf.taste.impl.common.LongPrimitiveIterator;
import org.apache.mahout.cf.taste.similarity.UserSimilarity;
import org.apache.mahout.cf.taste.neighborhood.UserNeighborhood;
import org.apache.mahout.cf.taste.recommender.UserBasedRecommender;
public class Client {
public static void main(String[] args) throws Exception {
DataModel model = new FileDataModel(new File("data/data.txt"));
UserSimilarity similar = new UncenteredCosineSimilarity(model);
UserNeighborhood neighbor = new NearestNUserNeighborhood(model.getNumUsers(), similar, model);
UserBasedRecommender recommender = new GenericUserBasedRecommender(model, neighbor, similar);
LongPrimitiveIterator users = model.getUserIDs();
while(users.hasNext()) {
long user = users.next();
System.out.println(user + " -> " + recommender.recommend(user, 10));
/*
LongPrimitiveIterator items = model.getItemIDs();
while(items.hasNext()) {
long item = items.next();
System.out.println(user + " -> " + item + " = " + recommender.estimatePreference(user, item));
}
*/
}
}
}