Author: srowen
Date: Fri Aug 13 03:39:46 2010
New Revision: 985082

URL: http://svn.apache.org/viewvc?rev=985082&view=rev
Log:
MAHOUT-462

Modified:
    
mahout/trunk/core/src/main/java/org/apache/mahout/cf/taste/hadoop/item/RecommenderJob.java
    
mahout/trunk/core/src/main/java/org/apache/mahout/math/hadoop/similarity/vector/AbstractDistributedVectorSimilarity.java
    
mahout/trunk/core/src/main/java/org/apache/mahout/math/hadoop/similarity/vector/DistributedCooccurrenceVectorSimilarity.java

Modified: 
mahout/trunk/core/src/main/java/org/apache/mahout/cf/taste/hadoop/item/RecommenderJob.java
URL: 
http://svn.apache.org/viewvc/mahout/trunk/core/src/main/java/org/apache/mahout/cf/taste/hadoop/item/RecommenderJob.java?rev=985082&r1=985081&r2=985082&view=diff
==============================================================================
--- 
mahout/trunk/core/src/main/java/org/apache/mahout/cf/taste/hadoop/item/RecommenderJob.java
 (original)
+++ 
mahout/trunk/core/src/main/java/org/apache/mahout/cf/taste/hadoop/item/RecommenderJob.java
 Fri Aug 13 03:39:46 2010
@@ -35,13 +35,18 @@ import org.apache.mahout.cf.taste.hadoop
 import org.apache.mahout.cf.taste.hadoop.RecommendedItemsWritable;
 import org.apache.mahout.cf.taste.hadoop.TasteHadoopUtils;
 import org.apache.mahout.cf.taste.hadoop.ToItemPrefsMapper;
-import org.apache.mahout.cf.taste.hadoop.similarity.item.*;
+import org.apache.mahout.cf.taste.hadoop.similarity.item.CountUsersKeyWritable;
+import org.apache.mahout.cf.taste.hadoop.similarity.item.CountUsersMapper;
+import org.apache.mahout.cf.taste.hadoop.similarity.item.CountUsersReducer;
+import 
org.apache.mahout.cf.taste.hadoop.similarity.item.PrefsToItemUserMatrixMapper;
+import 
org.apache.mahout.cf.taste.hadoop.similarity.item.PrefsToItemUserMatrixReducer;
 import org.apache.mahout.common.AbstractJob;
 import org.apache.mahout.math.VarIntWritable;
 import org.apache.mahout.math.VarLongWritable;
 import org.apache.mahout.math.VectorWritable;
 import org.apache.mahout.math.hadoop.DistributedRowMatrix;
 import org.apache.mahout.math.hadoop.similarity.RowSimilarityJob;
+import org.apache.mahout.math.hadoop.similarity.SimilarityType;
 
 import java.io.IOException;
 import java.util.Map;
