Пример #1
0
 public GenericItemBasedRecommender(IDataModel dataModel, IItemSimilarity similarity) :
     this(dataModel,
          similarity,
          AbstractRecommender.GetDefaultCandidateItemsStrategy(),
          getDefaultMostSimilarItemsCandidateItemsStrategy())
 {
 }
Пример #2
0
 internal DataModelSimilaritiesIterator(IItemSimilarity otherSimilarity, long[] itemIDs)
 {
     this.otherSimilarity = otherSimilarity;
     this.itemIDs         = itemIDs;
     i       = 0;
     itemID1 = itemIDs[0];
     j       = 1;
 }
Пример #3
0
 internal MultiMostSimilarEstimator(long[] toItemIDs, IItemSimilarity similarity, IRescorer <Tuple <long, long> > rescorer,
                                    bool excludeItemIfNotSimilarToAll)
 {
     this.toItemIDs  = toItemIDs;
     this.similarity = similarity;
     this.rescorer   = rescorer;
     this.excludeItemIfNotSimilarToAll = excludeItemIfNotSimilarToAll;
 }
 /// Creates this on top of the given {@link ItemSimilarity}.
 /// The cache size is capped by the given size.
 public CachingItemSimilarity(IItemSimilarity similarity, int maxCacheSize)
 {
     //Preconditions.checkArgument(similarity != null, "similarity is null");
     this.similarity      = similarity;
     this.similarityCache = new Cache <Tuple <long, long>, Double>(new SimilarityRetriever(similarity), maxCacheSize);
     this.refreshHelper   = new RefreshHelper(() => {
         similarityCache.Clear();
     });
     refreshHelper.AddDependency(similarity);
 }
Пример #5
0
        /// <p>
        /// Like {@link #GenericItemSimilarity(ItemSimilarity, DataModel)} )}, but will only keep the specified
        /// number of similarities from the given {@link DataModel}. It will keep those with the highest similarity
        /// -- those that are therefore most important.
        /// </p>
        ///
        /// <p>
        /// Thanks to tsmorton for suggesting this and providing part of the implementation.
        /// </p>
        ///
        /// @param otherSimilarity
        ///          other {@link ItemSimilarity} to get similarities from
        /// @param dataModel
        ///          data model to get items from
        /// @param maxToKeep
        ///          maximum number of similarities to keep
        /// @throws TasteException
        ///           if an error occurs while accessing the {@link DataModel} items
        public GenericItemSimilarity(IItemSimilarity otherSimilarity,
                                     IDataModel dataModel,
                                     int maxToKeep)
        {
            long[] itemIDs          = GenericUserSimilarity.longIteratorToList(dataModel.GetItemIDs());
            var    it               = new DataModelSimilaritiesIterator(otherSimilarity, itemIDs);
            var    keptSimilarities = TopItems.GetTopItemItemSimilarities(maxToKeep, it);

            initSimilarityMaps(keptSimilarities.GetEnumerator());
        }
Пример #6
0
 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();
 }
 public AllSimilarItemsCandidateItemsStrategy(IItemSimilarity similarity) {
   //Preconditions.checkArgument(similarity != null, "similarity is null");
   this.similarity = similarity;
 }
  public GenericBooleanPrefItemBasedRecommender(IDataModel dataModel, IItemSimilarity similarity,
      ICandidateItemsStrategy candidateItemsStrategy, IMostSimilarItemsCandidateItemsStrategy
	  mostSimilarItemsCandidateItemsStrategy)
		: base(dataModel, similarity, candidateItemsStrategy, mostSimilarItemsCandidateItemsStrategy) {
    
  }
	public GenericBooleanPrefItemBasedRecommender(IDataModel dataModel, IItemSimilarity similarity)
		: base(dataModel, similarity) {
  }
Пример #10
0
 public AllSimilarItemsCandidateItemsStrategy(IItemSimilarity similarity)
 {
     //Preconditions.checkArgument(similarity != null, "similarity is null");
     this.similarity = similarity;
 }
Пример #11
0
 public GenericBooleanPrefItemBasedRecommender(IDataModel dataModel, IItemSimilarity similarity,
                                               ICandidateItemsStrategy candidateItemsStrategy, IMostSimilarItemsCandidateItemsStrategy
                                               mostSimilarItemsCandidateItemsStrategy)
     : base(dataModel, similarity, candidateItemsStrategy, mostSimilarItemsCandidateItemsStrategy)
 {
 }
Пример #12
0
 public GenericBooleanPrefItemBasedRecommender(IDataModel dataModel, IItemSimilarity similarity)
     : base(dataModel, similarity)
 {
 }
 internal SimilarityRetriever(IItemSimilarity similarity)
 {
     this.similarity = similarity;
 }
 /// Creates this on top of the given {@link ItemSimilarity}.
 /// The cache is sized according to properties of the given {@link DataModel}.
 public CachingItemSimilarity(IItemSimilarity similarity, IDataModel dataModel) : this(similarity, dataModel.GetNumItems())
 {
     ;
 }
Пример #15
0
 /// <p>
 /// Builds a list of item-item similarities given an {@link ItemSimilarity} implementation and a
 /// {@link DataModel}, rather than a list of {@link ItemItemSimilarity}s.
 /// </p>
 ///
 /// <p>
 /// It's valid to build a {@link GenericItemSimilarity} this way, but perhaps missing some of the point of an
 /// item-based recommender. Item-based recommenders use the assumption that item-item similarities are
 /// relatively fixed, and might be known already independent of user preferences. Hence it is useful to
 /// inject that information, using {@link #GenericItemSimilarity(Iterable)}.
 /// </p>
 ///
 /// @param otherSimilarity
 ///          other {@link ItemSimilarity} to get similarities from
 /// @param dataModel
 ///          data model to get items from
 /// @throws TasteException
 ///           if an error occurs while accessing the {@link DataModel} items
 public GenericItemSimilarity(IItemSimilarity otherSimilarity, IDataModel dataModel)
 {
     long[] itemIDs = GenericUserSimilarity.longIteratorToList(dataModel.GetItemIDs());
     initSimilarityMaps(new DataModelSimilaritiesIterator(otherSimilarity, itemIDs));
 }
Пример #16
0
 public MostSimilarEstimator(long toItemID, IItemSimilarity similarity, IRescorer <Tuple <long, long> > rescorer)
 {
     this.toItemID   = toItemID;
     this.similarity = similarity;
     this.rescorer   = rescorer;
 }