public static List <int> RecommendSpreadingActivation(int bookId, SimilarityCacheModels simCacheModel, string userId = null, int howMany = 6) { var sw = Stopwatch.StartNew(); RecommenderSpreadingActivation recommender = new RecommenderSpreadingActivation(2, 500, 50, simCacheModel); List <int> result = recommender.Recommend(bookId, userId, howMany); System.Console.WriteLine($"Spreading recommendation took: {sw.ElapsedMilliseconds}ms"); return(result); }
private static void TestRecSpreadingActivation(List <int> bookIds, int maxLevel, int numberOfNSimilarNeighbors, int numberOfNeighborsForNextLevel) { List <Recommendation> recommendationsRSA = new List <Recommendation>(); String commentRDEBS = "userId=null, maxLevel=" + maxLevel + ", numberOfSimilarNeighbors=" + numberOfNSimilarNeighbors + ", numberOfNeighborsForNextLevel=" + numberOfNeighborsForNextLevel + ", backSpreading=yes"; BookRecommenderContext db = new BookRecommenderContext(); SpreadingRecommenderCache model = new SpreadingRecommenderCache(); model.Initialize(db); foreach (int bookIdI in bookIds) { RecommenderSpreadingActivation recommender = new RecommenderSpreadingActivation( maxLevel, numberOfNSimilarNeighbors, numberOfNeighborsForNextLevel, new SimilarityCacheModels(model)); List <int> recommendationListI = recommender.Recommend(bookIdI, null, HOW_MANY_REC); Recommendation recommendationI = new Recommendation(bookIdI, recommendationListI); recommendationsRSA.Add(recommendationI); System.Console.WriteLine(recommendationI.exportAsString()); } String fileName = "RecommenderSpreadingActivationLevel" + maxLevel + "SimilarNeighbors" + numberOfNSimilarNeighbors + "NeighborsForNextLevel" + numberOfNeighborsForNextLevel + ".rec"; ExportsRecommendationsToFile(recommendationsRSA, commentRDEBS, fileName); }