Author: srowen
Date: Sat Jan 17 07:15:17 2009
New Revision: 735303

URL: http://svn.apache.org/viewvc?rev=735303&view=rev
Log: (empty)

Added:
    
lucene/mahout/trunk/examples/src/main/java/org/apache/mahout/cf/taste/example/netflix/NetflixRecommender.java
      - copied, changed from r731349, 
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/netflix/NetflixRecommenderBuilder.java
      - copied, changed from r731349, 
lucene/mahout/trunk/examples/src/main/java/org/apache/mahout/cf/taste/example/bookcrossing/BookCrossingRecommenderBuilder.java
    
lucene/mahout/trunk/examples/src/main/java/org/apache/mahout/cf/taste/example/netflix/NetflixRecommenderEvaluatorRunner.java
      - copied, changed from r731349, 
lucene/mahout/trunk/examples/src/main/java/org/apache/mahout/cf/taste/example/bookcrossing/BookCrossingRecommenderEvaluatorRunner.java
Modified:
    
lucene/mahout/trunk/examples/src/main/java/org/apache/mahout/cf/taste/example/netflix/NetflixDataModel.java
    
lucene/mahout/trunk/examples/src/main/java/org/apache/mahout/cf/taste/example/netflix/NetflixFileDataModel.java

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=735303&r1=735302&r2=735303&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
 Sat Jan 17 07:15:17 2009
@@ -119,18 +119,6 @@
                return users;
        }
 
-       private static List<NetflixMovie> readMovies(File dataDirectory) {
-               List<NetflixMovie> movies = new ArrayList<NetflixMovie>();
-    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));
-                       int secondComma = line.indexOf((int) ',', firstComma + 
1);
-                       String title = line.substring(secondComma + 1);
-                       movies.add(new NetflixMovie(id, title));
-               }
-               return movies;
-       }
-
        @Override
   public Iterable<? extends User> getUsers() throws TasteException {
                return delegate.getUsers();
@@ -197,4 +185,10 @@
       return filename.startsWith(useSubset ? "mv_0000" : "mv_");
     }
   }
+
+  @Override
+  public String toString() {
+    return "NetflixDataModel";
+  }
+
 }

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=735303&r1=735302&r2=735303&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
 Sat Jan 17 07:15:17 2009
@@ -131,4 +131,9 @@
     // do nothing
   }
 
+  @Override
+  public String toString() {
+    return "NetflixFileDataModel";
+  }
+
 }

