Package org.grouplens.lenskit.scored

Examples of org.grouplens.lenskit.scored.ScoredIdListBuilder


            // Normalize and truncate the row
            MutableSparseVector normalized = rowNormalizer.normalize(rowItem, currentRow, null);
            truncator.truncate(normalized);

            // Build up and save the row
            ScoredIdListBuilder bld = new ScoredIdListBuilder(normalized.size());
            // TODO Allow the symbols in use to be customized
            List<ScoredId> row = bld.addChannels(normalized.getChannelVectorSymbols())
                                    .addTypedChannels(normalized.getChannelSymbols())
                                    .addAll(ScoredIds.collectionFromVector(normalized))
                                    .sort(ScoredIds.scoreOrder().reverse())
                                    .finish();
            matrix.add(row);
View Full Code Here


        // finalize the item data into vectors
        SparseVector[] itemRatings = new SparseVector[n];

        for (int i = 0; i < n; i++) {
            final long item = items.getKey(i);
            ScoredIdListBuilder ratings = itemRatingData.get(item);
            SparseVector v = ratings.buildVector();
            assert v.size() == ratings.size();
            itemRatings[i] = v;
            // release some memory
            ratings.clear();
        }

        logger.debug("item data completed");
        return new ItemItemBuildContext(items, itemRatings, userItems);
    }
View Full Code Here

                normalizer.normalize(uid, summary, normed);

                for (VectorEntry rating : normed) {
                    final long item = rating.getKey();
                    // get the item's rating accumulator
                    ScoredIdListBuilder ivect = itemRatings.get(item);
                    if (ivect == null) {
                        ivect = ScoredIds.newListBuilder(100);
                        itemRatings.put(item, ivect);
                    }
                    ivect.add(uid, rating.getValue());
                }

                // get the item's candidate set
                userItems.put(uid, LongUtils.packedSet(summary.keySet()));
            }
View Full Code Here

        int[] indices = new int[size];
        // Copy backwards so the scored list is sorted.
        for (int i = size - 1; i >= 0; i--) {
            indices[i] = heap.dequeue();
        }
        ScoredIdListBuilder bld = ScoredIds.newListBuilder(size);
        for (int i : indices) {
            bld.add(items.get(i), scores.get(i));
        }

        assert heap.isEmpty();

        clear();

        return bld.finish();
    }
View Full Code Here

            accum.put(pred.getKey(), v);
        }

        List<ScoredId> results = accum.finish();
        if (!scores.getChannelSymbols().isEmpty()) {
            ScoredIdListBuilder builder = ScoredIds.newListBuilder(results.size());
            List<Pair<Symbol,SparseVector>> cvs = Lists.newArrayList();
            List<Pair<TypedSymbol<?>, Long2ObjectMap<?>>> channels = Lists.newArrayList();
            for (Symbol sym: scores.getChannelVectorSymbols()) {
                builder.addChannel(sym, Double.NaN);
                cvs.add(Pair.of(sym, scores.getChannelVector(sym)));
            }
            for (TypedSymbol<?> sym: scores.getChannelSymbols()) {
                if (!sym.getType().equals(Double.class)) {
                    builder.addChannel(sym);
                    channels.add((Pair) Pair.of(sym, scores.getChannel(sym)));
                }
            }
            for (ScoredId id: results) {
                ScoredIdBuilder copy = ScoredIds.copyBuilder(id);
                for (Pair<Symbol,SparseVector> pair: cvs) {
                    if (pair.getRight().containsKey(id.getId())) {
                        copy.addChannel(pair.getLeft(), pair.getRight().get(id.getId()));
                    }
                }
                for (Pair<TypedSymbol<?>, Long2ObjectMap<?>> pair: channels) {
                    if (pair.getRight().containsKey(id.getId())) {
                        copy.addChannel((TypedSymbol) pair.getLeft(), pair.getRight().get(id.getId()));
                    }
                }
                builder.add(copy.build());
            }
            return builder.finish();
        } else {
            return results;
        }
    }
View Full Code Here

        for (ScoredId sid: recs) {
            items.add(sid.getId());
        }

        SparseVector scores = scorer.score(user, items);
        ScoredIdListBuilder builder = ScoredIds.newListBuilder(recs.size());
        builder.addChannel(ORIGINAL_SCORE_SYMBOL);
        for (ScoredId sid: recs) {
            // FIXME Make this not allocate so much memory
            builder.add(ScoredIds.copyBuilder(sid)
                                 .setScore(scores.get(sid.getId(), Double.NaN))
                                 .addChannel(ORIGINAL_SCORE_SYMBOL, sid.getScore())
                                 .build());
        }
        return builder.build();
    }
View Full Code Here

TOP

Related Classes of org.grouplens.lenskit.scored.ScoredIdListBuilder

Copyright © 2018 www.massapicom. All rights reserved.
All source code are property of their respective owners. Java is a trademark of Sun Microsystems, Inc and owned by ORACLE Inc. Contact coftware#gmail.com.