public GenericItemBasedRecommender(IDataModel dataModel, IItemSimilarity similarity, ICandidateItemsStrategy candidateItemsStrategy, IMostSimilarItemsCandidateItemsStrategy mostSimilarItemsCandidateItemsStrategy) : base(dataModel, candidateItemsStrategy) { //Preconditions.checkArgument(similarity != null, "similarity is null"); this.similarity = similarity; //Preconditions.checkArgument(mostSimilarItemsCandidateItemsStrategy != null, // "mostSimilarItemsCandidateItemsStrategy is null"); this.mostSimilarItemsCandidateItemsStrategy = mostSimilarItemsCandidateItemsStrategy; this.refreshHelper = new RefreshHelper(() => { capper = buildCapper(); }); refreshHelper.AddDependency(dataModel); refreshHelper.AddDependency(similarity); refreshHelper.AddDependency(candidateItemsStrategy); refreshHelper.AddDependency(mostSimilarItemsCandidateItemsStrategy); capper = buildCapper(); }
/// Create an SVDRecommender using a persistent store to cache factorizations. A factorization is loaded from the /// store if present, otherwise a new factorization is computed and saved in the store. /// /// The {@link #refresh(java.util.Collection) refresh} method recomputes the factorization and overwrites the store. /// /// @param dataModel /// @param factorizer /// @param candidateItemsStrategy /// @param persistenceStrategy /// /// @throws TasteException public SVDRecommender(IDataModel dataModel, IFactorizer factorizer, ICandidateItemsStrategy candidateItemsStrategy, IPersistenceStrategy persistenceStrategy) : base(dataModel, candidateItemsStrategy) { this.factorizer = factorizer; //Preconditions.checkNotNull(factorizer); this.persistenceStrategy = persistenceStrategy; // Preconditions.checkNotNull(persistenceStrategy); try { factorization = persistenceStrategy.Load(); } catch (IOException e) { throw new TasteException("Error loading factorization", e); } if (factorization == null) { train(); } refreshHelper = new RefreshHelper(() => { train(); }); refreshHelper.AddDependency(GetDataModel()); refreshHelper.AddDependency(factorizer); refreshHelper.AddDependency(candidateItemsStrategy); }
public SVDRecommender(IDataModel dataModel, IFactorizer factorizer, ICandidateItemsStrategy candidateItemsStrategy) : this(dataModel, factorizer, candidateItemsStrategy, getDefaultPersistenceStrategy()) { }
protected AbstractRecommender(IDataModel dataModel, ICandidateItemsStrategy candidateItemsStrategy) { this.dataModel = dataModel; //Preconditions.checkNotNull(dataModel); this.candidateItemsStrategy = candidateItemsStrategy; // Preconditions.checkNotNull(candidateItemsStrategy); }
public GenericBooleanPrefItemBasedRecommender(IDataModel dataModel, IItemSimilarity similarity, ICandidateItemsStrategy candidateItemsStrategy, IMostSimilarItemsCandidateItemsStrategy mostSimilarItemsCandidateItemsStrategy) : base(dataModel, similarity, candidateItemsStrategy, mostSimilarItemsCandidateItemsStrategy) { }