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 2008/06/15 22:03:19 UTC

svn commit: r668007 - in /lucene/mahout/trunk/core/src: main/java/org/apache/mahout/cf/taste/hadoop/ main/java/org/apache/mahout/cf/taste/impl/common/ main/java/org/apache/mahout/cf/taste/impl/correlation/ main/java/org/apache/mahout/cf/taste/impl/reco...

Author: srowen
Date: Sun Jun 15 13:03:19 2008
New Revision: 668007

URL: http://svn.apache.org/viewvc?rev=668007&view=rev
Log:
More small refactorings

Modified:
    lucene/mahout/trunk/core/src/main/java/org/apache/mahout/cf/taste/hadoop/ItemItemWritable.java
    lucene/mahout/trunk/core/src/main/java/org/apache/mahout/cf/taste/impl/common/Pair.java
    lucene/mahout/trunk/core/src/main/java/org/apache/mahout/cf/taste/impl/correlation/AbstractCorrelation.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/slopeone/MemoryDiffStorage.java
    lucene/mahout/trunk/core/src/main/java/org/apache/mahout/cf/taste/transforms/CorrelationTransform.java
    lucene/mahout/trunk/core/src/main/java/org/apache/mahout/cf/taste/web/RecommenderServlet.java
    lucene/mahout/trunk/core/src/test/java/org/apache/mahout/cf/taste/impl/LoadTest.java

Modified: lucene/mahout/trunk/core/src/main/java/org/apache/mahout/cf/taste/hadoop/ItemItemWritable.java
URL: http://svn.apache.org/viewvc/lucene/mahout/trunk/core/src/main/java/org/apache/mahout/cf/taste/hadoop/ItemItemWritable.java?rev=668007&r1=668006&r2=668007&view=diff
==============================================================================
--- lucene/mahout/trunk/core/src/main/java/org/apache/mahout/cf/taste/hadoop/ItemItemWritable.java (original)
+++ lucene/mahout/trunk/core/src/main/java/org/apache/mahout/cf/taste/hadoop/ItemItemWritable.java Sun Jun 15 13:03:19 2008
@@ -23,8 +23,6 @@
 import java.io.DataOutput;
 import java.io.IOException;
 
-/**
- */
 public final class ItemItemWritable implements WritableComparable {
 
   private String itemAID;

Modified: lucene/mahout/trunk/core/src/main/java/org/apache/mahout/cf/taste/impl/common/Pair.java
URL: http://svn.apache.org/viewvc/lucene/mahout/trunk/core/src/main/java/org/apache/mahout/cf/taste/impl/common/Pair.java?rev=668007&r1=668006&r2=668007&view=diff
==============================================================================
--- lucene/mahout/trunk/core/src/main/java/org/apache/mahout/cf/taste/impl/common/Pair.java (original)
+++ lucene/mahout/trunk/core/src/main/java/org/apache/mahout/cf/taste/impl/common/Pair.java Sun Jun 15 13:03:19 2008
@@ -48,7 +48,7 @@
            isEqualOrNulls(second, otherPair.second);
   }
 
-  static boolean isEqualOrNulls(Object obj1, Object obj2) {
+  private static boolean isEqualOrNulls(Object obj1, Object obj2) {
     return obj1 == null ? obj2 == null : obj1.equals(obj2);
   }
 
@@ -60,7 +60,7 @@
     return (firstHash >>> 16 | firstHash << 16) ^ hashCodeNull(second);
   }
 
