List of usage examples for org.apache.mahout.cf.taste.recommender Rescorer isFiltered
boolean isFiltered(T thing);
From source file:net.myrrix.online.MostSimilarItemIterator.java
License:Apache License
@Override public RecommendedItem next() { FastByIDMap.MapEntry<float[]> entry = Yiterator.next(); long itemID = entry.getKey(); if (userTagIDs.contains(itemID)) { return null; }//from w w w . ja v a 2s .c o m for (long l : toItemIDs) { if (l == itemID) { return null; } } Rescorer<LongPair> rescorer1 = this.rescorer; float[] candidateFeatures = entry.getValue(); double candidateFeaturesNorm = SimpleVectorMath.norm(candidateFeatures); double total = 0.0; int length = itemFeatures.length; for (int i = 0; i < length; i++) { long toItemID = toItemIDs[i]; LongPair cachedPair = null; if (rescorer1 != null) { cachedPair = new LongPair(itemID, toItemID); if (rescorer1.isFiltered(cachedPair)) { return null; } } double similarity = SimpleVectorMath.dot(candidateFeatures, itemFeatures[i]) / (candidateFeaturesNorm * itemFeatureNorms[i]); if (!LangUtils.isFinite(similarity)) { return null; } if (rescorer1 != null) { similarity = rescorer1.rescore(cachedPair, similarity); if (!LangUtils.isFinite(similarity)) { return null; } } total += similarity; } float result = (float) (total / length); Preconditions.checkState(LangUtils.isFinite(result), "Bad similarity value"); delegate.set(itemID, result); return delegate; }
From source file:net.myrrix.online.MultiLongPairRescorer.java
License:Apache License
@Override public boolean isFiltered(LongPair itemIDs) { for (Rescorer<LongPair> rescorer : rescorers) { if (rescorer.isFiltered(itemIDs)) { return true; }//from w ww . j a va 2 s . co m } return false; }
From source file:net.myrrix.online.MultiRescorerProviderTest.java
License:Apache License
@Test public void testMultiMostSimilarItemsRescorer() { RescorerProvider multi = new MultiRescorerProvider(new SimpleModRescorerProvider(2), new SimpleModRescorerProvider(3)); Rescorer<LongPair> provider = multi.getMostSimilarItemsRescorer((MyrrixRecommender) null); assertNotNull(provider);/*from ww w . j a v a 2 s . c o m*/ assertTrue(provider instanceof MultiLongPairRescorer); assertTrue(provider.isFiltered(new LongPair(2, 3))); assertTrue(provider.isFiltered(new LongPair(2, 6))); assertFalse(provider.isFiltered(new LongPair(6, 12))); }