List of usage examples for org.apache.mahout.cf.taste.impl.recommender CachingRecommender CachingRecommender
public CachingRecommender(Recommender recommender) throws TasteException
From source file:com.aguin.stock.recommender.StockRecommender.java
License:Apache License
public static void main(String... args) throws FileNotFoundException, TasteException, IOException { MongoDBDataModel model = new MongoDBDataModel("localhost", ServerAddress.defaultPort(), "userdb", "prefs", true, true, null);//from w ww .j a v a 2s . c o m // create a slope one recommender on the data CachingRecommender slopeOneRecommender = new CachingRecommender(new SlopeOneRecommender(model)); run(model, slopeOneRecommender); }
From source file:com.mycompany.xplor_recommendation_engine.Xplor.java
/** * @param args the command line arguments * @throws java.sql.SQLException//from w w w.jav a 2 s . com * @throws java.io.IOException */ public static void main(String[] args) throws SQLException, IOException, TasteException { FileConverter fc = FileConverter.getFileConverter(); int[] columnSpecs = new int[2]; columnSpecs[0] = 2; columnSpecs[1] = 2; fc.convertToCSV("xplor_development", "blog_profile_maps", columnSpecs); // Calibrate recommender for csv file DataModel model = new FileDataModel(new File("blog_profile_maps.csv")); UserSimilarity similarity = new TanimotoCoefficientSimilarity(model); UserNeighborhood neighborhood = new ThresholdUserNeighborhood(0.1, similarity, model); Recommender recommender = new GenericBooleanPrefUserBasedRecommender(model, neighborhood, similarity); Recommender cachingRecommender = new CachingRecommender(recommender); // Establish JDBC connection for (int i = 1; i <= model.getNumUsers(); i++) { List<RecommendedItem> recommendations = cachingRecommender.recommend(i, 10); for (RecommendedItem recommendation : recommendations) { // Store recommendations in recommendations table } } // Store recommendations in database }
From source file:com.packtpub.mahout.cookbook.chapter01.App.java
License:Apache License
public static void main(String[] args) throws IOException, TasteException, OptionException { CreateCsvRatingsFile();//from w w w .j av a 2 s . c om // create data source (model) - from the csv file File ratingsFile = new File(outputFile); DataModel model = new FileDataModel(ratingsFile); // create a simple recommender on our data CachingRecommender cachingRecommender = new CachingRecommender(new SlopeOneRecommender(model)); // for all users for (LongPrimitiveIterator it = model.getUserIDs(); it.hasNext();) { long userId = it.nextLong(); // get the recommendations for the user List<RecommendedItem> recommendations = cachingRecommender.recommend(userId, 10); // if empty write something if (recommendations.size() == 0) { System.out.print("User "); System.out.print(userId); System.out.println(": no recommendations"); } // print the list of recommendations for each for (RecommendedItem recommendedItem : recommendations) { System.out.print("User "); System.out.print(userId); System.out.print(": "); System.out.println(recommendedItem); } } }
From source file:com.unresyst.DealRecommender.java
License:Apache License
public DealRecommender() throws IOException, TasteException, InterruptedException { // run pg:ingress to open up hole in Heroku firewall // according to Heroku documentation, connections made through this hole // will remain open after the hole closes (60 seconds) runCommand("source \"$HOME/.rvm/scripts/rvm\"", "rvm use ree-1.8.7-head@deallist-backend > /dev/null", "heroku pg:ingress --app rewardsnap-ds-production"); PGPoolingDataSource source = new PGPoolingDataSource(); source.setServerName("ec2-174-129-209-243.compute-1.amazonaws.com"); source.setDatabaseName("ds20669xa45e2uv"); source.setUser("uq88n3pavsbyot"); source.setPassword("p8tj3rn061zvbthpc9e7nfbxv0"); PostgreSQLJDBCDataModel model = new PostgreSQLJDBCDataModel(source, "ratings", "user_id", "deal_id", "rating", "created_at"); recommender = new CachingRecommender(new SlopeOneRecommender(model)); }
From source file:com.unresyst.GroupLensRecommender.java
License:Apache License
public GroupLensRecommender(String filename) throws IOException, TasteException { System.out.println("in GroupLensRecommender constructor part II"); DataModel dataModel = new FileDataModel(new File(filename)); recommender = new CachingRecommender(new SlopeOneRecommender(dataModel)); }
From source file:edu.uci.ics.sourcerer.ml.ApiRecommender.java
License:Open Source License
public ApiRecommender(DataModel bcModel) throws TasteException { // UserSimilarity similarity = new EuclideanDistanceSimilarity(bcModel,Weighting.WEIGHTED); // UserSimilarity similarity = new LogLikelihoodSimilarity(bcModel); //UserSimilarity similarity = new PearsonCorrelationSimilarity(bcModel); UserSimilarity similarity = new TanimotoCoefficientSimilarity(bcModel); // UserSimilarity similarity = new MySqlTanimotoCoefficientUserSimilarity( // ManualPoolingMysqlDataSourceFactory.getDataSource( // "jdbc:mysql://mondego.calit2.uci.edu:3307/sourcerer_test", // "sourcerer", // "")); // UserSimilarity similarity = new HammingDistanceSimilarity(bcModel); UserNeighborhood neighborhood = new NearestNUserNeighborhood(15, 0.4, similarity, bcModel, 1.0); recommender = new CachingRecommender(new GenericUserBasedRecommender(bcModel, neighborhood, similarity)); }
From source file:recommender.RecommenderSamples.java
License:Open Source License
public List recommendUsers(int idUser) { List recommendationList = new ArrayList(); try {/* w w w.ja va 2 s . c o m*/ File ratingsFile = new File(DBManager.Table.USER_RATINGS.getTemporalFile()); DataModel model = new FileDataModel(ratingsFile); // create a simple recommender on our data CachingRecommender cachingRecommender = new CachingRecommender(new SlopeOneRecommender(model)); // get the recommendations for the user List<RecommendedItem> recommendations = cachingRecommender.recommend(idUser, 8); // print the list of recommendations for each for (RecommendedItem recommendedItem : recommendations) recommendationList.add(recommendedItem.getItemID()); } catch (TasteException | IOException ex) { Logger.getLogger(RecommenderSamples.class.getName()).log(Level.SEVERE, null, ex); } return recommendationList; }