private void bgWorker_DoWork(object sender, DoWorkEventArgs e) { UserBehaviorDatabaseParser parser = new UserBehaviorDatabaseParser(); UserBehaviorDatabase db = parser.LoadUserBehaviorDatabase(e.Argument as string); recommender.Train(db); recommender.Save(savedModel); }
public List <Suggestion> GetSuggest(UserBehavior db, long userId) { IRater rater = new SimpleRater(); IComparer comparer = new CorrelationUserComparer(); recommender = new ItemCollaborativeFilterRecommender(comparer, rater, 50); recommender.Train(db); var suggestion = recommender.GetSuggestions(userId, 500); return(suggestion); }
public ActionResult Index(string search = "") { if (search == "") { int id = Convert.ToInt32(Session["id"].ToString()); string email = context.login.Where(m => m.Id == id).FirstOrDefault().Email; int realid = context.students.Where(m => m.Email == email).FirstOrDefault().Id; IRater rate = new LinearRater(-4, 2, 0.5, 1); IComparer compare = new CorrelationUserComparer(); recommender = new UserCollaborativeFilterRecommender(compare, rate, 200); UserBehaviorDatabaseParser parser = new UserBehaviorDatabaseParser(); UserBehaviorDatabase db1 = parser.LoadUserBehaviorDatabase("/Data/NewBehavior.txt"); UserBehaviorTransformer ubt = new UserBehaviorTransformer(db1); recommender.Train(db1); int userId; int ratings; userId = realid; ratings = 2; List <Suggestion> result = new List <Suggestion>(); List <RecomendedArticles> rem = new List <RecomendedArticles>(); List <Suggestion> result2 = new List <Suggestion>(); RecomendedArticles recom; if (ratings >= 1 && ratings <= 100) { new GetRecommendation { UserID = userId, Ratings = ratings }; result = recommender.GetSuggestions(userId, ratings); result2 = recommender.GetSuggestions(userId, 6); } foreach (Suggestion suggestion in result) { var ye = context.ufiles.Where(m => m.Id == suggestion.ArticleID).FirstOrDefault(); recom = new RecomendedArticles() { Name = ye.Name, UpdatedFileName = ye.UpdatedFileName, UplodedBy = ye.UplodedBy, Description = ye.Description, Filename = ye.Filename, imagepath = ye.imagepath, UplodedDate = ye.UplodedDate, Rating = suggestion.Rating, Id = ye.Id, }; rem.Add(recom); } NRViewModel recomendedArticles = new NRViewModel(); recomendedArticles.uplodedFiles = context.ufiles.OrderByDescending(m => m.Id).Take(6).ToList(); recomendedArticles.RecomendedArticles = rem; return(View(recomendedArticles)); } else { NRViewModel recomendedArticles = new NRViewModel(); recomendedArticles.uplodedFiles = context.ufiles.OrderByDescending(m => m.Id).Where(m => m.Name.Contains(search)).Take(6).ToList(); if (recomendedArticles.uplodedFiles == null) { ViewBag.messagea = "no item found"; } ViewBag.message = "search"; return(View(recomendedArticles)); } }