com.planetj.taste.recommender
Interface Recommender

All Superinterfaces:
Refreshable
All Known Subinterfaces:
ClusteringRecommender, ItemBasedRecommender, UserBasedRecommender
All Known Implementing Classes:
AbstractRecommender, CachingRecommender, GenericItemBasedRecommender, GenericUserBasedRecommender, ItemAverageRecommender, ItemUserAverageRecommender, SlopeOneRecommender, TreeClusteringRecommender, TreeClusteringRecommender2

public interface Recommender
extends Refreshable

Implementations of this interface can recommend Items for a User. Implementations will likely take advantage of several classes in other packages here to compute this.

Author:
Sean Owen

Method Summary
 double estimatePreference(java.lang.Object userID, java.lang.Object itemID)
           
 DataModel getDataModel()
           
 java.util.List<RecommendedItem> recommend(java.lang.Object userID, int howMany)
           
 java.util.List<RecommendedItem> recommend(java.lang.Object userID, int howMany, Rescorer<Item> rescorer)
           
 void removePreference(java.lang.Object userID, java.lang.Object itemID)
           
 void setPreference(java.lang.Object userID, java.lang.Object itemID, double value)
           
 
Methods inherited from interface com.planetj.taste.common.Refreshable
refresh
 

Method Detail

recommend

@NotNull
java.util.List<RecommendedItem> recommend(java.lang.Object userID,
                                                  int howMany)
                                          throws TasteException
Parameters:
userID - user for which recommendations are to be computed
howMany - desired number of recommendations
Returns:
List of recommended RecommendedItems, ordered from most strongly recommend to least
Throws:
TasteException - if an error occurs while accessing the DataModel

recommend

@NotNull
java.util.List<RecommendedItem> recommend(java.lang.Object userID,
                                                  int howMany,
                                                  Rescorer<Item> rescorer)
                                          throws TasteException
Parameters:
userID - user for which recommendations are to be computed
howMany - desired number of recommendations
rescorer - rescoring function to apply before final list of recommendations is determined
Returns:
List of recommended RecommendedItems, ordered from most strongly recommend to least
Throws:
TasteException - if an error occurs while accessing the DataModel

estimatePreference

double estimatePreference(java.lang.Object userID,
                          java.lang.Object itemID)
                          throws TasteException
Parameters:
userID - user ID whose preference is to be estimated
itemID - item ID to estimate preference for
Returns:
an estimated preference if the user has not expressed a preference for the item, or else the user's actual preference for the item. If a preference cannot be estimated, returns Double.NaN
Throws:
TasteException - if an error occurs while accessing the DataModel

setPreference

void setPreference(java.lang.Object userID,
                   java.lang.Object itemID,
                   double value)
                   throws TasteException
Parameters:
userID - user to set preference for
itemID - item to set preference for
value - preference value
Throws:
TasteException - if an error occurs while accessing the DataModel

removePreference

void removePreference(java.lang.Object userID,
                      java.lang.Object itemID)
                      throws TasteException
Parameters:
userID - user from which to remove preference
itemID - item for which to remove preference
Throws:
TasteException - if an error occurs while accessing the DataModel
Since:
1.3

getDataModel

@NotNull
DataModel getDataModel()
Returns:
DataModel used by this Recommender