Beispiel #1
0
 public GenericItemSimilarity(ItemSimilarity otherSimilarity, DataModel dataModel)
 {
     this.similarityMaps      = new FastByIDMap <FastByIDMap <double?> >();
     this.similarItemIDsIndex = new FastByIDMap <FastIDSet>();
     long[] itemIDs = GenericUserSimilarity.longIteratorToList(dataModel.getItemIDs());
     this.initSimilarityMaps(new DataModelSimilaritiesIterator(otherSimilarity, itemIDs));
 }
Beispiel #2
0
 internal MultiMostSimilarEstimator(long[] toItemIDs, ItemSimilarity similarity, Rescorer <Tuple <long, long> > rescorer, bool excludeItemIfNotSimilarToAll)
 {
     this.toItemIDs  = toItemIDs;
     this.similarity = similarity;
     this.rescorer   = rescorer;
     this.excludeItemIfNotSimilarToAll = excludeItemIfNotSimilarToAll;
 }
Beispiel #3
0
 internal DataModelSimilaritiesIterator(ItemSimilarity otherSimilarity, long[] itemIDs)
 {
     this.otherSimilarity = otherSimilarity;
     this.itemIDs         = itemIDs;
     this.i       = 0;
     this.itemID1 = itemIDs[0];
     this.j       = 1;
 }
Beispiel #4
0
        public GenericItemSimilarity(ItemSimilarity otherSimilarity, DataModel dataModel, int maxToKeep)
        {
            this.similarityMaps      = new FastByIDMap <FastByIDMap <double?> >();
            this.similarItemIDsIndex = new FastByIDMap <FastIDSet>();
            long[] itemIDs = GenericUserSimilarity.longIteratorToList(dataModel.getItemIDs());
            DataModelSimilaritiesIterator allSimilarities = new DataModelSimilaritiesIterator(otherSimilarity, itemIDs);

            this.initSimilarityMaps(TopItems.getTopItemItemSimilarities(maxToKeep, allSimilarities).GetEnumerator());
        }
Beispiel #5
0
 public KnnItemBasedRecommender(DataModel dataModel,
                                ItemSimilarity similarity,
                                Optimizer optimizer,
                                CandidateItemsStrategy candidateItemsStrategy,
                                MostSimilarItemsCandidateItemsStrategy mostSimilarItemsCandidateItemsStrategy,
                                int neighborhoodSize) :
     base(dataModel, similarity, candidateItemsStrategy, mostSimilarItemsCandidateItemsStrategy)
 {
     this.optimizer        = optimizer;
     this.neighborhoodSize = neighborhoodSize;
 }
Beispiel #6
0
        public CachingItemSimilarity(ItemSimilarity similarity, int maxCacheSize)
        {
            Action refreshRunnable = null;

            this.similarity      = similarity;
            this.similarityCache = new Cache <Tuple <long, long>, double>(new SimilarityRetriever(similarity), maxCacheSize);
            if (refreshRunnable == null)
            {
                refreshRunnable = () => this.similarityCache.clear();
            }
            this.refreshHelper = new RefreshHelper(refreshRunnable);
            this.refreshHelper.addDependency(similarity);
        }
Beispiel #7
0
 protected void reload()
 {
     if (reloadLock.tryLock())
     {
         try {
             long newLastModified = dataFile.lastModified();
             _delegate    = new GenericItemSimilarity(new FileItemItemSimilarityIterable(dataFile));
             lastModified = newLastModified;
         } finally {
             reloadLock.unlock();
         }
     }
 }
Beispiel #8
0
        public GenericItemBasedRecommender(DataModel dataModel, ItemSimilarity similarity, CandidateItemsStrategy candidateItemsStrategy, MostSimilarItemsCandidateItemsStrategy mostSimilarItemsCandidateItemsStrategy)
            : base(dataModel, candidateItemsStrategy)
        {
            Action refreshRunnable = null;

            this.similarity = similarity;
            this.mostSimilarItemsCandidateItemsStrategy = mostSimilarItemsCandidateItemsStrategy;
            if (refreshRunnable == null)
            {
                refreshRunnable = () => this.capper = this.buildCapper();
            }
            this.refreshHelper = new RefreshHelper(refreshRunnable);
            this.refreshHelper.addDependency(dataModel);
            this.refreshHelper.addDependency(similarity);
            this.refreshHelper.addDependency(candidateItemsStrategy);
            this.refreshHelper.addDependency(mostSimilarItemsCandidateItemsStrategy);
            this.capper = this.buildCapper();
        }
Beispiel #9
0
 public MostSimilarEstimator(long toItemID, ItemSimilarity similarity, Rescorer <Tuple <long, long> > rescorer)
 {
     this.toItemID   = toItemID;
     this.similarity = similarity;
     this.rescorer   = rescorer;
 }
 protected void reload() {
   if (reloadLock.tryLock()) {
     try {
       long newLastModified = dataFile.lastModified();
       _delegate = new GenericItemSimilarity(new FileItemItemSimilarityIterable(dataFile));
       lastModified = newLastModified;
     } finally {
       reloadLock.unlock();
     }
   }
 }
Beispiel #11
0
 public AllSimilarItemsCandidateItemsStrategy(ItemSimilarity similarity)
 {
     this.similarity = similarity;
 }
Beispiel #12
0
 public GenericBooleanPrefItemBasedRecommender(DataModel dataModel, ItemSimilarity similarity)
     : base(dataModel, similarity)
 {
 }
Beispiel #13
0
 public GenericBooleanPrefItemBasedRecommender(DataModel dataModel, ItemSimilarity similarity, CandidateItemsStrategy candidateItemsStrategy, MostSimilarItemsCandidateItemsStrategy mostSimilarItemsCandidateItemsStrategy)
     : base(dataModel, similarity, candidateItemsStrategy, mostSimilarItemsCandidateItemsStrategy)
 {
 }
Beispiel #14
0
 internal SimilarityRetriever(ItemSimilarity similarity)
 {
     this.similarity = similarity;
 }
Beispiel #15
0
 public GenericItemBasedRecommender(DataModel dataModel, ItemSimilarity similarity)
     : this(dataModel, similarity, AbstractRecommender.getDefaultCandidateItemsStrategy(), getDefaultMostSimilarItemsCandidateItemsStrategy())
 {
 }
Beispiel #16
0
 public KnnItemBasedRecommender(DataModel dataModel, ItemSimilarity similarity, Optimizer optimizer, int neighborhoodSize) :
     this(dataModel, similarity, optimizer, getDefaultCandidateItemsStrategy(), getDefaultMostSimilarItemsCandidateItemsStrategy(), neighborhoodSize)
 {
 }
Beispiel #17
0
 public CachingItemSimilarity(ItemSimilarity similarity, DataModel dataModel)
     : this(similarity, dataModel.getNumItems())
 {
 }