You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@mahout.apache.org by sr...@apache.org on 2009/11/22 07:51:15 UTC
svn commit: r883043 - in /lucene/mahout/trunk:
core/src/main/java/org/apache/mahout/cf/taste/eval/
core/src/main/java/org/apache/mahout/cf/taste/impl/eval/
core/src/main/java/org/apache/mahout/cf/taste/impl/recommender/
core/src/main/java/org/apache/ma...
Author: srowen
Date: Sun Nov 22 06:51:11 2009
New Revision: 883043
URL: http://svn.apache.org/viewvc?rev=883043&view=rev
Log:
Introduce IDRescorer to replace Rescorer<Long> for performance
Added:
lucene/mahout/trunk/core/src/main/java/org/apache/mahout/cf/taste/recommender/IDRescorer.java
- copied, changed from r835524, lucene/mahout/trunk/core/src/main/java/org/apache/mahout/cf/taste/recommender/Rescorer.java
Modified:
lucene/mahout/trunk/core/src/main/java/org/apache/mahout/cf/taste/eval/RecommenderIRStatsEvaluator.java
lucene/mahout/trunk/core/src/main/java/org/apache/mahout/cf/taste/impl/eval/GenericRecommenderIRStatsEvaluator.java
lucene/mahout/trunk/core/src/main/java/org/apache/mahout/cf/taste/impl/recommender/ByRescoreComparator.java
lucene/mahout/trunk/core/src/main/java/org/apache/mahout/cf/taste/impl/recommender/CachingRecommender.java
lucene/mahout/trunk/core/src/main/java/org/apache/mahout/cf/taste/impl/recommender/GenericItemBasedRecommender.java
lucene/mahout/trunk/core/src/main/java/org/apache/mahout/cf/taste/impl/recommender/GenericUserBasedRecommender.java
lucene/mahout/trunk/core/src/main/java/org/apache/mahout/cf/taste/impl/recommender/ItemAverageRecommender.java
lucene/mahout/trunk/core/src/main/java/org/apache/mahout/cf/taste/impl/recommender/ItemUserAverageRecommender.java
lucene/mahout/trunk/core/src/main/java/org/apache/mahout/cf/taste/impl/recommender/NullRescorer.java
lucene/mahout/trunk/core/src/main/java/org/apache/mahout/cf/taste/impl/recommender/RandomRecommender.java
lucene/mahout/trunk/core/src/main/java/org/apache/mahout/cf/taste/impl/recommender/TopItems.java
lucene/mahout/trunk/core/src/main/java/org/apache/mahout/cf/taste/impl/recommender/TreeClusteringRecommender.java
lucene/mahout/trunk/core/src/main/java/org/apache/mahout/cf/taste/impl/recommender/TreeClusteringRecommender2.java
lucene/mahout/trunk/core/src/main/java/org/apache/mahout/cf/taste/impl/recommender/slopeone/SlopeOneRecommender.java
lucene/mahout/trunk/core/src/main/java/org/apache/mahout/cf/taste/impl/recommender/svd/SVDRecommender.java
lucene/mahout/trunk/core/src/main/java/org/apache/mahout/cf/taste/recommender/Recommender.java
lucene/mahout/trunk/core/src/test/java/org/apache/mahout/cf/taste/impl/recommender/CachingRecommenderTest.java
lucene/mahout/trunk/core/src/test/java/org/apache/mahout/cf/taste/impl/recommender/MockRecommender.java
lucene/mahout/trunk/core/src/test/java/org/apache/mahout/cf/taste/impl/recommender/NullRescorerTest.java
lucene/mahout/trunk/core/src/test/java/org/apache/mahout/cf/taste/impl/recommender/ReversingRescorer.java
lucene/mahout/trunk/examples/src/main/java/org/apache/mahout/cf/taste/ejb/RecommenderEJB.java
lucene/mahout/trunk/examples/src/main/java/org/apache/mahout/cf/taste/ejb/RecommenderEJBBean.java
lucene/mahout/trunk/examples/src/main/java/org/apache/mahout/cf/taste/ejb/RecommenderEJBLocal.java
lucene/mahout/trunk/examples/src/main/java/org/apache/mahout/cf/taste/example/bookcrossing/BookCrossingRecommender.java
lucene/mahout/trunk/examples/src/main/java/org/apache/mahout/cf/taste/example/grouplens/GroupLensRecommender.java
lucene/mahout/trunk/examples/src/main/java/org/apache/mahout/cf/taste/example/jester/JesterRecommender.java
lucene/mahout/trunk/examples/src/main/java/org/apache/mahout/cf/taste/example/netflix/NetflixRecommender.java
Modified: lucene/mahout/trunk/core/src/main/java/org/apache/mahout/cf/taste/eval/RecommenderIRStatsEvaluator.java
URL: http://svn.apache.org/viewvc/lucene/mahout/trunk/core/src/main/java/org/apache/mahout/cf/taste/eval/RecommenderIRStatsEvaluator.java?rev=883043&r1=883042&r2=883043&view=diff
==============================================================================
--- lucene/mahout/trunk/core/src/main/java/org/apache/mahout/cf/taste/eval/RecommenderIRStatsEvaluator.java (original)
+++ lucene/mahout/trunk/core/src/main/java/org/apache/mahout/cf/taste/eval/RecommenderIRStatsEvaluator.java Sun Nov 22 06:51:11 2009
@@ -19,7 +19,7 @@
import org.apache.mahout.cf.taste.common.TasteException;
import org.apache.mahout.cf.taste.model.DataModel;
-import org.apache.mahout.cf.taste.recommender.Rescorer;
+import org.apache.mahout.cf.taste.recommender.IDRescorer;
/**
* <p>Implementations collect information retrieval-related statistics on a {@link
@@ -46,7 +46,7 @@
IRStatistics evaluate(RecommenderBuilder recommenderBuilder,
DataModelBuilder dataModelBuilder,
DataModel dataModel,
- Rescorer<Long> rescorer,
+ IDRescorer rescorer,
int at,
double relevanceThreshold,
double evaluationPercentage) throws TasteException;
Modified: lucene/mahout/trunk/core/src/main/java/org/apache/mahout/cf/taste/impl/eval/GenericRecommenderIRStatsEvaluator.java
URL: http://svn.apache.org/viewvc/lucene/mahout/trunk/core/src/main/java/org/apache/mahout/cf/taste/impl/eval/GenericRecommenderIRStatsEvaluator.java?rev=883043&r1=883042&r2=883043&view=diff
==============================================================================
--- lucene/mahout/trunk/core/src/main/java/org/apache/mahout/cf/taste/impl/eval/GenericRecommenderIRStatsEvaluator.java (original)
+++ lucene/mahout/trunk/core/src/main/java/org/apache/mahout/cf/taste/impl/eval/GenericRecommenderIRStatsEvaluator.java Sun Nov 22 06:51:11 2009
@@ -28,6 +28,7 @@
import org.apache.mahout.cf.taste.impl.common.FullRunningAverage;
import org.apache.mahout.cf.taste.impl.common.FullRunningAverageAndStdDev;
import org.apache.mahout.cf.taste.impl.common.LongPrimitiveIterator;
+import org.apache.mahout.cf.taste.recommender.IDRescorer;
import org.apache.mahout.common.RandomUtils;
import org.apache.mahout.cf.taste.impl.common.RunningAverage;
import org.apache.mahout.cf.taste.impl.common.RunningAverageAndStdDev;
@@ -38,7 +39,6 @@
import org.apache.mahout.cf.taste.model.PreferenceArray;
import org.apache.mahout.cf.taste.recommender.RecommendedItem;
import org.apache.mahout.cf.taste.recommender.Recommender;
-import org.apache.mahout.cf.taste.recommender.Rescorer;
import org.slf4j.Logger;
import org.slf4j.LoggerFactory;
@@ -60,7 +60,7 @@
/**
* Pass as "relevanceThreshold" argument to
- * {@link #evaluate(RecommenderBuilder, DataModelBuilder, DataModel, Rescorer, int, double, double)}
+ * {@link #evaluate(RecommenderBuilder, DataModelBuilder, DataModel, IDRescorer, int, double, double)}
* to have it attempt to compute a reasonable threshold. Note that this will impact performance.
*/
public static final double CHOOSE_THRESHOLD = Double.NaN;
@@ -75,7 +75,7 @@
public IRStatistics evaluate(RecommenderBuilder recommenderBuilder,
DataModelBuilder dataModelBuilder,
DataModel dataModel,
- Rescorer<Long> rescorer,
+ IDRescorer rescorer,
int at,
double relevanceThreshold,
double evaluationPercentage) throws TasteException {
Modified: lucene/mahout/trunk/core/src/main/java/org/apache/mahout/cf/taste/impl/recommender/ByRescoreComparator.java
URL: http://svn.apache.org/viewvc/lucene/mahout/trunk/core/src/main/java/org/apache/mahout/cf/taste/impl/recommender/ByRescoreComparator.java?rev=883043&r1=883042&r2=883043&view=diff
==============================================================================
--- lucene/mahout/trunk/core/src/main/java/org/apache/mahout/cf/taste/impl/recommender/ByRescoreComparator.java (original)
+++ lucene/mahout/trunk/core/src/main/java/org/apache/mahout/cf/taste/impl/recommender/ByRescoreComparator.java Sun Nov 22 06:51:11 2009
@@ -17,8 +17,8 @@
package org.apache.mahout.cf.taste.impl.recommender;
+import org.apache.mahout.cf.taste.recommender.IDRescorer;
import org.apache.mahout.cf.taste.recommender.RecommendedItem;
-import org.apache.mahout.cf.taste.recommender.Rescorer;
import java.io.Serializable;
import java.util.Comparator;
@@ -29,9 +29,9 @@
*/
final class ByRescoreComparator implements Comparator<RecommendedItem>, Serializable {
- private final Rescorer<Long> rescorer;
+ private final IDRescorer rescorer;
- ByRescoreComparator(Rescorer<Long> rescorer) {
+ ByRescoreComparator(IDRescorer rescorer) {
this.rescorer = rescorer;
}
Modified: lucene/mahout/trunk/core/src/main/java/org/apache/mahout/cf/taste/impl/recommender/CachingRecommender.java
URL: http://svn.apache.org/viewvc/lucene/mahout/trunk/core/src/main/java/org/apache/mahout/cf/taste/impl/recommender/CachingRecommender.java?rev=883043&r1=883042&r2=883043&view=diff
==============================================================================
--- lucene/mahout/trunk/core/src/main/java/org/apache/mahout/cf/taste/impl/recommender/CachingRecommender.java (original)
+++ lucene/mahout/trunk/core/src/main/java/org/apache/mahout/cf/taste/impl/recommender/CachingRecommender.java Sun Nov 22 06:51:11 2009
@@ -20,13 +20,13 @@
import org.apache.mahout.cf.taste.common.Refreshable;
import org.apache.mahout.cf.taste.common.TasteException;
import org.apache.mahout.cf.taste.impl.common.Cache;
+import org.apache.mahout.cf.taste.recommender.IDRescorer;
import org.apache.mahout.common.LongPair;
import org.apache.mahout.cf.taste.impl.common.RefreshHelper;
import org.apache.mahout.cf.taste.impl.common.Retriever;
import org.apache.mahout.cf.taste.model.DataModel;
import org.apache.mahout.cf.taste.recommender.RecommendedItem;
import org.apache.mahout.cf.taste.recommender.Recommender;
-import org.apache.mahout.cf.taste.recommender.Rescorer;
import org.slf4j.Logger;
import org.slf4j.LoggerFactory;
@@ -49,7 +49,7 @@
private final Cache<Long, Recommendations> recommendationCache;
private final Cache<LongPair, Float> estimatedPrefCache;
private final RefreshHelper refreshHelper;
- private Rescorer<Long> currentRescorer;
+ private IDRescorer currentRescorer;
public CachingRecommender(Recommender recommender) throws TasteException {
if (recommender == null) {
@@ -73,11 +73,11 @@
this.refreshHelper.addDependency(recommender);
}
- private synchronized Rescorer<Long> getCurrentRescorer() {
+ private synchronized IDRescorer getCurrentRescorer() {
return currentRescorer;
}
- private synchronized void setCurrentRescorer(Rescorer<Long> rescorer) {
+ private synchronized void setCurrentRescorer(IDRescorer rescorer) {
if (rescorer == null) {
if (currentRescorer != null) {
currentRescorer = null;
@@ -97,7 +97,7 @@
}
@Override
- public List<RecommendedItem> recommend(long userID, int howMany, Rescorer<Long> rescorer)
+ public List<RecommendedItem> recommend(long userID, int howMany, IDRescorer rescorer)
throws TasteException {
if (howMany < 1) {
throw new IllegalArgumentException("howMany must be at least 1");
@@ -186,7 +186,7 @@
public Recommendations get(Long key) throws TasteException {
log.debug("Retrieving new recommendations for user ID '{}'", key);
int howMany = maxHowMany[0];
- Rescorer<Long> rescorer = getCurrentRescorer();
+ IDRescorer rescorer = getCurrentRescorer();
List<RecommendedItem> recommendations = rescorer == null ?
recommender.recommend(key, howMany) :
recommender.recommend(key, howMany, rescorer);
Modified: lucene/mahout/trunk/core/src/main/java/org/apache/mahout/cf/taste/impl/recommender/GenericItemBasedRecommender.java
URL: http://svn.apache.org/viewvc/lucene/mahout/trunk/core/src/main/java/org/apache/mahout/cf/taste/impl/recommender/GenericItemBasedRecommender.java?rev=883043&r1=883042&r2=883043&view=diff
==============================================================================
--- lucene/mahout/trunk/core/src/main/java/org/apache/mahout/cf/taste/impl/recommender/GenericItemBasedRecommender.java (original)
+++ lucene/mahout/trunk/core/src/main/java/org/apache/mahout/cf/taste/impl/recommender/GenericItemBasedRecommender.java Sun Nov 22 06:51:11 2009
@@ -21,6 +21,7 @@
import org.apache.mahout.cf.taste.common.TasteException;
import org.apache.mahout.cf.taste.impl.common.FastIDSet;
import org.apache.mahout.cf.taste.impl.common.FullRunningAverage;
+import org.apache.mahout.cf.taste.recommender.IDRescorer;
import org.apache.mahout.common.LongPair;
import org.apache.mahout.cf.taste.impl.common.RefreshHelper;
import org.apache.mahout.cf.taste.impl.common.RunningAverage;
@@ -75,7 +76,7 @@
}
@Override
- public List<RecommendedItem> recommend(long userID, int howMany, Rescorer<Long> rescorer)
+ public List<RecommendedItem> recommend(long userID, int howMany, IDRescorer rescorer)
throws TasteException {
if (howMany < 1) {
throw new IllegalArgumentException("howMany must be at least 1");
Modified: lucene/mahout/trunk/core/src/main/java/org/apache/mahout/cf/taste/impl/recommender/GenericUserBasedRecommender.java
URL: http://svn.apache.org/viewvc/lucene/mahout/trunk/core/src/main/java/org/apache/mahout/cf/taste/impl/recommender/GenericUserBasedRecommender.java?rev=883043&r1=883042&r2=883043&view=diff
==============================================================================
--- lucene/mahout/trunk/core/src/main/java/org/apache/mahout/cf/taste/impl/recommender/GenericUserBasedRecommender.java (original)
+++ lucene/mahout/trunk/core/src/main/java/org/apache/mahout/cf/taste/impl/recommender/GenericUserBasedRecommender.java Sun Nov 22 06:51:11 2009
@@ -20,6 +20,7 @@
import org.apache.mahout.cf.taste.common.Refreshable;
import org.apache.mahout.cf.taste.common.TasteException;
import org.apache.mahout.cf.taste.impl.common.FastIDSet;
+import org.apache.mahout.cf.taste.recommender.IDRescorer;
import org.apache.mahout.common.LongPair;
import org.apache.mahout.cf.taste.impl.common.RefreshHelper;
import org.apache.mahout.cf.taste.model.DataModel;
@@ -68,7 +69,7 @@
}
@Override
- public List<RecommendedItem> recommend(long userID, int howMany, Rescorer<Long> rescorer)
+ public List<RecommendedItem> recommend(long userID, int howMany, IDRescorer rescorer)
throws TasteException {
if (howMany < 1) {
throw new IllegalArgumentException("howMany must be at least 1");
Modified: lucene/mahout/trunk/core/src/main/java/org/apache/mahout/cf/taste/impl/recommender/ItemAverageRecommender.java
URL: http://svn.apache.org/viewvc/lucene/mahout/trunk/core/src/main/java/org/apache/mahout/cf/taste/impl/recommender/ItemAverageRecommender.java?rev=883043&r1=883042&r2=883043&view=diff
==============================================================================
--- lucene/mahout/trunk/core/src/main/java/org/apache/mahout/cf/taste/impl/recommender/ItemAverageRecommender.java (original)
+++ lucene/mahout/trunk/core/src/main/java/org/apache/mahout/cf/taste/impl/recommender/ItemAverageRecommender.java Sun Nov 22 06:51:11 2009
@@ -28,8 +28,8 @@
import org.apache.mahout.cf.taste.impl.common.RunningAverage;
import org.apache.mahout.cf.taste.model.DataModel;
import org.apache.mahout.cf.taste.model.PreferenceArray;
+import org.apache.mahout.cf.taste.recommender.IDRescorer;
import org.apache.mahout.cf.taste.recommender.RecommendedItem;
-import org.apache.mahout.cf.taste.recommender.Rescorer;
import org.slf4j.Logger;
import org.slf4j.LoggerFactory;
@@ -69,7 +69,7 @@
}
@Override
- public List<RecommendedItem> recommend(long userID, int howMany, Rescorer<Long> rescorer)
+ public List<RecommendedItem> recommend(long userID, int howMany, IDRescorer rescorer)
throws TasteException {
if (howMany < 1) {
throw new IllegalArgumentException("howMany must be at least 1");
Modified: lucene/mahout/trunk/core/src/main/java/org/apache/mahout/cf/taste/impl/recommender/ItemUserAverageRecommender.java
URL: http://svn.apache.org/viewvc/lucene/mahout/trunk/core/src/main/java/org/apache/mahout/cf/taste/impl/recommender/ItemUserAverageRecommender.java?rev=883043&r1=883042&r2=883043&view=diff
==============================================================================
--- lucene/mahout/trunk/core/src/main/java/org/apache/mahout/cf/taste/impl/recommender/ItemUserAverageRecommender.java (original)
+++ lucene/mahout/trunk/core/src/main/java/org/apache/mahout/cf/taste/impl/recommender/ItemUserAverageRecommender.java Sun Nov 22 06:51:11 2009
@@ -28,8 +28,8 @@
import org.apache.mahout.cf.taste.impl.common.RunningAverage;
import org.apache.mahout.cf.taste.model.DataModel;
import org.apache.mahout.cf.taste.model.PreferenceArray;
+import org.apache.mahout.cf.taste.recommender.IDRescorer;
import org.apache.mahout.cf.taste.recommender.RecommendedItem;
-import org.apache.mahout.cf.taste.recommender.Rescorer;
import org.slf4j.Logger;
import org.slf4j.LoggerFactory;
@@ -73,7 +73,7 @@
}
@Override
- public List<RecommendedItem> recommend(long userID, int howMany, Rescorer<Long> rescorer)
+ public List<RecommendedItem> recommend(long userID, int howMany, IDRescorer rescorer)
throws TasteException {
if (howMany < 1) {
throw new IllegalArgumentException("howMany must be at least 1");
Modified: lucene/mahout/trunk/core/src/main/java/org/apache/mahout/cf/taste/impl/recommender/NullRescorer.java
URL: http://svn.apache.org/viewvc/lucene/mahout/trunk/core/src/main/java/org/apache/mahout/cf/taste/impl/recommender/NullRescorer.java?rev=883043&r1=883042&r2=883043&view=diff
==============================================================================
--- lucene/mahout/trunk/core/src/main/java/org/apache/mahout/cf/taste/impl/recommender/NullRescorer.java (original)
+++ lucene/mahout/trunk/core/src/main/java/org/apache/mahout/cf/taste/impl/recommender/NullRescorer.java Sun Nov 22 06:51:11 2009
@@ -17,21 +17,22 @@
package org.apache.mahout.cf.taste.impl.recommender;
+import org.apache.mahout.cf.taste.recommender.IDRescorer;
import org.apache.mahout.common.LongPair;
import org.apache.mahout.cf.taste.recommender.Rescorer;
/** <p>A simple {@link Rescorer} which always returns the original score.</p> */
-public final class NullRescorer<T> implements Rescorer<T> {
+public final class NullRescorer<T> implements Rescorer<T>, IDRescorer {
- private static final Rescorer<Long> userOrItemInstance = new NullRescorer<Long>();
+ private static final IDRescorer userOrItemInstance = new NullRescorer<Long>();
private static final Rescorer<LongPair> itemItemPairInstance = new NullRescorer<LongPair>();
private static final Rescorer<LongPair> userUserPairInstance = new NullRescorer<LongPair>();
- public static Rescorer<Long> getItemInstance() {
+ public static IDRescorer getItemInstance() {
return userOrItemInstance;
}
- public static Rescorer<Long> getUserInstance() {
+ public static IDRescorer getUserInstance() {
return userOrItemInstance;
}
@@ -63,6 +64,16 @@
}
@Override
+ public double rescore(long ID, double originalScore) {
+ return originalScore;
+ }
+
+ @Override
+ public boolean isFiltered(long ID) {
+ return false;
+ }
+
+ @Override
public String toString() {
return "NullRescorer";
}
Modified: lucene/mahout/trunk/core/src/main/java/org/apache/mahout/cf/taste/impl/recommender/RandomRecommender.java
URL: http://svn.apache.org/viewvc/lucene/mahout/trunk/core/src/main/java/org/apache/mahout/cf/taste/impl/recommender/RandomRecommender.java?rev=883043&r1=883042&r2=883043&view=diff
==============================================================================
--- lucene/mahout/trunk/core/src/main/java/org/apache/mahout/cf/taste/impl/recommender/RandomRecommender.java (original)
+++ lucene/mahout/trunk/core/src/main/java/org/apache/mahout/cf/taste/impl/recommender/RandomRecommender.java Sun Nov 22 06:51:11 2009
@@ -17,8 +17,8 @@
package org.apache.mahout.cf.taste.impl.recommender;
+import org.apache.mahout.cf.taste.recommender.IDRescorer;
import org.apache.mahout.cf.taste.recommender.RecommendedItem;
-import org.apache.mahout.cf.taste.recommender.Rescorer;
import org.apache.mahout.cf.taste.common.TasteException;
import org.apache.mahout.cf.taste.common.Refreshable;
import org.apache.mahout.cf.taste.model.DataModel;
@@ -64,7 +64,7 @@
}
@Override
- public List<RecommendedItem> recommend(long userID, int howMany, Rescorer<Long> rescorer) throws TasteException {
+ public List<RecommendedItem> recommend(long userID, int howMany, IDRescorer rescorer) throws TasteException {
DataModel dataModel = getDataModel();
int numItems = dataModel.getNumItems();
List<RecommendedItem> result = new ArrayList<RecommendedItem>(howMany);
Modified: lucene/mahout/trunk/core/src/main/java/org/apache/mahout/cf/taste/impl/recommender/TopItems.java
URL: http://svn.apache.org/viewvc/lucene/mahout/trunk/core/src/main/java/org/apache/mahout/cf/taste/impl/recommender/TopItems.java?rev=883043&r1=883042&r2=883043&view=diff
==============================================================================
--- lucene/mahout/trunk/core/src/main/java/org/apache/mahout/cf/taste/impl/recommender/TopItems.java (original)
+++ lucene/mahout/trunk/core/src/main/java/org/apache/mahout/cf/taste/impl/recommender/TopItems.java Sun Nov 22 06:51:11 2009
@@ -21,8 +21,8 @@
import org.apache.mahout.cf.taste.impl.common.LongPrimitiveIterator;
import org.apache.mahout.cf.taste.impl.similarity.GenericItemSimilarity;
import org.apache.mahout.cf.taste.impl.similarity.GenericUserSimilarity;
+import org.apache.mahout.cf.taste.recommender.IDRescorer;
import org.apache.mahout.cf.taste.recommender.RecommendedItem;
-import org.apache.mahout.cf.taste.recommender.Rescorer;
import java.util.ArrayList;
import java.util.Collections;
@@ -40,7 +40,7 @@
public static List<RecommendedItem> getTopItems(int howMany,
LongPrimitiveIterator possibleItemIDs,
- Rescorer<Long> rescorer,
+ IDRescorer rescorer,
Estimator<Long> estimator) throws TasteException {
if (possibleItemIDs == null || estimator == null) {
throw new IllegalArgumentException("argument is null");
@@ -73,7 +73,7 @@
public static long[] getTopUsers(int howMany,
LongPrimitiveIterator allUserIDs,
- Rescorer<Long> rescorer,
+ IDRescorer rescorer,
Estimator<Long> estimator) throws TasteException {
Queue<SimilarUser> topUsers = new PriorityQueue<SimilarUser>(howMany + 1, Collections.reverseOrder());
boolean full = false;
Modified: lucene/mahout/trunk/core/src/main/java/org/apache/mahout/cf/taste/impl/recommender/TreeClusteringRecommender.java
URL: http://svn.apache.org/viewvc/lucene/mahout/trunk/core/src/main/java/org/apache/mahout/cf/taste/impl/recommender/TreeClusteringRecommender.java?rev=883043&r1=883042&r2=883043&view=diff
==============================================================================
--- lucene/mahout/trunk/core/src/main/java/org/apache/mahout/cf/taste/impl/recommender/TreeClusteringRecommender.java (original)
+++ lucene/mahout/trunk/core/src/main/java/org/apache/mahout/cf/taste/impl/recommender/TreeClusteringRecommender.java Sun Nov 22 06:51:11 2009
@@ -23,6 +23,7 @@
import org.apache.mahout.cf.taste.impl.common.FastIDSet;
import org.apache.mahout.cf.taste.impl.common.FullRunningAverage;
import org.apache.mahout.cf.taste.impl.common.LongPrimitiveIterator;
+import org.apache.mahout.cf.taste.recommender.IDRescorer;
import org.apache.mahout.common.Pair;
import org.apache.mahout.common.RandomUtils;
import org.apache.mahout.cf.taste.impl.common.RefreshHelper;
@@ -186,7 +187,7 @@
}
@Override
- public List<RecommendedItem> recommend(long userID, int howMany, Rescorer<Long> rescorer)
+ public List<RecommendedItem> recommend(long userID, int howMany, IDRescorer rescorer)
throws TasteException {
if (howMany < 1) {
throw new IllegalArgumentException("howMany must be at least 1");
Modified: lucene/mahout/trunk/core/src/main/java/org/apache/mahout/cf/taste/impl/recommender/TreeClusteringRecommender2.java
URL: http://svn.apache.org/viewvc/lucene/mahout/trunk/core/src/main/java/org/apache/mahout/cf/taste/impl/recommender/TreeClusteringRecommender2.java?rev=883043&r1=883042&r2=883043&view=diff
==============================================================================
--- lucene/mahout/trunk/core/src/main/java/org/apache/mahout/cf/taste/impl/recommender/TreeClusteringRecommender2.java (original)
+++ lucene/mahout/trunk/core/src/main/java/org/apache/mahout/cf/taste/impl/recommender/TreeClusteringRecommender2.java Sun Nov 22 06:51:11 2009
@@ -23,6 +23,7 @@
import org.apache.mahout.cf.taste.impl.common.FastIDSet;
import org.apache.mahout.cf.taste.impl.common.FullRunningAverage;
import org.apache.mahout.cf.taste.impl.common.LongPrimitiveIterator;
+import org.apache.mahout.cf.taste.recommender.IDRescorer;
import org.apache.mahout.common.RandomUtils;
import org.apache.mahout.cf.taste.impl.common.RefreshHelper;
import org.apache.mahout.cf.taste.impl.common.RunningAverage;
@@ -146,7 +147,7 @@
}
@Override
- public List<RecommendedItem> recommend(long userID, int howMany, Rescorer<Long> rescorer)
+ public List<RecommendedItem> recommend(long userID, int howMany, IDRescorer rescorer)
throws TasteException {
if (howMany < 1) {
throw new IllegalArgumentException("howMany must be at least 1");
Modified: lucene/mahout/trunk/core/src/main/java/org/apache/mahout/cf/taste/impl/recommender/slopeone/SlopeOneRecommender.java
URL: http://svn.apache.org/viewvc/lucene/mahout/trunk/core/src/main/java/org/apache/mahout/cf/taste/impl/recommender/slopeone/SlopeOneRecommender.java?rev=883043&r1=883042&r2=883043&view=diff
==============================================================================
--- lucene/mahout/trunk/core/src/main/java/org/apache/mahout/cf/taste/impl/recommender/slopeone/SlopeOneRecommender.java (original)
+++ lucene/mahout/trunk/core/src/main/java/org/apache/mahout/cf/taste/impl/recommender/slopeone/SlopeOneRecommender.java Sun Nov 22 06:51:11 2009
@@ -29,8 +29,8 @@
import org.apache.mahout.cf.taste.impl.recommender.TopItems;
import org.apache.mahout.cf.taste.model.DataModel;
import org.apache.mahout.cf.taste.model.PreferenceArray;
+import org.apache.mahout.cf.taste.recommender.IDRescorer;
import org.apache.mahout.cf.taste.recommender.RecommendedItem;
-import org.apache.mahout.cf.taste.recommender.Rescorer;
import org.apache.mahout.cf.taste.recommender.slopeone.DiffStorage;
import org.slf4j.Logger;
import org.slf4j.LoggerFactory;
@@ -95,7 +95,7 @@
}
@Override
- public List<RecommendedItem> recommend(long userID, int howMany, Rescorer<Long> rescorer)
+ public List<RecommendedItem> recommend(long userID, int howMany, IDRescorer rescorer)
throws TasteException {
if (howMany < 1) {
throw new IllegalArgumentException("howMany must be at least 1");
Modified: lucene/mahout/trunk/core/src/main/java/org/apache/mahout/cf/taste/impl/recommender/svd/SVDRecommender.java
URL: http://svn.apache.org/viewvc/lucene/mahout/trunk/core/src/main/java/org/apache/mahout/cf/taste/impl/recommender/svd/SVDRecommender.java?rev=883043&r1=883042&r2=883043&view=diff
==============================================================================
--- lucene/mahout/trunk/core/src/main/java/org/apache/mahout/cf/taste/impl/recommender/svd/SVDRecommender.java (original)
+++ lucene/mahout/trunk/core/src/main/java/org/apache/mahout/cf/taste/impl/recommender/svd/SVDRecommender.java Sun Nov 22 06:51:11 2009
@@ -25,6 +25,7 @@
import org.apache.mahout.cf.taste.impl.common.FastIDSet;
import org.apache.mahout.cf.taste.impl.common.FullRunningAverage;
import org.apache.mahout.cf.taste.impl.common.LongPrimitiveIterator;
+import org.apache.mahout.cf.taste.recommender.IDRescorer;
import org.apache.mahout.common.RandomUtils;
import org.apache.mahout.cf.taste.impl.common.RefreshHelper;
import org.apache.mahout.cf.taste.impl.common.RunningAverage;
@@ -34,7 +35,6 @@
import org.apache.mahout.cf.taste.model.Preference;
import org.apache.mahout.cf.taste.recommender.RecommendedItem;
import org.apache.mahout.cf.taste.recommender.Recommender;
-import org.apache.mahout.cf.taste.recommender.Rescorer;
import org.slf4j.Logger;
import org.slf4j.LoggerFactory;
@@ -172,7 +172,7 @@
@Override
public List<RecommendedItem> recommend(long userID,
int howMany,
- Rescorer<Long> rescorer) throws TasteException {
+ IDRescorer rescorer) throws TasteException {
if (howMany < 1) {
throw new IllegalArgumentException("howMany must be at least 1");
}
Copied: lucene/mahout/trunk/core/src/main/java/org/apache/mahout/cf/taste/recommender/IDRescorer.java (from r835524, lucene/mahout/trunk/core/src/main/java/org/apache/mahout/cf/taste/recommender/Rescorer.java)
URL: http://svn.apache.org/viewvc/lucene/mahout/trunk/core/src/main/java/org/apache/mahout/cf/taste/recommender/IDRescorer.java?p2=lucene/mahout/trunk/core/src/main/java/org/apache/mahout/cf/taste/recommender/IDRescorer.java&p1=lucene/mahout/trunk/core/src/main/java/org/apache/mahout/cf/taste/recommender/Rescorer.java&r1=835524&r2=883043&rev=883043&view=diff
==============================================================================
--- lucene/mahout/trunk/core/src/main/java/org/apache/mahout/cf/taste/recommender/Rescorer.java (original)
+++ lucene/mahout/trunk/core/src/main/java/org/apache/mahout/cf/taste/recommender/IDRescorer.java Sun Nov 22 06:51:11 2009
@@ -18,29 +18,26 @@
package org.apache.mahout.cf.taste.recommender;
/**
- * <p>A {@link Rescorer} simply assigns a new "score" to a thing like an ID of an item
- * or user which a {@link Recommender} is considering returning as a top
- * recommendation. It may be used to arbitrarily re-rank the results according to application-specific logic before
- * returning recommendations. For example, an application may want to boost the score of items in a certain category
- * just for one request.</p>
- *
- * <p>A {@link Rescorer} can also exclude a thing from consideration entirely by returning <code>true</code> from {@link
- * #isFiltered(Object)}.</p>
+ * <p>A {@link Rescorer} which operates on {@code long} primitive IDs, rather than
+ * arbitrary {@link Object}s. This is provided since most uses of this interface
+ * in the framework take IDs (as {@code long}) as an argument, and so this
+ * can be used to avoid unnecessary boxing/unboxing.</p>
*/
-public interface Rescorer<T> {
+public interface IDRescorer {
/**
- * @param thing thing to rescore
+ * @param ID ID of thing (user, item, etc.) to rescore
* @param originalScore original score
* @return modified score, or {@link Double#NaN} to indicate that this should be excluded entirely
*/
- double rescore(T thing, double originalScore);
+ double rescore(long ID, double originalScore);
/**
* Returns <code>true</code> to exclude the given thing.
*
- * @param thing the thing to filter
+ * @param ID ID of thing (user, item, etc.) to rescore
* @return <code>true</code> to exclude, <code>false</code> otherwise
*/
- boolean isFiltered(T thing);
-}
+ boolean isFiltered(long ID);
+
+}
\ No newline at end of file
Modified: lucene/mahout/trunk/core/src/main/java/org/apache/mahout/cf/taste/recommender/Recommender.java
URL: http://svn.apache.org/viewvc/lucene/mahout/trunk/core/src/main/java/org/apache/mahout/cf/taste/recommender/Recommender.java?rev=883043&r1=883042&r2=883043&view=diff
==============================================================================
--- lucene/mahout/trunk/core/src/main/java/org/apache/mahout/cf/taste/recommender/Recommender.java (original)
+++ lucene/mahout/trunk/core/src/main/java/org/apache/mahout/cf/taste/recommender/Recommender.java Sun Nov 22 06:51:11 2009
@@ -44,7 +44,7 @@
* @return {@link List} of recommended {@link RecommendedItem}s, ordered from most strongly recommend to least
* @throws TasteException if an error occurs while accessing the {@link DataModel}
*/
- List<RecommendedItem> recommend(long userID, int howMany, Rescorer<Long> rescorer)
+ List<RecommendedItem> recommend(long userID, int howMany, IDRescorer rescorer)
throws TasteException;
/**
Modified: lucene/mahout/trunk/core/src/test/java/org/apache/mahout/cf/taste/impl/recommender/CachingRecommenderTest.java
URL: http://svn.apache.org/viewvc/lucene/mahout/trunk/core/src/test/java/org/apache/mahout/cf/taste/impl/recommender/CachingRecommenderTest.java?rev=883043&r1=883042&r2=883043&view=diff
==============================================================================
--- lucene/mahout/trunk/core/src/test/java/org/apache/mahout/cf/taste/impl/recommender/CachingRecommenderTest.java (original)
+++ lucene/mahout/trunk/core/src/test/java/org/apache/mahout/cf/taste/impl/recommender/CachingRecommenderTest.java Sun Nov 22 06:51:11 2009
@@ -18,8 +18,8 @@
package org.apache.mahout.cf.taste.impl.recommender;
import org.apache.mahout.cf.taste.impl.TasteTestCase;
+import org.apache.mahout.cf.taste.recommender.IDRescorer;
import org.apache.mahout.cf.taste.recommender.Recommender;
-import org.apache.mahout.cf.taste.recommender.Rescorer;
import java.util.concurrent.atomic.AtomicInteger;
@@ -48,7 +48,7 @@
assertEquals(5, recommendCount.get());
// Results from this recommend() method can be cached...
- Rescorer<Long> rescorer = NullRescorer.getItemInstance();
+ IDRescorer rescorer = NullRescorer.getItemInstance();
cachingRecommender.refresh(null);
cachingRecommender.recommend(1, 1, rescorer);
assertEquals(6, recommendCount.get());
Modified: lucene/mahout/trunk/core/src/test/java/org/apache/mahout/cf/taste/impl/recommender/MockRecommender.java
URL: http://svn.apache.org/viewvc/lucene/mahout/trunk/core/src/test/java/org/apache/mahout/cf/taste/impl/recommender/MockRecommender.java?rev=883043&r1=883042&r2=883043&view=diff
==============================================================================
--- lucene/mahout/trunk/core/src/test/java/org/apache/mahout/cf/taste/impl/recommender/MockRecommender.java (original)
+++ lucene/mahout/trunk/core/src/test/java/org/apache/mahout/cf/taste/impl/recommender/MockRecommender.java Sun Nov 22 06:51:11 2009
@@ -20,9 +20,9 @@
import org.apache.mahout.cf.taste.common.Refreshable;
import org.apache.mahout.cf.taste.impl.TasteTestCase;
import org.apache.mahout.cf.taste.model.DataModel;
+import org.apache.mahout.cf.taste.recommender.IDRescorer;
import org.apache.mahout.cf.taste.recommender.RecommendedItem;
import org.apache.mahout.cf.taste.recommender.Recommender;
-import org.apache.mahout.cf.taste.recommender.Rescorer;
import java.util.Collection;
import java.util.Collections;
@@ -46,7 +46,7 @@
}
@Override
- public List<RecommendedItem> recommend(long userID, int howMany, Rescorer<Long> rescorer) {
+ public List<RecommendedItem> recommend(long userID, int howMany, IDRescorer rescorer) {
return recommend(userID, howMany);
}
Modified: lucene/mahout/trunk/core/src/test/java/org/apache/mahout/cf/taste/impl/recommender/NullRescorerTest.java
URL: http://svn.apache.org/viewvc/lucene/mahout/trunk/core/src/test/java/org/apache/mahout/cf/taste/impl/recommender/NullRescorerTest.java?rev=883043&r1=883042&r2=883043&view=diff
==============================================================================
--- lucene/mahout/trunk/core/src/test/java/org/apache/mahout/cf/taste/impl/recommender/NullRescorerTest.java (original)
+++ lucene/mahout/trunk/core/src/test/java/org/apache/mahout/cf/taste/impl/recommender/NullRescorerTest.java Sun Nov 22 06:51:11 2009
@@ -18,25 +18,25 @@
package org.apache.mahout.cf.taste.impl.recommender;
import org.apache.mahout.cf.taste.impl.TasteTestCase;
-import org.apache.mahout.cf.taste.recommender.Rescorer;
+import org.apache.mahout.cf.taste.recommender.IDRescorer;
/** <p>Tests {@link NullRescorer}.</p> */
public final class NullRescorerTest extends TasteTestCase {
public void testItemRescorer() throws Exception {
- Rescorer<Long> rescorer = NullRescorer.getItemInstance();
+ IDRescorer rescorer = NullRescorer.getItemInstance();
assertNotNull(rescorer);
assertEquals(1.0, rescorer.rescore(1L, 1.0));
- assertEquals(1.0, rescorer.rescore(null, 1.0));
+ assertEquals(1.0, rescorer.rescore(0L, 1.0));
assertEquals(0.0, rescorer.rescore(1L, 0.0));
assertTrue(Double.isNaN(rescorer.rescore(1L, Double.NaN)));
}
public void testUserRescorer() throws Exception {
- Rescorer<Long> rescorer = NullRescorer.getUserInstance();
+ IDRescorer rescorer = NullRescorer.getUserInstance();
assertNotNull(rescorer);
assertEquals(1.0, rescorer.rescore(1L, 1.0));
- assertEquals(1.0, rescorer.rescore(null, 1.0));
+ assertEquals(1.0, rescorer.rescore(0L, 1.0));
assertEquals(0.0, rescorer.rescore(1L, 0.0));
assertTrue(Double.isNaN(rescorer.rescore(1L, Double.NaN)));
}
Modified: lucene/mahout/trunk/core/src/test/java/org/apache/mahout/cf/taste/impl/recommender/ReversingRescorer.java
URL: http://svn.apache.org/viewvc/lucene/mahout/trunk/core/src/test/java/org/apache/mahout/cf/taste/impl/recommender/ReversingRescorer.java?rev=883043&r1=883042&r2=883043&view=diff
==============================================================================
--- lucene/mahout/trunk/core/src/test/java/org/apache/mahout/cf/taste/impl/recommender/ReversingRescorer.java (original)
+++ lucene/mahout/trunk/core/src/test/java/org/apache/mahout/cf/taste/impl/recommender/ReversingRescorer.java Sun Nov 22 06:51:11 2009
@@ -17,14 +17,15 @@
package org.apache.mahout.cf.taste.impl.recommender;
+import org.apache.mahout.cf.taste.recommender.IDRescorer;
import org.apache.mahout.cf.taste.recommender.Rescorer;
/** <p>Simple {@link Rescorer} which negates the given score, thus reversing order of rankings.</p> */
-public final class ReversingRescorer<T> implements Rescorer<T> {
+public final class ReversingRescorer<T> implements Rescorer<T>, IDRescorer {
@Override
public double rescore(T thing, double originalScore) {
- return Double.isNaN(originalScore) ? Double.NaN : -originalScore;
+ return -originalScore;
}
@Override
@@ -32,4 +33,14 @@
return false;
}
+ @Override
+ public double rescore(long ID, double originalScore) {
+ return -originalScore;
+ }
+
+ @Override
+ public boolean isFiltered(long ID) {
+ return false;
+ }
+
}
Modified: lucene/mahout/trunk/examples/src/main/java/org/apache/mahout/cf/taste/ejb/RecommenderEJB.java
URL: http://svn.apache.org/viewvc/lucene/mahout/trunk/examples/src/main/java/org/apache/mahout/cf/taste/ejb/RecommenderEJB.java?rev=883043&r1=883042&r2=883043&view=diff
==============================================================================
--- lucene/mahout/trunk/examples/src/main/java/org/apache/mahout/cf/taste/ejb/RecommenderEJB.java (original)
+++ lucene/mahout/trunk/examples/src/main/java/org/apache/mahout/cf/taste/ejb/RecommenderEJB.java Sun Nov 22 06:51:11 2009
@@ -19,7 +19,7 @@
import org.apache.mahout.cf.taste.common.Refreshable;
import org.apache.mahout.cf.taste.common.TasteException;
-import org.apache.mahout.cf.taste.recommender.Rescorer;
+import org.apache.mahout.cf.taste.recommender.IDRescorer;
import org.apache.mahout.cf.taste.recommender.RecommendedItem;
import javax.ejb.EJBObject;
@@ -41,9 +41,9 @@
List<RecommendedItem> recommend(long userID, int howMany) throws TasteException, RemoteException;
/**
- * @see org.apache.mahout.cf.taste.recommender.Recommender#recommend(long, int, Rescorer)
+ * @see org.apache.mahout.cf.taste.recommender.Recommender#recommend(long, int, IDRescorer)
*/
- List<RecommendedItem> recommend(long userID, int howMany, Rescorer<Long> rescorer)
+ List<RecommendedItem> recommend(long userID, int howMany, IDRescorer rescorer)
throws TasteException, RemoteException;
/**
Modified: lucene/mahout/trunk/examples/src/main/java/org/apache/mahout/cf/taste/ejb/RecommenderEJBBean.java
URL: http://svn.apache.org/viewvc/lucene/mahout/trunk/examples/src/main/java/org/apache/mahout/cf/taste/ejb/RecommenderEJBBean.java?rev=883043&r1=883042&r2=883043&view=diff
==============================================================================
--- lucene/mahout/trunk/examples/src/main/java/org/apache/mahout/cf/taste/ejb/RecommenderEJBBean.java (original)
+++ lucene/mahout/trunk/examples/src/main/java/org/apache/mahout/cf/taste/ejb/RecommenderEJBBean.java Sun Nov 22 06:51:11 2009
@@ -19,9 +19,9 @@
import org.apache.mahout.cf.taste.common.Refreshable;
import org.apache.mahout.cf.taste.common.TasteException;
+import org.apache.mahout.cf.taste.recommender.IDRescorer;
import org.apache.mahout.cf.taste.recommender.RecommendedItem;
import org.apache.mahout.cf.taste.recommender.Recommender;
-import org.apache.mahout.cf.taste.recommender.Rescorer;
import javax.ejb.CreateException;
import javax.ejb.SessionBean;
@@ -47,7 +47,7 @@
return recommender.recommend(userID, howMany);
}
- public List<RecommendedItem> recommend(long userID, int howMany, Rescorer<Long> rescorer)
+ public List<RecommendedItem> recommend(long userID, int howMany, IDRescorer rescorer)
throws TasteException {
return recommender.recommend(userID, howMany, rescorer);
}
Modified: lucene/mahout/trunk/examples/src/main/java/org/apache/mahout/cf/taste/ejb/RecommenderEJBLocal.java
URL: http://svn.apache.org/viewvc/lucene/mahout/trunk/examples/src/main/java/org/apache/mahout/cf/taste/ejb/RecommenderEJBLocal.java?rev=883043&r1=883042&r2=883043&view=diff
==============================================================================
--- lucene/mahout/trunk/examples/src/main/java/org/apache/mahout/cf/taste/ejb/RecommenderEJBLocal.java (original)
+++ lucene/mahout/trunk/examples/src/main/java/org/apache/mahout/cf/taste/ejb/RecommenderEJBLocal.java Sun Nov 22 06:51:11 2009
@@ -19,7 +19,7 @@
import org.apache.mahout.cf.taste.common.Refreshable;
import org.apache.mahout.cf.taste.common.TasteException;
-import org.apache.mahout.cf.taste.recommender.Rescorer;
+import org.apache.mahout.cf.taste.recommender.IDRescorer;
import org.apache.mahout.cf.taste.recommender.RecommendedItem;
import javax.ejb.EJBLocalObject;
@@ -40,9 +40,9 @@
List<RecommendedItem> recommend(long userID, int howMany) throws TasteException;
/**
- * @see org.apache.mahout.cf.taste.recommender.Recommender#recommend(long, int, Rescorer)
+ * @see org.apache.mahout.cf.taste.recommender.Recommender#recommend(long, int, IDRescorer)
*/
- List<RecommendedItem> recommend(long userID, int howMany, Rescorer<Long> rescorer) throws TasteException;
+ List<RecommendedItem> recommend(long userID, int howMany, IDRescorer rescorer) throws TasteException;
/**
* @see org.apache.mahout.cf.taste.recommender.Recommender#estimatePreference(long, long)
Modified: lucene/mahout/trunk/examples/src/main/java/org/apache/mahout/cf/taste/example/bookcrossing/BookCrossingRecommender.java
URL: http://svn.apache.org/viewvc/lucene/mahout/trunk/examples/src/main/java/org/apache/mahout/cf/taste/example/bookcrossing/BookCrossingRecommender.java?rev=883043&r1=883042&r2=883043&view=diff
==============================================================================
--- lucene/mahout/trunk/examples/src/main/java/org/apache/mahout/cf/taste/example/bookcrossing/BookCrossingRecommender.java (original)
+++ lucene/mahout/trunk/examples/src/main/java/org/apache/mahout/cf/taste/example/bookcrossing/BookCrossingRecommender.java Sun Nov 22 06:51:11 2009
@@ -25,9 +25,9 @@
import org.apache.mahout.cf.taste.impl.similarity.PearsonCorrelationSimilarity;
import org.apache.mahout.cf.taste.model.DataModel;
import org.apache.mahout.cf.taste.neighborhood.UserNeighborhood;
+import org.apache.mahout.cf.taste.recommender.IDRescorer;
import org.apache.mahout.cf.taste.recommender.RecommendedItem;
import org.apache.mahout.cf.taste.recommender.Recommender;
-import org.apache.mahout.cf.taste.recommender.Rescorer;
import org.apache.mahout.cf.taste.similarity.UserSimilarity;
import java.util.Collection;
@@ -53,7 +53,7 @@
}
@Override
- public List<RecommendedItem> recommend(long userID, int howMany, Rescorer<Long> rescorer)
+ public List<RecommendedItem> recommend(long userID, int howMany, IDRescorer rescorer)
throws TasteException {
return recommender.recommend(userID, howMany, rescorer);
}
Modified: lucene/mahout/trunk/examples/src/main/java/org/apache/mahout/cf/taste/example/grouplens/GroupLensRecommender.java
URL: http://svn.apache.org/viewvc/lucene/mahout/trunk/examples/src/main/java/org/apache/mahout/cf/taste/example/grouplens/GroupLensRecommender.java?rev=883043&r1=883042&r2=883043&view=diff
==============================================================================
--- lucene/mahout/trunk/examples/src/main/java/org/apache/mahout/cf/taste/example/grouplens/GroupLensRecommender.java (original)
+++ lucene/mahout/trunk/examples/src/main/java/org/apache/mahout/cf/taste/example/grouplens/GroupLensRecommender.java Sun Nov 22 06:51:11 2009
@@ -22,9 +22,9 @@
import org.apache.mahout.cf.taste.impl.recommender.CachingRecommender;
import org.apache.mahout.cf.taste.impl.recommender.slopeone.SlopeOneRecommender;
import org.apache.mahout.cf.taste.model.DataModel;
+import org.apache.mahout.cf.taste.recommender.IDRescorer;
import org.apache.mahout.cf.taste.recommender.RecommendedItem;
import org.apache.mahout.cf.taste.recommender.Recommender;
-import org.apache.mahout.cf.taste.recommender.Rescorer;
import java.io.IOException;
import java.util.Collection;
@@ -62,7 +62,7 @@
}
@Override
- public List<RecommendedItem> recommend(long userID, int howMany, Rescorer<Long> rescorer)
+ public List<RecommendedItem> recommend(long userID, int howMany, IDRescorer rescorer)
throws TasteException {
return recommender.recommend(userID, howMany, rescorer);
}
Modified: lucene/mahout/trunk/examples/src/main/java/org/apache/mahout/cf/taste/example/jester/JesterRecommender.java
URL: http://svn.apache.org/viewvc/lucene/mahout/trunk/examples/src/main/java/org/apache/mahout/cf/taste/example/jester/JesterRecommender.java?rev=883043&r1=883042&r2=883043&view=diff
==============================================================================
--- lucene/mahout/trunk/examples/src/main/java/org/apache/mahout/cf/taste/example/jester/JesterRecommender.java (original)
+++ lucene/mahout/trunk/examples/src/main/java/org/apache/mahout/cf/taste/example/jester/JesterRecommender.java Sun Nov 22 06:51:11 2009
@@ -22,9 +22,9 @@
import org.apache.mahout.cf.taste.impl.recommender.CachingRecommender;
import org.apache.mahout.cf.taste.impl.recommender.slopeone.SlopeOneRecommender;
import org.apache.mahout.cf.taste.model.DataModel;
+import org.apache.mahout.cf.taste.recommender.IDRescorer;
import org.apache.mahout.cf.taste.recommender.RecommendedItem;
import org.apache.mahout.cf.taste.recommender.Recommender;
-import org.apache.mahout.cf.taste.recommender.Rescorer;
import java.util.Collection;
import java.util.List;
@@ -47,7 +47,7 @@
}
@Override
- public List<RecommendedItem> recommend(long userID, int howMany, Rescorer<Long> rescorer)
+ public List<RecommendedItem> recommend(long userID, int howMany, IDRescorer rescorer)
throws TasteException {
return recommender.recommend(userID, howMany, rescorer);
}
Modified: lucene/mahout/trunk/examples/src/main/java/org/apache/mahout/cf/taste/example/netflix/NetflixRecommender.java
URL: http://svn.apache.org/viewvc/lucene/mahout/trunk/examples/src/main/java/org/apache/mahout/cf/taste/example/netflix/NetflixRecommender.java?rev=883043&r1=883042&r2=883043&view=diff
==============================================================================
--- lucene/mahout/trunk/examples/src/main/java/org/apache/mahout/cf/taste/example/netflix/NetflixRecommender.java (original)
+++ lucene/mahout/trunk/examples/src/main/java/org/apache/mahout/cf/taste/example/netflix/NetflixRecommender.java Sun Nov 22 06:51:11 2009
@@ -21,9 +21,9 @@
import org.apache.mahout.cf.taste.common.TasteException;
import org.apache.mahout.cf.taste.impl.recommender.slopeone.SlopeOneRecommender;
import org.apache.mahout.cf.taste.model.DataModel;
+import org.apache.mahout.cf.taste.recommender.IDRescorer;
import org.apache.mahout.cf.taste.recommender.RecommendedItem;
import org.apache.mahout.cf.taste.recommender.Recommender;
-import org.apache.mahout.cf.taste.recommender.Rescorer;
import java.util.Collection;
import java.util.List;
@@ -42,7 +42,7 @@
}
@Override
- public List<RecommendedItem> recommend(long userID, int howMany, Rescorer<Long> rescorer)
+ public List<RecommendedItem> recommend(long userID, int howMany, IDRescorer rescorer)
throws TasteException {
return recommender.recommend(userID, howMany, rescorer);
}