@Override public Iterable<Long> getUsers() { if (model == null) { generateDatamodel(); } List<Long> users = new ArrayList<>(); LongPrimitiveIterator lpi = model.getUserIDs(); while (lpi.hasNext()) { users.add(lpi.nextLong()); } return users; }
@Override public Collection<String> getUserCluster(int n) throws TasteException { FastIDSet userIDs = delegate.getUserCluster(n); Collection<String> translated = Lists.newArrayListWithCapacity(userIDs.size()); LongPrimitiveIterator it = userIDs.iterator(); while (it.hasNext()) { translated.add(Long.toString(it.nextLong())); } return translated; }
private Collection<String> translate(FastIDSet itemIDs) { Collection<String> result = Lists.newArrayListWithCapacity(itemIDs.size()); LongPrimitiveIterator it = itemIDs.iterator(); while (it.hasNext()) { result.add(untranslateItem(it.nextLong())); } return result; }
private static FastByIDMap<Integer> createIDMapping(int size, LongPrimitiveIterator idIterator) { FastByIDMap<Integer> mapping = new FastByIDMap<Integer>(size); int index = 0; while (idIterator.hasNext()) { mapping.put(idIterator.nextLong(), index++); } return mapping; }
private static FastByIDMap<Integer> createIDMapping(int size, LongPrimitiveIterator idIterator) { FastByIDMap<Integer> mapping = new FastByIDMap<Integer>(size); int index = 0; while (idIterator.hasNext()) { mapping.put(idIterator.nextLong(), index++); } return mapping; }
private int countPreferences(DataModel dataModel) throws TasteException { int numPreferences = 0; LongPrimitiveIterator userIDs = dataModel.getUserIDs(); while (userIDs.hasNext()) { PreferenceArray preferencesFromUser = dataModel.getPreferencesFromUser(userIDs.nextLong()); numPreferences += preferencesFromUser.length(); } return numPreferences; }
private int countPreferences(DataModel dataModel) throws TasteException { int numPreferences = 0; LongPrimitiveIterator userIDs = dataModel.getUserIDs(); while (userIDs.hasNext()) { PreferenceArray preferencesFromUser = dataModel.getPreferencesFromUser(userIDs.nextLong()); numPreferences += preferencesFromUser.length(); } return numPreferences; }
private int countPreferences() throws TasteException { int numPreferences = 0; LongPrimitiveIterator userIDs = dataModel.getUserIDs(); while (userIDs.hasNext()) { PreferenceArray preferencesFromUser = dataModel.getPreferencesFromUser(userIDs.nextLong()); numPreferences += preferencesFromUser.length(); } return numPreferences; }
@Override public long[] allSimilarItemIDs(long itemID) throws TasteException { FastIDSet allSimilarItemIDs = new FastIDSet(); LongPrimitiveIterator allItemIDs = dataModel.getItemIDs(); while (allItemIDs.hasNext()) { long possiblySimilarItemID = allItemIDs.nextLong(); if (!Double.isNaN(itemSimilarity(itemID, possiblySimilarItemID))) { allSimilarItemIDs.add(possiblySimilarItemID); } } return allSimilarItemIDs.toArray(); }
private int countPreferences() throws TasteException { int numPreferences = 0; LongPrimitiveIterator userIDs = dataModel.getUserIDs(); while (userIDs.hasNext()) { PreferenceArray preferencesFromUser = dataModel.getPreferencesFromUser(userIDs.nextLong()); numPreferences += preferencesFromUser.length(); } return numPreferences; }
private static long[] keysInOrder(FastByIDMap<?> map) { FastIDSet keys = new FastIDSet(map.size()); LongPrimitiveIterator it = map.keySetIterator(); while (it.hasNext()) { keys.add(it.nextLong()); } long[] keysArray = keys.toArray(); Arrays.sort(keysArray); return keysArray; }
private static FastIDSet keysToSet(FastByIDMap<?> map) { FastIDSet result = new FastIDSet(map.size()); LongPrimitiveIterator it = map.keySetIterator(); while (it.hasNext()) { result.add(it.nextLong()); } return result; }
@Override public void run() { List<Vector> featureVectors = Lists.newArrayList(); while (itemIDsFromUser.hasNext()) { long itemID = itemIDsFromUser.nextLong(); featureVectors.add(features.getItemFeatureColumn(itemIndex(itemID))); } Vector userFeatures = usesImplicitFeedback ? implicitFeedbackSolver.solve(sparseUserRatingVector(userPrefs)) : AlternatingLeastSquaresSolver.solve(featureVectors, ratingVector(userPrefs), lambda, numFeatures); features.setFeatureColumnInU(userIndex(userID), userFeatures); } });
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); } }
double getAveragePreference() throws TasteException { RunningAverage average = new FullRunningAverage(); LongPrimitiveIterator it = dataModel.getUserIDs(); while (it.hasNext()) { for (Preference pref : dataModel.getPreferencesFromUser(it.nextLong())) { average.addDatum(pref.getValue()); } } return average.getAverage(); }
double getAveragePreference() throws TasteException { RunningAverage average = new FullRunningAverage(); LongPrimitiveIterator it = dataModel.getUserIDs(); while (it.hasNext()) { for (Preference pref : dataModel.getPreferencesFromUser(it.nextLong())) { average.addDatum(pref.getValue()); } } return average.getAverage(); }
double getAveragePreference() throws TasteException { RunningAverage average = new FullRunningAverage(); LongPrimitiveIterator it = dataModel.getUserIDs(); while (it.hasNext()) { for (Preference pref : dataModel.getPreferencesFromUser(it.nextLong())) { average.addDatum(pref.getValue()); } } return average.getAverage(); }
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 testPeekSkip() { LongPrimitiveIterator it = new LongPrimitiveArrayIterator(new long[] {3,2,1}); assertEquals(3, it.peek()); it.skip(2); assertEquals(1, it.nextLong()); assertFalse(it.hasNext()); }