-  static int hashCodeNull(Object obj) {
+  private static int hashCodeNull(Object obj) {
     return obj == null ? 0 : obj.hashCode();
   }
 

Modified: lucene/mahout/trunk/core/src/main/java/org/apache/mahout/cf/taste/impl/correlation/AbstractCorrelation.java
URL: http://svn.apache.org/viewvc/lucene/mahout/trunk/core/src/main/java/org/apache/mahout/cf/taste/impl/correlation/AbstractCorrelation.java?rev=668007&r1=668006&r2=668007&view=diff
==============================================================================
--- lucene/mahout/trunk/core/src/main/java/org/apache/mahout/cf/taste/impl/correlation/AbstractCorrelation.java (original)
+++ lucene/mahout/trunk/core/src/main/java/org/apache/mahout/cf/taste/impl/correlation/AbstractCorrelation.java Sun Jun 15 13:03:19 2008
@@ -50,7 +50,7 @@
    *
    * @param dataModel
    */
-  public AbstractCorrelation(DataModel dataModel) {
+  AbstractCorrelation(DataModel dataModel) {
     this(dataModel, false);
   }
 
@@ -60,7 +60,7 @@
    * @param dataModel
    * @param weighted
    */
-  public AbstractCorrelation(DataModel dataModel, boolean weighted) {
+  AbstractCorrelation(DataModel dataModel, boolean weighted) {
     if (dataModel == null) {
       throw new IllegalArgumentException("dataModel is null");
     }

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=668007&r1=668006&r2=668007&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 Jun 15 13:03:19 2008
@@ -179,11 +179,11 @@
       return user.getPreferencesAsArray();
     }
 
-    public User getUser() {
+    User getUser() {
       return user;
     }
 
-    public double getSimilarity() {
+    double getSimilarity() {
       return similarity;
     }
 

Modified: lucene/mahout/trunk/core/src/main/java/org/apache/mahout/cf/taste/impl/recommender/slopeone/MemoryDiffStorage.java
URL: http://svn.apache.org/viewvc/lucene/mahout/trunk/core/src/main/java/org/apache/mahout/cf/taste/impl/recommender/slopeone/MemoryDiffStorage.java?rev=668007&r1=668006&r2=668007&view=diff
==============================================================================
--- lucene/mahout/trunk/core/src/main/java/org/apache/mahout/cf/taste/impl/recommender/slopeone/MemoryDiffStorage.java (original)
+++ lucene/mahout/trunk/core/src/main/java/org/apache/mahout/cf/taste/impl/recommender/slopeone/MemoryDiffStorage.java Sun Jun 15 13:03:19 2008
@@ -202,41 +202,7 @@
       buildAverageDiffsLock.writeLock().lock();
       long averageCount = 0L;
       for (User user : dataModel.getUsers()) {
-        log.debug("Processing prefs for user {}", user);
-        // Save off prefs for the life of this loop iteration
-        Preference[] userPreferences = user.getPreferencesAsArray();
-        int length = userPreferences.length;
-        for (int i = 0; i < length; i++) {
-          Preference prefA = userPreferences[i];
-          double prefAValue = prefA.getValue();
-          Object itemIDA = prefA.getItem().getID();
-          Map<Object, RunningAverage> aMap = averageDiffs.get(itemIDA);
-          if (aMap == null) {
-            aMap = new FastMap<Object, RunningAverage>();
-            averageDiffs.put(itemIDA, aMap);
-          }
-          for (int j = i + 1; j < length; j++) {
-            // This is a performance-critical block
-            Preference prefB = userPreferences[j];
-            Object itemIDB = prefB.getItem().getID();
-            RunningAverage average = aMap.get(itemIDB);
-            if (average == null && averageCount < maxEntries) {
-              average = buildRunningAverage();
-              aMap.put(itemIDB, average);
-              averageCount++;
-            }
-            if (average != null) {
-              average.addDatum(prefB.getValue() - prefAValue);
-            }
-
-          }
-          RunningAverage itemAverage = averageItemPref.get(itemIDA);
-          if (itemAverage == null) {
-            itemAverage = buildRunningAverage();
-            averageItemPref.put(itemIDA, itemAverage);
-          }
-          itemAverage.addDatum(prefAValue);
-        }
+        averageCount = processOneUser(averageCount, user);
       }
 
       // Go back and prune inconsequential diffs. "Inconsequential" means, here, an average
@@ -261,6 +227,45 @@
     }
   }
 
+  private long processOneUser(long averageCount, User user) {
+    log.debug("Processing prefs for user {}", user);
+    // Save off prefs for the life of this loop iteration
+    Preference[] userPreferences = user.getPreferencesAsArray();
+    int length = userPreferences.length;
+    for (int i = 0; i < length; i++) {
+      Preference prefA = userPreferences[i];
+      double prefAValue = prefA.getValue();
+      Object itemIDA = prefA.getItem().getID();
+      Map<Object, RunningAverage> aMap = averageDiffs.get(itemIDA);
+      if (aMap == null) {
+        aMap = new FastMap<Object, RunningAverage>();
+        averageDiffs.put(itemIDA, aMap);
+      }
+      for (int j = i + 1; j < length; j++) {
+        // This is a performance-critical block
+        Preference prefB = userPreferences[j];
+        Object itemIDB = prefB.getItem().getID();
+        RunningAverage average = aMap.get(itemIDB);
+        if (average == null && averageCount < maxEntries) {
+          average = buildRunningAverage();
+          aMap.put(itemIDB, average);
+          averageCount++;
+        }
+        if (average != null) {
+          average.addDatum(prefB.getValue() - prefAValue);
+        }
+
+      }
+      RunningAverage itemAverage = averageItemPref.get(itemIDA);
+      if (itemAverage == null) {
+        itemAverage = buildRunningAverage();
+        averageItemPref.put(itemIDA, itemAverage);
+      }
+      itemAverage.addDatum(prefAValue);
+    }
+    return averageCount;
+  }
+
   private RunningAverage buildRunningAverage() {
     if (stdDevWeighted) {
       return compactAverages ? new CompactRunningAverageAndStdDev() : new FullRunningAverageAndStdDev();

Modified: lucene/mahout/trunk/core/src/main/java/org/apache/mahout/cf/taste/transforms/CorrelationTransform.java
URL: http://svn.apache.org/viewvc/lucene/mahout/trunk/core/src/main/java/org/apache/mahout/cf/taste/transforms/CorrelationTransform.java?rev=668007&r1=668006&r2=668007&view=diff
==============================================================================
--- lucene/mahout/trunk/core/src/main/java/org/apache/mahout/cf/taste/transforms/CorrelationTransform.java (original)
+++ lucene/mahout/trunk/core/src/main/java/org/apache/mahout/cf/taste/transforms/CorrelationTransform.java Sun Jun 15 13:03:19 2008
@@ -18,7 +18,6 @@
 package org.apache.mahout.cf.taste.transforms;
 
 import org.apache.mahout.cf.taste.common.Refreshable;
-import org.apache.mahout.cf.taste.common.TasteException;
 
 /**
  * <p>Implementations encapsulate some transformation on correlation values between two
@@ -34,6 +33,6 @@
    * (should be in [-1,1])
    * @return transformed correlation (should be in [-1,1])
    */
-  double transformCorrelation(T thing1, T thing2, double value) throws TasteException;
+  double transformCorrelation(T thing1, T thing2, double value);
 
 }

Modified: lucene/mahout/trunk/core/src/main/java/org/apache/mahout/cf/taste/web/RecommenderServlet.java
URL: http://svn.apache.org/viewvc/lucene/mahout/trunk/core/src/main/java/org/apache/mahout/cf/taste/web/RecommenderServlet.java?rev=668007&r1=668006&r2=668007&view=diff
==============================================================================
--- lucene/mahout/trunk/core/src/main/java/org/apache/mahout/cf/taste/web/RecommenderServlet.java (original)
+++ lucene/mahout/trunk/core/src/main/java/org/apache/mahout/cf/taste/web/RecommenderServlet.java Sun Jun 15 13:03:19 2008
@@ -115,8 +115,7 @@
 
   }
 
-  private void writeXML(HttpServletResponse response, Iterable<RecommendedItem> items)
-      throws IOException, TasteException {
+  private void writeXML(HttpServletResponse response, Iterable<RecommendedItem> items) throws IOException {
     response.setContentType("text/xml");
     response.setCharacterEncoding("UTF-8");
     response.setHeader("Cache-Control", "no-cache");
@@ -132,8 +131,7 @@
     writer.println("</recommendedItems>");
   }
 
-  private void writeJSON(HttpServletResponse response, Iterable<RecommendedItem> items)
-      throws IOException, TasteException {
+  private void writeJSON(HttpServletResponse response, Iterable<RecommendedItem> items) throws IOException {
     response.setContentType("text/plain");
     response.setCharacterEncoding("UTF-8");
     response.setHeader("Cache-Control", "no-cache");

Modified: lucene/mahout/trunk/core/src/test/java/org/apache/mahout/cf/taste/impl/LoadTest.java
URL: http://svn.apache.org/viewvc/lucene/mahout/trunk/core/src/test/java/org/apache/mahout/cf/taste/impl/LoadTest.java?rev=668007&r1=668006&r2=668007&view=diff
==============================================================================
--- lucene/mahout/trunk/core/src/test/java/org/apache/mahout/cf/taste/impl/LoadTest.java (original)
+++ lucene/mahout/trunk/core/src/test/java/org/apache/mahout/cf/taste/impl/LoadTest.java Sun Jun 15 13:03:19 2008
@@ -65,11 +65,6 @@
 
   private final Random random = RandomUtils.getRandom();
 
-  @Override
-  public void setUp() throws Exception {
-    super.setUp();
-  }
-
   public void testSlopeOneLoad() throws Exception {
     DataModel model = createModel();
     Recommender recommender = new CachingRecommender(new SlopeOneRecommender(model));