public IList <RecommendedItem> RecommendedBecause(Object userID, Object itemID, int howMany) { if (userID == null) { throw new ArgumentNullException("userID is null"); } if (itemID == null) { throw new ArgumentNullException("itemID is null"); } if (howMany < 1) { throw new ArgumentException("howMany must be at least 1"); } DataModel model = this.DataModel; User user = model.GetUser(userID); Item recommendedItem = model.GetItem(itemID); TopItems.Estimator <Item> estimator = new RecommendedBecauseEstimator(user, recommendedItem, correlation); ICollection <Item> allUserItems = new HashedSet <Item>(); Preference[] prefs = user.GetPreferencesAsArray(); foreach (Preference pref in prefs) { allUserItems.Add(pref.Item); } allUserItems.Remove(recommendedItem); return(TopItems.GetTopItems(howMany, allUserItems, NullRescorer <Item> .Instance, estimator)); }
public List <RecommendedItem> recommendedBecause(long userID, long itemID, int howMany) { DataModel model = this.getDataModel(); TopItems.Estimator <long> estimator = new RecommendedBecauseEstimator(this, userID, itemID); PreferenceArray array = model.getPreferencesFromUser(userID); int size = array.length(); FastIDSet set = new FastIDSet(size); for (int i = 0; i < size; i++) { set.add(array.getItemID(i)); } set.remove(itemID); return(TopItems.getTopItems(howMany, set.GetEnumerator(), null, estimator)); }
public List <IRecommendedItem> RecommendedBecause(long userID, long itemID, int howMany) { //Preconditions.checkArgument(howMany >= 1, "howMany must be at least 1"); IDataModel model = GetDataModel(); TopItems.IEstimator <long> estimator = new RecommendedBecauseEstimator(this, userID, itemID); IPreferenceArray prefs = model.GetPreferencesFromUser(userID); int size = prefs.Length(); FastIDSet allUserItems = new FastIDSet(size); for (int i = 0; i < size; i++) { allUserItems.Add(prefs.GetItemID(i)); } allUserItems.Remove(itemID); return(TopItems.GetTopItems(howMany, allUserItems.GetEnumerator(), null, estimator)); }