List of usage examples for org.apache.mahout.cf.taste.impl.model.file FileDataModel FileDataModel
public FileDataModel(File dataFile, String delimiterRegex) throws IOException
From source file:be.ugent.tiwi.sleroux.newsrec.newsreccollaborativefiltering.MahoutTermRecommender.java
public Map<Long, List<RecommendedItem>> makeRecommendations(int n) throws IOException, TasteException { DataModel model = new FileDataModel(new File(mahoutInputFile), ";"); UserSimilarity similarity = new TanimotoCoefficientSimilarity(model); UserNeighborhood neighborhood = new NearestNUserNeighborhood(2, similarity, model); Recommender recommender = new GenericUserBasedRecommender(model, neighborhood, similarity); LongPrimitiveIterator it = model.getUserIDs(); Map<Long, List<RecommendedItem>> output = new HashMap<>(model.getNumUsers()); while (it.hasNext()) { long user = it.nextLong(); List<RecommendedItem> items = recommender.recommend(user, n); output.put(user, items);// w w w . j a va 2s . c om } return output; }
From source file:hr.fer.tel.rovkp.lab03.HybridMatrix.java
public static void main(String[] args) throws IOException, TasteException { DataModel model = new FileDataModel(new File("./src/main/resources/jester_ratings.dat"), ","); ItemSimilarity lSim = new FileItemSimilarity(new File("./src/main/resources/item_similarity.csv")); CollaborativeItemSimilarity cSim = new CollaborativeItemSimilarity(model); double factor = 0.5; try (PrintWriter writer = new PrintWriter(new FileWriter(hybridPath))) { for (int i = 1; i <= 150; i++) { for (int j = i + 1; j <= 150; j++) try { double sim = factor * lSim.itemSimilarity(i, j) + (1 - factor) * cSim.itemSimilarity(i, j); if (!Double.isNaN(sim)) writer.println(i + "," + j + "," + sim); } catch (Exception ex) { }//w ww. j av a 2s.c om } } }
From source file:hr.fer.tel.rovkp.lab03.HybridRecommenderEvaluator.java
public static void main(String[] args) throws IOException, TasteException { DataModel model = new FileDataModel(new File("./src/main/resources/jester_ratings.dat"), ","); System.out.println(new RMSRecommenderEvaluator().evaluate(hybridRecommender(), null, model, 0.7, 1.0)); }