/** * Method that returns all items except the ones present in the user's test * or train sets. */ public LongSet getUnseenItems(TestUser user){ return LongUtils.setDifference(allItems, user.getSeenItems()); }
@Override public ResultList recommendRelatedItemsWithDetails(Set<Long> basket, int n, @Nullable Set<Long> candidates, @Nullable Set<Long> exclude) { if (candidates == null) { candidates = dao.getEntityIds(CommonTypes.ITEM); } if (exclude == null) { exclude = getDefaultExcludes(LongUtils.asLongSet(basket)); } if (!exclude.isEmpty()) { candidates = LongUtils.setDifference(LongUtils.asLongSet(candidates), LongUtils.asLongSet(exclude)); } ResultMap scores = scorer.scoreRelatedItemsWithDetails(basket, candidates); return recommend(n, scores); }
private LongSet getEffectiveCandidates(long user, LongSet candidates, LongSet exclude) { if (candidates == null) { candidates = getPredictableItems(user); } if (exclude == null) { exclude = getDefaultExcludes(user); } logger.debug("computing effective candidates for user {} from {} candidates and {} excluded items", user, candidates.size(), exclude.size()); if (!exclude.isEmpty()) { candidates = LongUtils.setDifference(candidates, exclude); } return candidates; }
@Nonnull @Override public ResultMap scoreWithDetails(long user, @Nonnull Collection<Long> items) { if(cachedId == user && cachedScores != null) { LongSet cachedItems = LongUtils.asLongSet(cachedScores.keySet()); if (!cachedItems.containsAll(LongUtils.asLongCollection(items))) { LongSet reqItems = LongUtils.packedSet(items); LongSortedSet diffItems = LongUtils.setDifference(reqItems, cachedItems); ResultMap newCache = scorer.scoreWithDetails(user, diffItems); cachedScores = Results.newResultMap(Iterables.concat(cachedScores, newCache)); } } else { cachedScores = scorer.scoreWithDetails(user, items); cachedId = user; } return cachedScores; }
@Nonnull @Override public MetricResult measureUser(TestUser user, ResultMap predictions, Context context) { int n = user.getTestRatings().size(); int good = predictions.size(); assert LongUtils.setDifference(LongUtils.asLongSet(predictions.keySet()), user.getTestRatings().keySet()) .isEmpty(); context.addUser(n, good); return new Coverage(n, good); }
return LongUtils.setDifference(this, mergedExclude);
@Override public ResultList recommendRelatedItemsWithDetails(Set<Long> basket, int n, @Nullable Set<Long> candidates, @Nullable Set<Long> exclude) { if (candidates == null) { candidates = dao.getEntityIds(CommonTypes.ITEM); } if (exclude == null) { exclude = getDefaultExcludes(LongUtils.asLongSet(basket)); } if (!exclude.isEmpty()) { candidates = LongUtils.setDifference(LongUtils.asLongSet(candidates), LongUtils.asLongSet(exclude)); } ResultMap scores = scorer.scoreRelatedItemsWithDetails(basket, candidates); return recommend(n, scores); }
private LongSet getEffectiveCandidates(long user, LongSet candidates, LongSet exclude) { if (candidates == null) { candidates = getPredictableItems(user); } if (exclude == null) { exclude = getDefaultExcludes(user); } logger.debug("computing effective candidates for user {} from {} candidates and {} excluded items", user, candidates.size(), exclude.size()); if (!exclude.isEmpty()) { candidates = LongUtils.setDifference(candidates, exclude); } return candidates; }
@Nonnull @Override public ResultMap scoreWithDetails(long user, @Nonnull Collection<Long> items) { if(cachedId == user && cachedScores != null) { LongSet cachedItems = LongUtils.asLongSet(cachedScores.keySet()); if (!cachedItems.containsAll(LongUtils.asLongCollection(items))) { LongSet reqItems = LongUtils.packedSet(items); LongSortedSet diffItems = LongUtils.setDifference(reqItems, cachedItems); ResultMap newCache = scorer.scoreWithDetails(user, diffItems); cachedScores = Results.newResultMap(Iterables.concat(cachedScores, newCache)); } } else { cachedScores = scorer.scoreWithDetails(user, items); cachedId = user; } return cachedScores; }
return LongUtils.setDifference(this, mergedExclude);