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/08/11 14:04:38 UTC

svn commit: r803081 [7/7] - in /lucene/mahout/trunk: core/src/main/java/org/apache/mahout/cf/taste/eval/ core/src/main/java/org/apache/mahout/cf/taste/hadoop/ core/src/main/java/org/apache/mahout/cf/taste/impl/common/ core/src/main/java/org/apache/maho...

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=803081&r1=803080&r2=803081&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 Tue Aug 11 12:04:35 2009
@@ -57,28 +57,28 @@
   }
 
   @Override
-  public List<RecommendedItem> recommend(Comparable<?> userID, int howMany) throws TasteException {
+  public List<RecommendedItem> recommend(long userID, int howMany) throws TasteException {
     return recommender.recommend(userID, howMany);
   }
 
   @Override
-  public List<RecommendedItem> recommend(Comparable<?> userID, int howMany, Rescorer<Comparable<?>> rescorer)
+  public List<RecommendedItem> recommend(long userID, int howMany, Rescorer<Long> rescorer)
           throws TasteException {
     return recommender.recommend(userID, howMany, rescorer);
   }
 
   @Override
-  public float estimatePreference(Comparable<?> userID, Comparable<?> itemID) throws TasteException {
+  public float estimatePreference(long userID, long itemID) throws TasteException {
     return recommender.estimatePreference(userID, itemID);
   }
 
   @Override
-  public void setPreference(Comparable<?> userID, Comparable<?> itemID, float value) throws TasteException {
+  public void setPreference(long userID, long itemID, float value) throws TasteException {
     recommender.setPreference(userID, itemID, value);
   }
 
   @Override
-  public void removePreference(Comparable<?> userID, Comparable<?> itemID) throws TasteException {
+  public void removePreference(long userID, long itemID) throws TasteException {
     recommender.removePreference(userID, itemID);
   }
 

Modified: lucene/mahout/trunk/examples/src/main/java/org/apache/mahout/cf/taste/example/grouplens/GroupLensRecommenderEvaluatorRunner.java
URL: http://svn.apache.org/viewvc/lucene/mahout/trunk/examples/src/main/java/org/apache/mahout/cf/taste/example/grouplens/GroupLensRecommenderEvaluatorRunner.java?rev=803081&r1=803080&r2=803081&view=diff
==============================================================================
--- lucene/mahout/trunk/examples/src/main/java/org/apache/mahout/cf/taste/example/grouplens/GroupLensRecommenderEvaluatorRunner.java (original)
+++ lucene/mahout/trunk/examples/src/main/java/org/apache/mahout/cf/taste/example/grouplens/GroupLensRecommenderEvaluatorRunner.java Tue Aug 11 12:04:35 2009
@@ -40,9 +40,10 @@
   public static void main(String... args) throws IOException, TasteException {
     RecommenderEvaluator evaluator = new AverageAbsoluteDifferenceRecommenderEvaluator();
     double evaluation = evaluator.evaluate(new GroupLensRecommenderBuilder(),
-                                                 new GroupLensDataModel(),
-                                                 0.9,
-                                                 0.1);
+                                           null,
+                                           new GroupLensDataModel(),
+                                           0.9,
+                                           0.1);
     log.info(String.valueOf(evaluation));
   }
 

Modified: lucene/mahout/trunk/examples/src/main/java/org/apache/mahout/cf/taste/example/jester/JesterDataModel.java
URL: http://svn.apache.org/viewvc/lucene/mahout/trunk/examples/src/main/java/org/apache/mahout/cf/taste/example/jester/JesterDataModel.java?rev=803081&r1=803080&r2=803081&view=diff
==============================================================================
--- lucene/mahout/trunk/examples/src/main/java/org/apache/mahout/cf/taste/example/jester/JesterDataModel.java (original)
+++ lucene/mahout/trunk/examples/src/main/java/org/apache/mahout/cf/taste/example/jester/JesterDataModel.java Tue Aug 11 12:04:35 2009
@@ -20,6 +20,9 @@
 import org.apache.mahout.cf.taste.example.grouplens.GroupLensDataModel;
 import org.apache.mahout.cf.taste.impl.model.GenericPreference;
 import org.apache.mahout.cf.taste.impl.model.file.FileDataModel;
+import org.apache.mahout.cf.taste.impl.common.FastByIDMap;
+import org.apache.mahout.cf.taste.impl.common.FileLineIterator;
+import org.apache.mahout.cf.taste.impl.common.FastIDSet;
 import org.apache.mahout.cf.taste.model.Preference;
 
 import java.io.File;
@@ -31,7 +34,7 @@
 
 public final class JesterDataModel extends FileDataModel {
 
-  private int userBeingRead;
+  private long userBeingRead;
 
   public JesterDataModel() throws IOException {
     this(GroupLensDataModel.readResourceToTempFile("/org/apache/mahout/cf/taste/example/jester/jester-data-1.csv"));
@@ -52,25 +55,19 @@
   }
 
   @Override
-  protected void processLine(String line, Map<Comparable<?>, Collection<Preference>> data, char delimiter) {
-    String userID = String.valueOf(userBeingRead);
+  protected void processLine(String line, FastByIDMap<Collection<Preference>> data, char delimiter) {
     String[] jokePrefs = line.split(",");
-    List<Preference> prefs = new ArrayList<Preference>(101);
-    for (int itemIDNum = 1; itemIDNum < jokePrefs.length; itemIDNum++) { // yes skip first one, just a count
-      String jokePref = jokePrefs[itemIDNum];
+    int count = Integer.parseInt(jokePrefs[0]);
+    List<Preference> prefs = new ArrayList<Preference>(count);
+    for (int itemID = 1; itemID < jokePrefs.length; itemID++) { // yes skip first one, just a count
+      String jokePref = jokePrefs[itemID];
       if (!"99".equals(jokePref)) {
         float jokePrefValue = Float.parseFloat(jokePref);
-        String itemID = String.valueOf(itemIDNum);
-        prefs.add(new GenericPreference(null, itemID, jokePrefValue));
+        prefs.add(new GenericPreference(userBeingRead, itemID, jokePrefValue));
       }
     }
-    data.put(userID, prefs);
+    data.put(userBeingRead, prefs);
     userBeingRead++;
   }
 
-  @Override
-  public String toString() {
-    return "JesterDataModel";
-  }
-
 }
\ No newline at end of file

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=803081&r1=803080&r2=803081&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 Tue Aug 11 12:04:35 2009
@@ -42,28 +42,28 @@
   }
 
   @Override
-  public List<RecommendedItem> recommend(Comparable<?> userID, int howMany) throws TasteException {
+  public List<RecommendedItem> recommend(long userID, int howMany) throws TasteException {
     return recommender.recommend(userID, howMany);
   }
 
   @Override
-  public List<RecommendedItem> recommend(Comparable<?> userID, int howMany, Rescorer<Comparable<?>> rescorer)
+  public List<RecommendedItem> recommend(long userID, int howMany, Rescorer<Long> rescorer)
           throws TasteException {
     return recommender.recommend(userID, howMany, rescorer);
   }
 
   @Override
-  public float estimatePreference(Comparable<?> userID, Comparable<?> itemID) throws TasteException {
+  public float estimatePreference(long userID, long itemID) throws TasteException {
     return recommender.estimatePreference(userID, itemID);
   }
 
   @Override
-  public void setPreference(Comparable<?> userID, Comparable<?> itemID, float value) throws TasteException {
+  public void setPreference(long userID, long itemID, float value) throws TasteException {
     recommender.setPreference(userID, itemID, value);
   }
 
   @Override
-  public void removePreference(Comparable<?> userID, Comparable<?> itemID) throws TasteException {
+  public void removePreference(long userID, long itemID) throws TasteException {
     recommender.removePreference(userID, itemID);
   }
 

Modified: lucene/mahout/trunk/examples/src/main/java/org/apache/mahout/cf/taste/example/jester/JesterRecommenderEvaluatorRunner.java
URL: http://svn.apache.org/viewvc/lucene/mahout/trunk/examples/src/main/java/org/apache/mahout/cf/taste/example/jester/JesterRecommenderEvaluatorRunner.java?rev=803081&r1=803080&r2=803081&view=diff
==============================================================================
--- lucene/mahout/trunk/examples/src/main/java/org/apache/mahout/cf/taste/example/jester/JesterRecommenderEvaluatorRunner.java (original)
+++ lucene/mahout/trunk/examples/src/main/java/org/apache/mahout/cf/taste/example/jester/JesterRecommenderEvaluatorRunner.java Tue Aug 11 12:04:35 2009
@@ -38,9 +38,10 @@
     RecommenderEvaluator evaluator = new AverageAbsoluteDifferenceRecommenderEvaluator();
     DataModel model = new JesterDataModel();
     double evaluation = evaluator.evaluate(new JesterRecommenderBuilder(),
-                                                 model,
-                                                 0.9,
-                                                 1.0);
+                                           null,
+                                           model,
+                                           0.9,
+                                           1.0);
     log.info(String.valueOf(evaluation));
   }
 

Modified: lucene/mahout/trunk/examples/src/main/java/org/apache/mahout/cf/taste/example/netflix/NetflixDataModel.java
URL: http://svn.apache.org/viewvc/lucene/mahout/trunk/examples/src/main/java/org/apache/mahout/cf/taste/example/netflix/NetflixDataModel.java?rev=803081&r1=803080&r2=803081&view=diff
==============================================================================
--- lucene/mahout/trunk/examples/src/main/java/org/apache/mahout/cf/taste/example/netflix/NetflixDataModel.java (original)
+++ lucene/mahout/trunk/examples/src/main/java/org/apache/mahout/cf/taste/example/netflix/NetflixDataModel.java Tue Aug 11 12:04:35 2009
@@ -19,9 +19,10 @@
 
 import org.apache.mahout.cf.taste.common.Refreshable;
 import org.apache.mahout.cf.taste.common.TasteException;
-import org.apache.mahout.cf.taste.impl.common.FastMap;
-import org.apache.mahout.cf.taste.impl.common.FastSet;
 import org.apache.mahout.cf.taste.impl.common.FileLineIterable;
+import org.apache.mahout.cf.taste.impl.common.FastIDSet;
+import org.apache.mahout.cf.taste.impl.common.FastByIDMap;
+import org.apache.mahout.cf.taste.impl.common.LongPrimitiveIterator;
 import org.apache.mahout.cf.taste.impl.model.GenericDataModel;
 import org.apache.mahout.cf.taste.impl.model.GenericPreference;
 import org.apache.mahout.cf.taste.model.DataModel;
@@ -37,8 +38,6 @@
 import java.util.ArrayList;
 import java.util.Collection;
 import java.util.Iterator;
-import java.util.List;
-import java.util.Map;
 
 /**
  * <p>This is a {@link DataModel} that reads the Netflix data set, as represented in its
@@ -71,83 +70,69 @@
 		log.info("Creating NetflixDataModel for directory: {}", dataDirectory);
 
 		log.info("Reading preference data...");
-		Map<Comparable<?>, PreferenceArray> users = readUsers(dataDirectory);
+		FastByIDMap<PreferenceArray> users = readUsers(dataDirectory);
 
 		log.info("Creating delegate DataModel...");
 		delegate = new GenericDataModel(users);
 	}
 
-  static List<Comparable<?>> readMovies(File dataDirectory) {
-		List<Comparable<?>> movies = new ArrayList<Comparable<?>>(17770);
-    for (String line : new FileLineIterable(new File(dataDirectory, "movie_titles.txt"), false)) {
-			int firstComma = line.indexOf((int) ',');
-			Integer id = Integer.valueOf(line.substring(0, firstComma));
-			movies.add(id);
-      if (id != movies.size()) {
-        throw new IllegalStateException("A movie is missing from movie_titles.txt");
-      }
-		}
-		return movies;
-	}
-
-	private Map<Comparable<?>, PreferenceArray> readUsers(File dataDirectory) throws IOException {
-		Map<Comparable<?>, Collection<Preference>> userIDPrefMap = new FastMap<Comparable<?>, Collection<Preference>>();
+	private FastByIDMap<PreferenceArray> readUsers(File dataDirectory) throws IOException {
+		FastByIDMap<Collection<Preference>> userIDPrefMap = new FastByIDMap<Collection<Preference>>();
 
 		int counter = 0;
 		FilenameFilter filenameFilter = new MovieFilenameFilter();
 		for (File movieFile : new File(dataDirectory, "training_set").listFiles(filenameFilter)) {
       Iterator<String> lineIterator = new FileLineIterable(movieFile, false).iterator();
 			String line = lineIterator.next();
-			Integer movieID = Integer.valueOf(line.substring(0, line.length() - 1)); // strip colon
+			long movieID = Long.parseLong(line.substring(0, line.length() - 1)); // strip colon
 			while (lineIterator.hasNext()) {
         line = lineIterator.next();
-				counter++;
-				if (counter % 100000 == 0) {
+				if (++counter % 100000 == 0) {
 					log.info("Processed {} prefs", counter);
 				}
 				int firstComma = line.indexOf((int) ',');
-				Integer userID = Integer.valueOf(line.substring(0, firstComma));
+				long userID = Long.parseLong(line.substring(0, firstComma));
 				int secondComma = line.indexOf((int) ',', firstComma + 1);
 				float rating = Float.parseFloat(line.substring(firstComma + 1, secondComma));
 				Collection<Preference> userPrefs = userIDPrefMap.get(userID);
 				if (userPrefs == null) {
-					userPrefs = new ArrayList<Preference>();
+					userPrefs = new ArrayList<Preference>(2);
 					userIDPrefMap.put(userID, userPrefs);
 				}
-				userPrefs.add(new GenericPreference(null, movieID, rating));
+				userPrefs.add(new GenericPreference(userID, movieID, rating));
 			}
 		}
 
-		return GenericDataModel.toPrefArrayValues(userIDPrefMap, true);
+		return GenericDataModel.toDataMap(userIDPrefMap, true);
 	}
 
 	@Override
-  public Iterable<Comparable<?>> getUserIDs() throws TasteException {
+  public LongPrimitiveIterator getUserIDs() throws TasteException {
 		return delegate.getUserIDs();
 	}
 
 	@Override
-  public PreferenceArray getPreferencesFromUser(Comparable<?> id) throws TasteException {
+  public PreferenceArray getPreferencesFromUser(long id) throws TasteException {
 		return delegate.getPreferencesFromUser(id);
 	}
 
   @Override
-  public FastSet<Comparable<?>> getItemIDsFromUser(Comparable<?> userID) throws TasteException {
+  public FastIDSet getItemIDsFromUser(long userID) throws TasteException {
     return delegate.getItemIDsFromUser(userID);
   }
 
   @Override
-  public Iterable<Comparable<?>> getItemIDs() throws TasteException {
+  public LongPrimitiveIterator getItemIDs() throws TasteException {
 		return delegate.getItemIDs();
 	}
 
 	@Override
-  public PreferenceArray getPreferencesForItem(Comparable<?> itemID) throws TasteException {
+  public PreferenceArray getPreferencesForItem(long itemID) throws TasteException {
 		return delegate.getPreferencesForItem(itemID);
 	}
 
   @Override
-  public Float getPreferenceValue(Comparable<?> userID, Comparable<?> itemID) throws TasteException {
+  public Float getPreferenceValue(long userID, long itemID) throws TasteException {
     return delegate.getPreferenceValue(userID, itemID);
   }
 
@@ -162,17 +147,17 @@
 	}
 
   @Override
-  public int getNumUsersWithPreferenceFor(Comparable<?>... itemIDs) throws TasteException {
+  public int getNumUsersWithPreferenceFor(long... itemIDs) throws TasteException {
     return delegate.getNumUsersWithPreferenceFor(itemIDs);
   }
 
   @Override
-  public void setPreference(Comparable<?> userID, Comparable<?> itemID, float value) {
+  public void setPreference(long userID, long itemID, float value) {
 		throw new UnsupportedOperationException();
 	}
 
 	@Override
-  public void removePreference(Comparable<?> userID, Comparable<?> itemID) {
+  public void removePreference(long userID, long itemID) {
 		throw new UnsupportedOperationException();
 	}
 

Modified: lucene/mahout/trunk/examples/src/main/java/org/apache/mahout/cf/taste/example/netflix/NetflixFileDataModel.java
URL: http://svn.apache.org/viewvc/lucene/mahout/trunk/examples/src/main/java/org/apache/mahout/cf/taste/example/netflix/NetflixFileDataModel.java?rev=803081&r1=803080&r2=803081&view=diff
==============================================================================
--- lucene/mahout/trunk/examples/src/main/java/org/apache/mahout/cf/taste/example/netflix/NetflixFileDataModel.java (original)
+++ lucene/mahout/trunk/examples/src/main/java/org/apache/mahout/cf/taste/example/netflix/NetflixFileDataModel.java Tue Aug 11 12:04:35 2009
@@ -18,8 +18,9 @@
 package org.apache.mahout.cf.taste.example.netflix;
 
 import org.apache.mahout.cf.taste.common.Refreshable;
-import org.apache.mahout.cf.taste.impl.common.FastSet;
 import org.apache.mahout.cf.taste.impl.common.FileLineIterable;
+import org.apache.mahout.cf.taste.impl.common.FastIDSet;
+import org.apache.mahout.cf.taste.impl.common.LongPrimitiveIterator;
 import org.apache.mahout.cf.taste.impl.model.GenericItemPreferenceArray;
 import org.apache.mahout.cf.taste.impl.model.GenericPreference;
 import org.apache.mahout.cf.taste.model.DataModel;
@@ -32,11 +33,11 @@
 import java.util.ArrayList;
 import java.util.Collection;
 import java.util.List;
+import java.util.NoSuchElementException;
 
 public final class NetflixFileDataModel implements DataModel {
 
   private final File dataDirectory;
-  private final List<Comparable<?>> movies;
 
   public NetflixFileDataModel(File dataDirectory) throws IOException {
 		if (dataDirectory == null) {
@@ -45,38 +46,36 @@
 		if (!dataDirectory.exists() || !dataDirectory.isDirectory()) {
 			throw new FileNotFoundException(dataDirectory.toString());
 		}
-
     this.dataDirectory = dataDirectory;
-    movies = NetflixDataModel.readMovies(dataDirectory);
   }
 
   @Override
-  public Iterable<Comparable<?>> getUserIDs() {
+  public LongPrimitiveIterator getUserIDs() {
     throw new UnsupportedOperationException(); // TODO
   }
 
   @Override
-  public PreferenceArray getPreferencesFromUser(Comparable<?> id) {
+  public PreferenceArray getPreferencesFromUser(long id) {
     throw new UnsupportedOperationException(); // TODO
   }
 
   @Override
-  public Iterable<Comparable<?>> getItemIDs() {
-    return movies;
+  public LongPrimitiveIterator getItemIDs() {
+    return new MovieIDIterator();
   }
 
   @Override
-  public FastSet<Comparable<?>> getItemIDsFromUser(Comparable<?> userID) {
+  public FastIDSet getItemIDsFromUser(long userID) {
     throw new UnsupportedOperationException(); // TODO
   }
 
   @Override
-  public Float getPreferenceValue(Comparable<?> userID, Comparable<?> itemID) {
+  public Float getPreferenceValue(long userID, long itemID) {
     throw new UnsupportedOperationException(); // TODO
   }
 
   @Override
-  public PreferenceArray getPreferencesForItem(Comparable<?> itemID) {
+  public PreferenceArray getPreferencesForItem(long itemID) {
     StringBuilder itemIDPadded = new StringBuilder(5);
     itemIDPadded.append(itemID);
     while (itemIDPadded.length() < 5) {
@@ -96,7 +95,7 @@
 
   @Override
   public int getNumItems() {
-    return movies.size();
+    return MovieIDIterator.COUNT;
   }
 
   @Override
@@ -105,7 +104,7 @@
   }
 
   @Override
-  public int getNumUsersWithPreferenceFor(Comparable<?>... itemIDs) {
+  public int getNumUsersWithPreferenceFor(long... itemIDs) {
     throw new UnsupportedOperationException(); // TODO
   }
 
@@ -113,7 +112,7 @@
    * @throws UnsupportedOperationException
    */
   @Override
-  public void setPreference(Comparable<?> userID, Comparable<?> itemID, float value) {
+  public void setPreference(long userID, long itemID, float value) {
     throw new UnsupportedOperationException();
   }
 
@@ -121,7 +120,7 @@
    * @throws UnsupportedOperationException
    */
   @Override
-  public void removePreference(Comparable<?> userID, Comparable<?> itemID) {
+  public void removePreference(long userID, long itemID) {
     throw new UnsupportedOperationException();
   }
 
@@ -135,4 +134,42 @@
     return "NetflixFileDataModel";
   }
 
+  private static final class MovieIDIterator implements LongPrimitiveIterator {
+
+    private int next = 1;
+    static final int COUNT = 17770;
+
+    @Override
+    public long nextLong() {
+      if (next <= COUNT) {
+        return next++;
+      }
+      throw new NoSuchElementException();
+    }
+
+    @Override
+    public long peek() {
+      if (next <= COUNT) {
+        return next;
+      }
+      throw new NoSuchElementException();
+    }
+
+    @Override
+    public boolean hasNext() {
+      return next <= COUNT;
+    }
+
+    @Override
+    public Long next() {
+      return nextLong();
+    }
+
+    @Override
+    public void remove() {
+      throw new UnsupportedOperationException();
+    }
+
+  }
+
 }

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=803081&r1=803080&r2=803081&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 Tue Aug 11 12:04:35 2009
@@ -37,28 +37,28 @@
   }
 
   @Override
-  public List<RecommendedItem> recommend(Comparable<?> userID, int howMany) throws TasteException {
+  public List<RecommendedItem> recommend(long userID, int howMany) throws TasteException {
     return recommender.recommend(userID, howMany);
   }
 
   @Override
-  public List<RecommendedItem> recommend(Comparable<?> userID, int howMany, Rescorer<Comparable<?>> rescorer)
+  public List<RecommendedItem> recommend(long userID, int howMany, Rescorer<Long> rescorer)
           throws TasteException {
     return recommender.recommend(userID, howMany, rescorer);
   }
 
   @Override
-  public float estimatePreference(Comparable<?> userID, Comparable<?> itemID) throws TasteException {
+  public float estimatePreference(long userID, long itemID) throws TasteException {
     return recommender.estimatePreference(userID, itemID);
   }
 
   @Override
-  public void setPreference(Comparable<?> userID, Comparable<?> itemID, float value) throws TasteException {
+  public void setPreference(long userID, long itemID, float value) throws TasteException {
     recommender.setPreference(userID, itemID, value);
   }
 
   @Override
-  public void removePreference(Comparable<?> userID, Comparable<?> itemID) throws TasteException {
+  public void removePreference(long userID, long itemID) throws TasteException {
     recommender.removePreference(userID, itemID);
   }
 

Modified: lucene/mahout/trunk/examples/src/main/java/org/apache/mahout/cf/taste/example/netflix/NetflixRecommenderEvaluatorRunner.java
URL: http://svn.apache.org/viewvc/lucene/mahout/trunk/examples/src/main/java/org/apache/mahout/cf/taste/example/netflix/NetflixRecommenderEvaluatorRunner.java?rev=803081&r1=803080&r2=803081&view=diff
==============================================================================
--- lucene/mahout/trunk/examples/src/main/java/org/apache/mahout/cf/taste/example/netflix/NetflixRecommenderEvaluatorRunner.java (original)
+++ lucene/mahout/trunk/examples/src/main/java/org/apache/mahout/cf/taste/example/netflix/NetflixRecommenderEvaluatorRunner.java Tue Aug 11 12:04:35 2009
@@ -38,7 +38,7 @@
   public static void main(String... args) throws IOException, TasteException {
     RecommenderEvaluator evaluator = new AverageAbsoluteDifferenceRecommenderEvaluator();
     DataModel model = new NetflixDataModel(new File(args[0]), true);
-    double evaluation = evaluator.evaluate(new NetflixRecommenderBuilder(), model, 0.9, 0.1);
+    double evaluation = evaluator.evaluate(new NetflixRecommenderBuilder(), null, model, 0.9, 0.1);
     log.info(String.valueOf(evaluation));
   }
 

Modified: lucene/mahout/trunk/taste-web/src/main/java/org/apache/mahout/cf/taste/web/RecommenderServlet.java
URL: http://svn.apache.org/viewvc/lucene/mahout/trunk/taste-web/src/main/java/org/apache/mahout/cf/taste/web/RecommenderServlet.java?rev=803081&r1=803080&r2=803081&view=diff
==============================================================================
--- lucene/mahout/trunk/taste-web/src/main/java/org/apache/mahout/cf/taste/web/RecommenderServlet.java (original)
+++ lucene/mahout/trunk/taste-web/src/main/java/org/apache/mahout/cf/taste/web/RecommenderServlet.java Tue Aug 11 12:04:35 2009
@@ -82,10 +82,11 @@
   public void doGet(HttpServletRequest request,
                     HttpServletResponse response) throws ServletException {
 
-    String userID = request.getParameter("userID");
-    if (userID == null) {
+    String userIDString = request.getParameter("userID");
+    if (userIDString == null) {
       throw new ServletException("userID was not specified");
     }
+    long userID = Long.parseLong(userIDString);
     String howManyString = request.getParameter("howMany");
     int howMany = howManyString == null ? DEFAULT_HOW_MANY : Integer.parseInt(howManyString);
     boolean debug = Boolean.parseBoolean(request.getParameter("debug"));
@@ -146,7 +147,7 @@
   }
 
   private void writePlainText(HttpServletResponse response,
-                              String userID,
+                              long userID,
                               boolean debug,
                               Iterable<RecommendedItem> items) throws IOException, TasteException {
     response.setContentType("text/plain");
@@ -168,7 +169,7 @@
     }
   }
 
-  private void writeDebugRecommendations(String userID, Iterable<RecommendedItem> items, PrintWriter writer)
+  private void writeDebugRecommendations(long userID, Iterable<RecommendedItem> items, PrintWriter writer)
       throws TasteException {
     DataModel dataModel = recommender.getDataModel();
     writer.print("User:");