public FastIDSet(long[] initialKeys) { this(initialKeys.length); addAll(initialKeys); }
public FastIDSet(long[] initialKeys) { this(initialKeys.length); addAll(initialKeys); }
public FastIDSet(long[] initialKeys) { this(initialKeys.length); addAll(initialKeys); }
private FastIDSet extractAllItemIdsFromUserItemFilter(Map<Long, FastIDSet> filter) { FastIDSet result = new FastIDSet(); for (FastIDSet itemIds : filter.values()) { result.addAll(itemIds); } return result; }
private FastIDSet extractAllItemIdsFromUserItemFilter(Map<Long, FastIDSet> filter) { FastIDSet result = new FastIDSet(); for (FastIDSet itemIds : filter.values()) { result.addAll(itemIds); } return result; }
@Override protected FastIDSet doGetCandidateItems(long[] preferredItemIDs, DataModel dataModel) throws TasteException { FastIDSet candidateItemIDs = new FastIDSet(); for (long itemID : preferredItemIDs) { candidateItemIDs.addAll(similarity.allSimilarItemIDs(itemID)); } candidateItemIDs.removeAll(preferredItemIDs); return candidateItemIDs; } }
@Override protected FastIDSet doGetCandidateItems(long[] preferredItemIDs, DataModel dataModel, boolean includeKnownItems) throws TasteException { FastIDSet candidateItemIDs = new FastIDSet(); for (long itemID : preferredItemIDs) { candidateItemIDs.addAll(similarity.allSimilarItemIDs(itemID)); } if (!includeKnownItems) { candidateItemIDs.removeAll(preferredItemIDs); } return candidateItemIDs; } }
@Override protected FastIDSet doGetCandidateItems(long[] preferredItemIDs, DataModel dataModel, boolean includeKnownItems) throws TasteException { FastIDSet candidateItemIDs = new FastIDSet(); for (long itemID : preferredItemIDs) { candidateItemIDs.addAll(similarity.allSimilarItemIDs(itemID)); } if (!includeKnownItems) { candidateItemIDs.removeAll(preferredItemIDs); } return candidateItemIDs; } }
@Override protected FastIDSet getAllOtherItems(long[] theNeighborhood, long theUserID) throws TasteException { DataModel dataModel = getDataModel(); FastIDSet possibleItemIDs = new FastIDSet(); for (long userID : theNeighborhood) { possibleItemIDs.addAll(dataModel.getItemIDsFromUser(userID)); } possibleItemIDs.removeAll(dataModel.getItemIDsFromUser(theUserID)); return possibleItemIDs; }
protected FastIDSet getAllOtherItems(long[] theNeighborhood, long theUserID) throws TasteException { DataModel dataModel = getDataModel(); FastIDSet possibleItemIDs = new FastIDSet(); for (long userID : theNeighborhood) { possibleItemIDs.addAll(dataModel.getItemIDsFromUser(userID)); } possibleItemIDs.removeAll(dataModel.getItemIDsFromUser(theUserID)); return possibleItemIDs; }
@Override protected FastIDSet getAllOtherItems(long[] theNeighborhood, long theUserID, boolean includeKnownItems) throws TasteException { DataModel dataModel = getDataModel(); FastIDSet possibleItemIDs = new FastIDSet(); for (long userID : theNeighborhood) { possibleItemIDs.addAll(dataModel.getItemIDsFromUser(userID)); } if (!includeKnownItems) { possibleItemIDs.removeAll(dataModel.getItemIDsFromUser(theUserID)); } return possibleItemIDs; }
protected FastIDSet getAllOtherItems(long[] theNeighborhood, long theUserID, boolean includeKnownItems) throws TasteException { DataModel dataModel = getDataModel(); FastIDSet possibleItemIDs = new FastIDSet(); for (long userID : theNeighborhood) { possibleItemIDs.addAll(dataModel.getItemIDsFromUser(userID)); } if (!includeKnownItems) { possibleItemIDs.removeAll(dataModel.getItemIDsFromUser(theUserID)); } return possibleItemIDs; }
protected FastIDSet getAllOtherItems(long[] theNeighborhood, long theUserID, boolean includeKnownItems) throws TasteException { DataModel dataModel = getDataModel(); FastIDSet possibleItemIDs = new FastIDSet(); for (long userID : theNeighborhood) { possibleItemIDs.addAll(dataModel.getItemIDsFromUser(userID)); } if (!includeKnownItems) { possibleItemIDs.removeAll(dataModel.getItemIDsFromUser(theUserID)); } return possibleItemIDs; }
@Override protected FastIDSet getAllOtherItems(long[] theNeighborhood, long theUserID, boolean includeKnownItems) throws TasteException { DataModel dataModel = getDataModel(); FastIDSet possibleItemIDs = new FastIDSet(); for (long userID : theNeighborhood) { possibleItemIDs.addAll(dataModel.getItemIDsFromUser(userID)); } if (!includeKnownItems) { possibleItemIDs.removeAll(dataModel.getItemIDsFromUser(theUserID)); } return possibleItemIDs; }
private void addSomeOf(FastIDSet possibleItemIDs, FastIDSet itemIDs) { if (itemIDs.size() > maxItemsPerUser) { LongPrimitiveIterator it = new SamplingLongPrimitiveIterator(itemIDs.iterator(), (double) maxItemsPerUser / itemIDs.size()); while (it.hasNext()) { possibleItemIDs.add(it.nextLong()); } } else { possibleItemIDs.addAll(itemIDs); } }
private void addSomeOf(FastIDSet possibleItemIDs, FastIDSet itemIDs) { if (itemIDs.size() > maxItemsPerUser) { LongPrimitiveIterator it = new SamplingLongPrimitiveIterator(itemIDs.iterator(), (double) maxItemsPerUser / itemIDs.size()); while (it.hasNext()) { possibleItemIDs.add(it.nextLong()); } } else { possibleItemIDs.addAll(itemIDs); } }
/** * returns all items that have not been rated by the user and that were preferred by another user * that has preferred at least one item that the current user has preferred too */ @Override protected FastIDSet doGetCandidateItems(long[] preferredItemIDs, DataModel dataModel) throws TasteException { FastIDSet possibleItemsIDs = new FastIDSet(); for (long itemID : preferredItemIDs) { PreferenceArray itemPreferences = dataModel.getPreferencesForItem(itemID); int numUsersPreferringItem = itemPreferences.length(); for (int index = 0; index < numUsersPreferringItem; index++) { possibleItemsIDs.addAll(dataModel.getItemIDsFromUser(itemPreferences.getUserID(index))); } } possibleItemsIDs.removeAll(preferredItemIDs); return possibleItemsIDs; }
/** * returns all items that have not been rated by the user and that were preferred by another user * that has preferred at least one item that the current user has preferred too */ @Override protected FastIDSet doGetCandidateItems(long[] preferredItemIDs, DataModel dataModel, boolean includeKnownItems) throws TasteException { FastIDSet possibleItemsIDs = new FastIDSet(); for (long itemID : preferredItemIDs) { PreferenceArray itemPreferences = dataModel.getPreferencesForItem(itemID); int numUsersPreferringItem = itemPreferences.length(); for (int index = 0; index < numUsersPreferringItem; index++) { possibleItemsIDs.addAll(dataModel.getItemIDsFromUser(itemPreferences.getUserID(index))); } } if (!includeKnownItems) { possibleItemsIDs.removeAll(preferredItemIDs); } return possibleItemsIDs; }
private void addSomeOf(FastIDSet possibleItemIDs, FastIDSet itemIDs) { if (itemIDs.size() > maxItemsPerUser) { LongPrimitiveIterator it = new SamplingLongPrimitiveIterator(itemIDs.iterator(), (double) maxItemsPerUser / itemIDs.size()); while (it.hasNext()) { possibleItemIDs.add(it.nextLong()); } } else { possibleItemIDs.addAll(itemIDs); } }
@Test public void testStrategy() throws TasteException { FastIDSet allItemIDs = new FastIDSet(); allItemIDs.addAll(new long[] { 1L, 2L, 3L }); FastIDSet preferredItemIDs = new FastIDSet(1); preferredItemIDs.add(2L); DataModel dataModel = EasyMock.createMock(DataModel.class); EasyMock.expect(dataModel.getNumItems()).andReturn(3); EasyMock.expect(dataModel.getItemIDs()).andReturn(allItemIDs.iterator()); PreferenceArray prefArrayOfUser123 = new GenericUserPreferenceArray(Collections.singletonList( new GenericPreference(123L, 2L, 1.0f))); CandidateItemsStrategy strategy = new AllUnknownItemsCandidateItemsStrategy(); EasyMock.replay(dataModel); FastIDSet candidateItems = strategy.getCandidateItems(123L, prefArrayOfUser123, dataModel, false); assertEquals(2, candidateItems.size()); assertTrue(candidateItems.contains(1L)); assertTrue(candidateItems.contains(3L)); EasyMock.verify(dataModel); }