Example usage for org.apache.mahout.cf.taste.impl.common FastIDSet toArray

List of usage examples for org.apache.mahout.cf.taste.impl.common FastIDSet toArray

Introduction

In this page you can find the example usage for org.apache.mahout.cf.taste.impl.common FastIDSet toArray.

Prototype

public long[] toArray() 

Source Link

Usage

From source file:com.predictionmarketing.itemrecommend.CliMF.java

License:Apache License

private void splitReplyIDs(long userID, Usersitemidset idset) throws TasteException {
    FastIDSet itemids = dataModel.getItemIDsFromUser(userID);
    FastIDSet replyids = new FastIDSet();
    FastIDSet noreplyids = new FastIDSet();
    for (long item : itemids) {
        long writer = postwriter.get(item);
        if (dataModel.getPreferenceValue(userID, item) > 0) {
            if (testuser == userID && writer == coveruser) {//testusercoveruser information
                Total_Test_records++;/*from   w  w  w . j a  v  a 2 s  .c o m*/
            } else {
                replyids.add(item);
            }
        } else {
            noreplyids.add(item);
        }
    }
    if (userID == testuser) {
        left_records += replyids.size();
    }
    Total_records += replyids.size();
    idset.setReplyidset(replyids.toArray());
    idset.setNoreplyidset(noreplyids.toArray());
}

From source file:com.yelp.recommend.RestaurantSimilarity.java

License:Apache License

@Override
public long[] allSimilarItemIDs(long itemID) {
    FastIDSet allSimilarItemIDs = new FastIDSet();
    LongPrimitiveIterator allItemIDs = RestaurantData.keySetIterator();
    while (allItemIDs.hasNext()) {
        long possiblySimilarItemID = allItemIDs.nextLong();
        if (!Double.isNaN(itemSimilarity(itemID, possiblySimilarItemID))) {
            allSimilarItemIDs.add(possiblySimilarItemID);
        }//from w  w w .  ja v  a  2s  .c  o m
    }
    return allSimilarItemIDs.toArray();
}

From source file:io.prediction.engines.base.mahout.AllValidItemsCandidateItemsStrategy.java

License:Apache License

@Override
public FastIDSet getCandidateItems(long userID, PreferenceArray preferencesFromUser, DataModel dataModel)
        throws TasteException {
    long[] seenItemIDs;
    if (this.seenDataMap != null) {
        FastIDSet ids = seenDataMap.get(userID);
        if (ids != null) {
            seenItemIDs = ids.toArray();
        } else {/*from w w w . j a  va2  s  . c  om*/
            // user doesn't have any seen action
            seenItemIDs = null;
        }
    } else {
        seenItemIDs = null;
    }

    return doGetCandidateItemsInternal(this.validItemIDs, seenItemIDs);
}

From source file:org.easyrec.mahout.EasyrecInMemoryDataModelTest.java

License:Open Source License

@Test
public void testEasyrecDataModel_getItemIDsFromUser() throws TasteException {
    DataModel easyrecDataModel = new EasyrecDataModel(TENANT_ID, RATE_ACTION_TYPE_ID, HAS_RATING_VALUES,
            mahoutDataModelMappingDAO);//  w  ww .  jav a  2s.  co  m
    easyrecDataModel = new EasyrecInMemoryDataModel(easyrecDataModel);

    FastIDSet itemIds = easyrecDataModel.getItemIDsFromUser(1);
    long[] itemIdsArray = itemIds.toArray();
    String ids = "";

    for (long itemId : itemIdsArray) {
        ids += itemId;
    }

    assertEquals("123", ids);
}

From source file:org.plista.kornakapi.core.recommender.ParallelTopItems.java

License:Apache License

public static List<RecommendedItem> getTopItems(int howMany, int numThreads, FastIDSet possibleItemIDs,
        final IDRescorer rescorer, final TopItems.Estimator<Long> estimator) throws TasteException {

    Preconditions.checkArgument(numThreads > 1);
    Preconditions.checkNotNull(possibleItemIDs);
    Preconditions.checkNotNull(estimator);

    //long s = System.currentTimeMillis();

    long[] itemIDsToEstimate = possibleItemIDs.toArray();

    //long d = System.currentTimeMillis() - s;
    //System.out.println("Preparation " + d);

    //s = System.currentTimeMillis();
    ExecutorService queue = Executors.newFixedThreadPool(numThreads);

    int fromIndex = 0;
    List<EstimationWorker> estimatorWorkers = Lists.newArrayListWithCapacity(numThreads);
    for (int n = 0; n < numThreads; n++) {

        int toIndex = Math.min(fromIndex + itemIDsToEstimate.length / numThreads, itemIDsToEstimate.length);
        EstimationWorker worker = new EstimationWorker(howMany, itemIDsToEstimate, fromIndex, toIndex, rescorer,
                estimator);/*from w  w w . j a v a  2  s. c  om*/
        estimatorWorkers.add(worker);
        queue.execute(worker);
        fromIndex = toIndex;
    }

    queue.shutdown();
    try {
        queue.awaitTermination(5, TimeUnit.SECONDS);
    } catch (InterruptedException e) {
        throw new RuntimeException(e);
    }
    //d = System.currentTimeMillis() - s;
    //System.out.println("Estimation " + d);

    List<RecommendedItem> topItems = Lists.newArrayList();
    for (int n = 0; n < numThreads; n++) {
        topItems.addAll(estimatorWorkers.get(n).topItems);
    }

    if (topItems.isEmpty()) {
        return Collections.EMPTY_LIST;
    }
    if (topItems.size() < howMany) {
        howMany = topItems.size();
    }
    Collections.sort(topItems, ByValueRecommendedItemComparator.getInstance());
    List<RecommendedItem> recommendedItems = topItems.subList(0, howMany);

    return recommendedItems;
}