public double Calculate(int itemA, int itemB) { double theta = 0.9d; IItemSimilarity collaborateSimilarity = new ItemCollaborativeSimilarity(); IItemSimilarity genreSimilarity = new ItemGenreSimilarity(); return theta * collaborateSimilarity.Calculate(itemA, itemB) + (1 - theta) * genreSimilarity.Calculate(itemA, itemB); }
public double Calculate(int itemA, int itemB) { double theta = 0.9d; IItemSimilarity collaborateSimilarity = new ItemCollaborativeSimilarity(); IItemSimilarity genreSimilarity = new ItemGenreSimilarity(); return(theta * collaborateSimilarity.Calculate(itemA, itemB) + (1 - theta) * genreSimilarity.Calculate(itemA, itemB)); }
public Dictionary<int, double> GetNNSimilarity(int itemId) { IItemSimilarity itemSimilarity = new ItemCollaborativeSimilarity(); foreach (var otherItemId in this.allItems) { double similarity = itemSimilarity.Calculate(itemId, otherItemId); this.OtherItemsSimilarity.Add(otherItemId, similarity); } //do something to choose the k highest similar items return this.OtherItemsSimilarity; }