public static RecommenderResult RecommendUser( this IMatrixFactorizationRecommender recommender, UserFeatures user) { if (recommender == null) { throw new ArgumentNullException(nameof(recommender)); } if (user == null) { throw new ArgumentNullException(nameof(user)); } return(recommender.RecommendUser(user, RecommenderResultBuilderFactory.Instance)); }
public UserFeatures?GetUserFeatures(string userId) { if (userId == null) { throw new ArgumentNullException(nameof(userId)); } if (!this.userMap.ContainsKey(userId)) { return(null); } var xu = this.userFactors.Row(this.userMap[userId]); var user = new UserFeatures(xu); return(user); }
public TResult RecommendUser <TResult>(string userId, IResultBuilderFactory <TResult> resultBuilderFactory) { if (userId == null) { throw new ArgumentNullException(nameof(userId)); } if (!this.userMap.ContainsKey(userId)) { return(resultBuilderFactory.CreateEmpty()); } var xu = this.userFactors.Row(this.userMap[userId]); var user = new UserFeatures(xu); return(this.RecommendUser(user, resultBuilderFactory)); }
public TResult RecommendUser <TResult>(UserFeatures user, IResultBuilderFactory <TResult> resultBuilderFactory) { if (user == null) { throw new ArgumentNullException(nameof(user)); } var xu = user.Vector; var yi = Vector <double> .Build.Dense(this.factors); var resultBuilder = resultBuilderFactory.CreateBuilder(maximumCapacity: this.itemMap.Count); foreach (var item in this.itemMap) { this.itemFactors.Row(item.Value, yi); resultBuilder.Append(item.Key, xu.DotProduct(yi)); } return(resultBuilder.ToResult()); }
public static RecommenderResult RankUsers( this IMatrixFactorizationRecommender recommender, UserFeatures user, List <KeyValuePair <string, UserFeatures> > users) { if (recommender == null) { throw new ArgumentNullException(nameof(recommender)); } if (user == null) { throw new ArgumentNullException(nameof(user)); } if (users == null) { throw new ArgumentNullException(nameof(users)); } return(recommender.RankUsers(user, users, RecommenderResultBuilderFactory.Instance)); }
public TResult RankUsers <TResult>(string userId, List <KeyValuePair <string, UserFeatures> > users, IResultBuilderFactory <TResult> resultBuilderFactory) { if (userId == null) { throw new ArgumentNullException(nameof(userId)); } if (users == null) { throw new ArgumentNullException(nameof(users)); } if (!this.userMap.ContainsKey(userId)) { return(resultBuilderFactory.CreateEmpty()); } var xu = this.userFactors.Row(this.userMap[userId]); var user = new UserFeatures(xu); return(this.RankUsers(user, users, resultBuilderFactory)); }