@Override public boolean hasNext() { return !datumConsumed || delegate.hasNext(); }
@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 void doNext() { int toSkip = geometricDistribution.sample(); delegate.skip(toSkip); if (delegate.hasNext()) { next = delegate.next(); } else { hasNext = false; } }
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 void doNext() { int toSkip = geometricDistribution.sample(); delegate.skip(toSkip); if (delegate.hasNext()) { next = delegate.next(); } else { hasNext = false; } }
private void doNext() { int toSkip = geometricDistribution.sample(); delegate.skip(toSkip); if (delegate.hasNext()) { next = delegate.next(); } else { hasNext = false; } }
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; }
@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 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); } });
protected OpenIntObjectHashMap<Vector> itemFeaturesMapping(LongPrimitiveIterator itemIDs, int numItems, double[][] featureMatrix) { OpenIntObjectHashMap<Vector> mapping = new OpenIntObjectHashMap<Vector>(numItems); while (itemIDs.hasNext()) { long itemID = itemIDs.next(); mapping.put((int) itemID, new DenseVector(featureMatrix[itemIndex(itemID)], true)); } return mapping; }
protected OpenIntObjectHashMap<Vector> itemFeaturesMapping(LongPrimitiveIterator itemIDs, int numItems, double[][] featureMatrix) { OpenIntObjectHashMap<Vector> mapping = new OpenIntObjectHashMap<>(numItems); while (itemIDs.hasNext()) { long itemID = itemIDs.next(); int itemIndex = itemIndex(itemID); mapping.put(itemIndex, new DenseVector(featureMatrix[itemIndex(itemID)], true)); } return mapping; }
protected OpenIntObjectHashMap<Vector> userFeaturesMapping(LongPrimitiveIterator userIDs, int numUsers, double[][] featureMatrix) { OpenIntObjectHashMap<Vector> mapping = new OpenIntObjectHashMap<>(numUsers); while (userIDs.hasNext()) { long userID = userIDs.next(); int userIndex = userIndex(userID); mapping.put(userIndex, new DenseVector(featureMatrix[userIndex(userID)], true)); } return mapping; }
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); } }