public GenericUserSimilarity(UserSimilarity otherSimilarity, DataModel dataModel, int maxToKeep) { this.similarityMaps = new FastByIDMap <FastByIDMap <double> >(); long[] itemIDs = longIteratorToList(dataModel.getUserIDs()); IEnumerator <UserUserSimilarity> allSimilarities = new DataModelSimilaritiesIterator(otherSimilarity, itemIDs); this.initSimilarityMaps(TopItems.getTopUserUserSimilarities(maxToKeep, allSimilarities).GetEnumerator()); }
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()); }
public GenericUserSimilarity(IUserSimilarity otherSimilarity, IDataModel dataModel, int maxToKeep) { long[] userIDs = longIteratorToList(dataModel.GetUserIDs()); IEnumerator <UserUserSimilarity> it = new DataModelSimilaritiesIterator(otherSimilarity, userIDs); var keptSimilarities = TopItems.GetTopUserUserSimilarities(maxToKeep, it); initSimilarityMaps(keptSimilarities.GetEnumerator()); }
/// <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()); }