Ejemplo n.º 1
0
 def get_similar_users(self, user, user_list, item_list, min_value=MIN_SIMILARITY_VALUE):
     user_item_matrix = self.create_matrix(user_list, item_list)
     sim_list = []
     for other in user_list:
         if user==other:continue
         try:
           sim=utils.distance_matrix_p1_p2(user_item_matrix[user.id],user_item_matrix[other.id]) #returns a 0..1 value 
         except KeyError:
           user_item_matrix = self.create_matrix(user_list, item_list, bust_cache=True)
           sim=utils.distance_matrix_p1_p2(user_item_matrix[user.id],user_item_matrix[other.id]) #returns a 0..1 value 
         if sim>min_value:
             sim_list.append((sim,other))
         
     sim_list.sort(reverse=True)
     return sim_list
Ejemplo n.º 2
0
 def get_similar_items(self, item, user_list, item_list, min_value=MIN_SIMILARITY_VALUE):
     user_item_matrix = self.create_matrix(user_list, item_list)
     item_user_matrix = self.rotate_matrix(user_item_matrix)
     sim_list = []
     for other in item_list:
         if item==other:continue
         try:
           sim=utils.distance_matrix_p1_p2(item_user_matrix[item.id],item_user_matrix[other.id]) #returns a 0..1 value
         except KeyError:
           sim=0
         if sim>min_value:
             sim_list.append((sim,other))
         
     sim_list.sort(reverse=True)
     return sim_list