List of usage examples for org.apache.mahout.cf.taste.recommender IDRescorer IDRescorer
IDRescorer
From source file:com.rssrecommender.services.MahoutService.java
@PostConstruct public void init() { try {//from w w w .jav a 2 s .c o m dataSource = new MysqlConnectionPoolDataSource(); dataSource.setServerName("localhost"); dataSource.setUser("root"); dataSource.setPassword("1234"); dataSource.setDatabaseName("rss_rec"); dataSource.setCachePreparedStatements(true); dataSource.setCachePrepStmts(true); dataSource.setCacheResultSetMetadata(true); dataSource.setAlwaysSendSetIsolation(true); dataSource.setElideSetAutoCommits(true); model = new MySQLJDBCDataModel(dataSource, "user_likes_article", "user_id", "article_id", "rating", null); m = new ReloadFromJDBCDataModel(model); is = new PearsonCorrelationSimilarity(m); // ItemSimilarity is = new EuclideanDistanceSimilarity(model, Weighting.WEIGHTED); // cis = new CachingItemSimilarity(is, 150); r = new GenericItemBasedRecommender(m, is); rsr = new IDRescorer() { @Override public double rescore(long id, double originalScore) { Article a = af.find((int) id); long diff = Calendar.getInstance().getTimeInMillis() - a.getDate().getTime() + 1; double time = 1.0d / (diff / (1000 * 360 * 12)); // half day period since feeds are update regularly return originalScore * time; } @Override public boolean isFiltered(long id) { //always rescore return false; } }; // Optimizer optimizer = new ConjugateGradientOptimizer(); // r = new KnnItemBasedRecommender(m, is, optimizer, 5); // } catch (TasteException ex) { Logger.getLogger(MahoutService.class.getName()).log(Level.SEVERE, null, ex); } }
From source file:net.myrrix.online.example.rescorer.FilterHalfRescorerProvider.java
License:Apache License
@Override public IDRescorer getRecommendRescorer(final long[] userIDs, MyrrixRecommender recommender, String... args) { final boolean odd = args.length > 0 && "odd".equalsIgnoreCase(args[0]); return new IDRescorer() { @Override//w w w . j a v a 2 s .c o m public double rescore(long itemID, double score) { for (long userID : userIDs) { if (odd == ((userID & 0x01) == 1)) { return Double.NaN; } } return isFiltered(itemID) ? Double.NaN : 10.0 * score; } @Override public boolean isFiltered(long itemID) { return odd == ((itemID & 0x01) == 1); } }; }
From source file:net.myrrix.online.example.rescorer.FilterHalfRescorerProvider.java
License:Apache License
@Override public IDRescorer getRecommendToAnonymousRescorer(final long[] itemIDs, MyrrixRecommender recommender, String... args) {//w w w . j ava 2 s .co m final boolean odd = args.length > 0 && "odd".equalsIgnoreCase(args[0]); return new IDRescorer() { @Override public double rescore(long itemID, double score) { for (long anItemID : itemIDs) { if (odd == ((anItemID & 0x01) == 1)) { return Double.NaN; } } return isFiltered(itemID) ? Double.NaN : 10.0 * score; } @Override public boolean isFiltered(long itemID) { return odd == ((itemID & 0x01) == 1); } }; }
From source file:net.myrrix.online.example.rescorer.FilterHalfRescorerProvider.java
License:Apache License
@Override public IDRescorer getMostPopularItemsRescorer(MyrrixRecommender recommender, String... args) { final boolean odd = args.length > 0 && "odd".equalsIgnoreCase(args[0]); return new IDRescorer() { @Override//from ww w .jav a 2 s .c o m public double rescore(long itemID, double score) { return isFiltered(itemID) ? Double.NaN : 10.0 * score; } @Override public boolean isFiltered(long itemID) { return odd == ((itemID & 0x01) == 1); } }; }