Copied: 
lucene/mahout/trunk/examples/src/main/java/org/apache/mahout/cf/taste/example/netflix/NetflixRecommender.java
 (from r731349, 
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/netflix/NetflixRecommender.java?p2=lucene/mahout/trunk/examples/src/main/java/org/apache/mahout/cf/taste/example/netflix/NetflixRecommender.java&p1=lucene/mahout/trunk/examples/src/main/java/org/apache/mahout/cf/taste/example/bookcrossing/BookCrossingRecommender.java&r1=731349&r2=735303&rev=735303&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/netflix/NetflixRecommender.java
 Sat Jan 17 07:15:17 2009
@@ -15,36 +15,26 @@
  * limitations under the License.
  */
 
-package org.apache.mahout.cf.taste.example.bookcrossing;
+package org.apache.mahout.cf.taste.example.netflix;
 
 import org.apache.mahout.cf.taste.common.Refreshable;
 import org.apache.mahout.cf.taste.common.TasteException;
-import org.apache.mahout.cf.taste.impl.recommender.CachingRecommender;
-import org.apache.mahout.cf.taste.impl.recommender.GenericUserBasedRecommender;
-import org.apache.mahout.cf.taste.impl.neighborhood.NearestNUserNeighborhood;
+import 
org.apache.mahout.cf.taste.impl.recommender.slopeone.SlopeOneRecommender;
 import org.apache.mahout.cf.taste.model.DataModel;
 import org.apache.mahout.cf.taste.model.Item;
 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.neighborhood.UserNeighborhood;
-import org.apache.mahout.cf.taste.similarity.UserSimilarity;
 
 import java.util.Collection;
 import java.util.List;
 
-/**
- * A simple {...@link Recommender} implemented for the Book Crossing demo.
- * See the <a href="http://www.informatik.uni-freiburg.de/~cziegler/BX/";>Book 
Crossing site</a>.
- */
-public final class BookCrossingRecommender implements Recommender {
+public final class NetflixRecommender implements Recommender {
 
   private final Recommender recommender;
 
-  public BookCrossingRecommender(DataModel dataModel, BookCrossingDataModel 
bcModel) throws TasteException {
-    UserSimilarity similarity = new GeoUserSimilarity(bcModel);
-    UserNeighborhood neighborhood = new NearestNUserNeighborhood(5, 
similarity, dataModel);
-    recommender = new CachingRecommender(new 
GenericUserBasedRecommender(dataModel, neighborhood, similarity));
+  public NetflixRecommender(DataModel dataModel) throws TasteException {
+    recommender = new SlopeOneRecommender(dataModel);
   }
 
   @Override

Copied: 
lucene/mahout/trunk/examples/src/main/java/org/apache/mahout/cf/taste/example/netflix/NetflixRecommenderBuilder.java
 (from r731349, 
lucene/mahout/trunk/examples/src/main/java/org/apache/mahout/cf/taste/example/bookcrossing/BookCrossingRecommenderBuilder.java)
URL: 
http://svn.apache.org/viewvc/lucene/mahout/trunk/examples/src/main/java/org/apache/mahout/cf/taste/example/netflix/NetflixRecommenderBuilder.java?p2=lucene/mahout/trunk/examples/src/main/java/org/apache/mahout/cf/taste/example/netflix/NetflixRecommenderBuilder.java&p1=lucene/mahout/trunk/examples/src/main/java/org/apache/mahout/cf/taste/example/bookcrossing/BookCrossingRecommenderBuilder.java&r1=731349&r2=735303&rev=735303&view=diff
==============================================================================
--- 
lucene/mahout/trunk/examples/src/main/java/org/apache/mahout/cf/taste/example/bookcrossing/BookCrossingRecommenderBuilder.java
 (original)
+++ 
lucene/mahout/trunk/examples/src/main/java/org/apache/mahout/cf/taste/example/netflix/NetflixRecommenderBuilder.java
 Sat Jan 17 07:15:17 2009
@@ -15,24 +15,18 @@
  * limitations under the License.
  */
 
-package org.apache.mahout.cf.taste.example.bookcrossing;
+package org.apache.mahout.cf.taste.example.netflix;
 
 import org.apache.mahout.cf.taste.common.TasteException;
 import org.apache.mahout.cf.taste.eval.RecommenderBuilder;
 import org.apache.mahout.cf.taste.model.DataModel;
 import org.apache.mahout.cf.taste.recommender.Recommender;
 
-final class BookCrossingRecommenderBuilder implements RecommenderBuilder {
-
-  private final BookCrossingDataModel bcModel;
-
-  BookCrossingRecommenderBuilder(BookCrossingDataModel bcModel) {
-    this.bcModel = bcModel;
-  }
+final class NetflixRecommenderBuilder implements RecommenderBuilder {
 
   @Override
   public Recommender buildRecommender(DataModel dataModel) throws 
TasteException {
-    return new BookCrossingRecommender(dataModel, bcModel);
+    return new NetflixRecommender(dataModel);
   }
 
 }
\ No newline at end of file

Copied: 
lucene/mahout/trunk/examples/src/main/java/org/apache/mahout/cf/taste/example/netflix/NetflixRecommenderEvaluatorRunner.java
 (from r731349, 
lucene/mahout/trunk/examples/src/main/java/org/apache/mahout/cf/taste/example/bookcrossing/BookCrossingRecommenderEvaluatorRunner.java)
URL: 
http://svn.apache.org/viewvc/lucene/mahout/trunk/examples/src/main/java/org/apache/mahout/cf/taste/example/netflix/NetflixRecommenderEvaluatorRunner.java?p2=lucene/mahout/trunk/examples/src/main/java/org/apache/mahout/cf/taste/example/netflix/NetflixRecommenderEvaluatorRunner.java&p1=lucene/mahout/trunk/examples/src/main/java/org/apache/mahout/cf/taste/example/bookcrossing/BookCrossingRecommenderEvaluatorRunner.java&r1=731349&r2=735303&rev=735303&view=diff
==============================================================================
--- 
lucene/mahout/trunk/examples/src/main/java/org/apache/mahout/cf/taste/example/bookcrossing/BookCrossingRecommenderEvaluatorRunner.java
 (original)
+++ 
lucene/mahout/trunk/examples/src/main/java/org/apache/mahout/cf/taste/example/netflix/NetflixRecommenderEvaluatorRunner.java
 Sat Jan 17 07:15:17 2009
@@ -15,35 +15,30 @@
  * limitations under the License.
  */
 
-package org.apache.mahout.cf.taste.example.bookcrossing;
+package org.apache.mahout.cf.taste.example.netflix;
 
 import org.apache.mahout.cf.taste.common.TasteException;
 import org.apache.mahout.cf.taste.eval.RecommenderEvaluator;
 import 
org.apache.mahout.cf.taste.impl.eval.AverageAbsoluteDifferenceRecommenderEvaluator;
+import org.apache.mahout.cf.taste.model.DataModel;
 import org.slf4j.Logger;
 import org.slf4j.LoggerFactory;
 
 import java.io.IOException;
+import java.io.File;
 
-/**
- * <p>A simple example "runner" class which will evaluate the performance of 
the current
- * implementation of {...@link 
org.apache.mahout.cf.taste.example.grouplens.GroupLensRecommender}.</p>
- */
-public final class BookCrossingRecommenderEvaluatorRunner {
+public final class NetflixRecommenderEvaluatorRunner {
 
-  private static final Logger log = 
LoggerFactory.getLogger(BookCrossingRecommenderEvaluatorRunner.class);
+  private static final Logger log = 
LoggerFactory.getLogger(NetflixRecommenderEvaluatorRunner.class);
 
-  private BookCrossingRecommenderEvaluatorRunner() {
+  private NetflixRecommenderEvaluatorRunner() {
     // do nothing
   }
 
   public static void main(String... args) throws IOException, TasteException {
     RecommenderEvaluator evaluator = new 
AverageAbsoluteDifferenceRecommenderEvaluator();
-    BookCrossingDataModel model = new BookCrossingDataModel();
-    double evaluation = evaluator.evaluate(new 
BookCrossingRecommenderBuilder(model),
-                                                 model,
-                                                 0.9,
-                                                 0.1);
+    DataModel model = new NetflixDataModel(new File(args[0]), true);
+    double evaluation = evaluator.evaluate(new NetflixRecommenderBuilder(), 
model, 0.9, 0.1);
     log.info(String.valueOf(evaluation));
   }
 


Reply via email to