Author: srowen
Date: Fri Jan 15 00:39:32 2010
New Revision: 899500

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

Modified:
    
lucene/mahout/trunk/core/src/main/java/org/apache/mahout/cf/taste/impl/recommender/TopItems.java

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=899500&r1=899499&r2=899500&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
 Fri Jan 15 00:39:32 2010
@@ -17,6 +17,8 @@
 
 package org.apache.mahout.cf.taste.impl.recommender;
 
+import org.apache.mahout.cf.taste.common.NoSuchItemException;
+import org.apache.mahout.cf.taste.common.NoSuchUserException;
 import org.apache.mahout.cf.taste.common.TasteException;
 import org.apache.mahout.cf.taste.impl.common.LongPrimitiveIterator;
 import org.apache.mahout.cf.taste.impl.similarity.GenericItemSimilarity;
@@ -51,7 +53,12 @@
     while (possibleItemIDs.hasNext()) {
       long itemID = possibleItemIDs.next();
       if (rescorer == null || !rescorer.isFiltered(itemID)) {
-        double preference = estimator.estimate(itemID);
+        double preference;
+        try {
+          preference = estimator.estimate(itemID);
+        } catch (NoSuchItemException nsie) {
+          continue;
+        }
         double rescoredPref = rescorer == null ? preference : 
rescorer.rescore(itemID, preference);
         if (!Double.isNaN(rescoredPref) && (!full || rescoredPref > 
lowestTopValue)) {
           topItems.add(new GenericRecommendedItem(itemID, (float) 
rescoredPref));
@@ -83,7 +90,12 @@
       if (rescorer != null && rescorer.isFiltered(userID)) {
         continue;
       }
-      double similarity = estimator.estimate(userID);
+      double similarity;
+      try {
+        similarity = estimator.estimate(userID);
+      } catch (NoSuchUserException nsue) {
+        continue;
+      }
       double rescoredSimilarity = rescorer == null ? similarity : 
rescorer.rescore(userID, similarity);
       if (!Double.isNaN(rescoredSimilarity) && (!full || rescoredSimilarity > 
lowestTopValue)) {
         topUsers.add(new SimilarUser(userID, similarity));


Reply via email to