List of usage examples for org.apache.mahout.cf.taste.impl.recommender GenericItemBasedRecommender recommend
@Override public List<RecommendedItem> recommend(long userID, int howMany) throws TasteException
Default implementation which just calls Recommender#recommend(long,int,org.apache.mahout.cf.taste.recommender.IDRescorer) , with a org.apache.mahout.cf.taste.recommender.Rescorer that does nothing.
From source file:ItemRecommender.java
License:Apache License
/** * Creates a list of recommendations using item based collaborative filtering * //from www.j a va2 s .c om * @param model a model containing information about users preferences for items. Fetched from "collaborative_view" in the database * @return the list of recommendations made */ public ArrayList<CollaborativeRecommendation> RunItemRecommender(DataModel model) { ArrayList<CollaborativeRecommendation> recommendedItemsList = new ArrayList<CollaborativeRecommendation>(); try { /* Returns the degree of similarity, of two items, based on the preferences that users have expressed for the items. */ ItemSimilarity sim = new LogLikelihoodSimilarity(model); /* Given a datamodel and a similarity to produce the recommendations */ GenericItemBasedRecommender recommender = new GenericItemBasedRecommender(model, sim); this.recommender = recommender; List<RecommendedItem> recommendations = recommender.recommend(this.userId, 167); /* Looping through all recommendations and putting up to 167 items in the collaborative recommender list*/ if (!recommendations.isEmpty()) { for (RecommendedItem recommendation : recommendations) { recommendedItemsList .add(new CollaborativeRecommendation(recommendation, (int) this.userId, "item")); } } else { /*There are no recommendations for this user*/ System.out.println("No recommendations for this user in itembased"); } } catch (TasteException e) { e.printStackTrace(); } return recommendedItemsList; }
From source file:recom.java
/** * Processes requests for both HTTP <code>GET</code> and <code>POST</code> * methods.//from w ww .ja va 2s .co m * * @param request servlet request * @param response servlet response * @throws ServletException if a servlet-specific error occurs * @throws IOException if an I/O error occurs */ protected void processRequest(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException, TasteException { response.setContentType("text/html;charset=UTF-8"); try (PrintWriter out = response.getWriter()) { DataModel dm = new FileDataModel(new File("info/movies.csv")); ItemSimilarity us = new PearsonCorrelationSimilarity(dm); //UserNeighborhood neighborhood = new NearestNUserNeighborhood(25, us, dm); GenericItemBasedRecommender recommender = new GenericItemBasedRecommender(dm, us); List<RecommendedItem> recommendations = recommender.recommend(1, 5); /* TODO output your page here. You may use following sample code. */ out.println("<html>"); out.println("<head>"); out.println("<title>Servlet recom</title>"); out.println("</head>"); out.println("<body>"); out.println("<h1>Servlet recom at " + request.getContextPath() + "</h1>"); out.println("</body>"); out.println("</html>"); } }
From source file:hr.fer.tel.rovkp.homework03.task02.ItemBasedJokesRecommender.java
public static void main(String[] args) throws Exception { String fileItemsSimilarity = "./src/main/resources/item_similarity.csv"; String fileDataModel = "./src/main/resources/jester_ratings.dat"; DataModel model = new FileDataModel(new File(fileDataModel)); GenericItemBasedRecommender recommender = RecommenderUtils.itemBasedRecommender(model, fileItemsSimilarity); List<RecommendedItem> recommendations = recommender.recommend(220, 10); for (RecommendedItem recommendation : recommendations) { System.out.println(recommendation); }/*from w w w .ja va 2 s. com*/ }
From source file:hr.fer.tel.rovkp.homework03.task02.Program.java
public static void main(String[] args) throws Exception { String fileItemsSimilarity = "./src/main/resources/item_similarity.csv"; String fileDataModel = "./src/main/resources/jester_ratings.dat"; DataModel model = new FileDataModel(new File(fileDataModel)); GenericUserBasedRecommender userBased = RecommenderUtils.userBasedRecommender(model); GenericItemBasedRecommender itemBased = RecommenderUtils.itemBasedRecommender(model, fileItemsSimilarity); System.out.println("user based:"); List<RecommendedItem> recommendationsU = userBased.recommend(220, 10); for (RecommendedItem recommendation : recommendationsU) { System.out.println(recommendation); }/* www . j a v a 2s .c o m*/ System.out.println("item based:"); List<RecommendedItem> recommendationsI = itemBased.recommend(220, 10); for (RecommendedItem recommendation : recommendationsI) { System.out.println(recommendation); } }