Recommender
クラスの独自の実装を作成できます
class CustomRecommender implements Recommender{
....
public List<RecommendedItem> recommend(long userID, int howMany) throws TasteException {
IDRescorer rescorer = new CustomResorer();
return delegate.recommend(userID, howMany, rescorer);
}
public List<RecommendedItem> recommend(long userID, int howMany, IDRescorer rescorer) throws TasteException {
return delegate.recommend(userID, howMany, rescorer);
}
public float estimatePreference(long userID, long itemID) throws TasteException {
IDRescorer rescorer = new CustomResorer();
return (float) rescorer.rescore( itemID, delegate.estimatePreference(userID, itemID));
}
...
}
ここでレスコーラーなしでレコメンデーションが呼び出された場合でも、recommend
andestimatePreference
メソッドに組み込みます。
そして、 をビルドするときRecommenderBuilder
に、レコメンダーのインスタンスを作成します。
RecommenderBuilder recommenderBuilder = new RecommenderBuilder() {
@Override
public Recommender buildRecommender(DataModel model) throws TasteException {
Similarity similarity = new ...
return new CustomRecommender(model, similarity);
}
};