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
recommend
@NotNull
java.util.List<RecommendedItem> recommend(java.lang.Object userID,
int howMany)
throws TasteException
- Parameters:
userID - user for which recommendations are to be computedhowMany - 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 computedhowMany - desired number of recommendationsrescorer - 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 estimateditemID - 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 foritemID - item to set preference forvalue - 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 preferenceitemID - 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