@@ -88,17 +93,18 @@ public final class RecommenderJob extend
     addInputOption();
     addOutputOption();
     addOption("numRecommendations", "n", "Number of recommendations per user",
-      
String.valueOf(AggregateAndRecommendReducer.DEFAULT_NUM_RECOMMENDATIONS));
+        
String.valueOf(AggregateAndRecommendReducer.DEFAULT_NUM_RECOMMENDATIONS));
     addOption("usersFile", "u", "File of users to recommend for", null);
     addOption("itemsFile", "u", "File of items to recommend for", null);
     addOption("booleanData", "b", "Treat input as without pref values", 
Boolean.FALSE.toString());
     addOption("maxPrefsPerUserConsidered", null,
-      "Maximum number of preferences considered per user in final 
recommendation phase",
-      
String.valueOf(UserVectorSplitterMapper.DEFAULT_MAX_PREFS_PER_USER_CONSIDERED));
-    addOption("maxSimilaritiesPerItemConsidered", null,
-      "Maximum number of similarities considered per item ",
-      String.valueOf(DEFAULT_MAX_SIMILARITIES_PER_ITEM_CONSIDERED));
-    addOption("similarityClassname", "s", "Name of distributed similarity 
class to instantiate");
+        "Maximum number of preferences considered per user in final 
recommendation phase",
+        
String.valueOf(UserVectorSplitterMapper.DEFAULT_MAX_PREFS_PER_USER_CONSIDERED));
+    addOption("maxSimilaritiesPerItemConsidered", null,"Maximum number of 
similarities considered per item ",
+        String.valueOf(DEFAULT_MAX_SIMILARITIES_PER_ITEM_CONSIDERED));    
+    addOption("similarityClassname", "s", "Name of distributed similarity 
class to instantiate, alternatively use " +
+        "one of the predefined similarities (" + 
SimilarityType.listEnumNames() + ')',
+        String.valueOf(SimilarityType.SIMILARITY_COOCCURRENCE));    
 
     Map<String,String> parsedArgs = parseArguments(args);
     if (parsedArgs == null) {

Modified: 
mahout/trunk/core/src/main/java/org/apache/mahout/math/hadoop/similarity/vector/AbstractDistributedVectorSimilarity.java
URL: 
http://svn.apache.org/viewvc/mahout/trunk/core/src/main/java/org/apache/mahout/math/hadoop/similarity/vector/AbstractDistributedVectorSimilarity.java?rev=985082&r1=985081&r2=985082&view=diff
==============================================================================
--- 
mahout/trunk/core/src/main/java/org/apache/mahout/math/hadoop/similarity/vector/AbstractDistributedVectorSimilarity.java
 (original)
+++ 
mahout/trunk/core/src/main/java/org/apache/mahout/math/hadoop/similarity/vector/AbstractDistributedVectorSimilarity.java
 Fri Aug 13 03:39:46 2010
@@ -47,7 +47,7 @@ public abstract class AbstractDistribute
   /**
    * computes the number of elements in the {...@link Iterable}
    */
-  protected int countElements(Iterable<?> iterable) {
+  protected static int countElements(Iterable<?> iterable) {
     return countElements(iterable.iterator());
   }
 

Modified: 
mahout/trunk/core/src/main/java/org/apache/mahout/math/hadoop/similarity/vector/DistributedCooccurrenceVectorSimilarity.java
URL: 
http://svn.apache.org/viewvc/mahout/trunk/core/src/main/java/org/apache/mahout/math/hadoop/similarity/vector/DistributedCooccurrenceVectorSimilarity.java?rev=985082&r1=985081&r2=985082&view=diff
==============================================================================
--- 
mahout/trunk/core/src/main/java/org/apache/mahout/math/hadoop/similarity/vector/DistributedCooccurrenceVectorSimilarity.java
 (original)
+++ 
mahout/trunk/core/src/main/java/org/apache/mahout/math/hadoop/similarity/vector/DistributedCooccurrenceVectorSimilarity.java
 Fri Aug 13 03:39:46 2010
@@ -17,17 +17,26 @@
 
 package org.apache.mahout.math.hadoop.similarity.vector;
 
+import org.apache.mahout.math.Vector;
 import org.apache.mahout.math.hadoop.similarity.Cooccurrence;
 
 /**
  * uses the co-occcurence count as vector similarity
  */
-public class DistributedCooccurrenceVectorSimilarity extends 
AbstractDistributedVectorSimilarity {
+public class DistributedCooccurrenceVectorSimilarity implements 
DistributedVectorSimilarity {
 
   @Override
-  protected double doComputeResult(int rowA, int rowB, Iterable<Cooccurrence> 
cooccurrences, double weightOfVectorA,
-      double weightOfVectorB, int numberOfColumns) {
-    return countElements(cooccurrences);
+  public double weight(Vector v) {
+    return Double.NaN;
   }
 
+  @Override
+  public double similarity(int rowA,
+                           int rowB,
+                           Iterable<Cooccurrence> cooccurrences,
+                           double weightOfVectorA,
+                           double weightOfVectorB,
+                           int numberOfColumns) {
+    return AbstractDistributedVectorSimilarity.countElements(cooccurrences);
+  }
 }


Reply via email to