List of usage examples for org.apache.mahout.cf.taste.impl.common FastIDSet toArray
public long[] toArray()
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; }