def add_item_to_best_cluster(self, item):
        """ Adds items to best fit cluster    
            
            Removes from previous cluster if it existed in one
            Returns True if item is new or moved cluster
            Returns Fales if the item remains in the same cluster
        """ 
        
        best_cluster = None 
        best_fit = float("-inf")        
        previous_cluster = None
        
        # Remove from current cluster so it isn't contributing to own match
        textid = item[0]
        if textid in self.item_cluster:
            previous_cluster = self.item_cluster[textid]
            previous_cluster.remove_from_cluster(item)
            
        for cluster in self.clusters:
            fit = cluster.cosine_similary(item)
            if fit > best_fit:
                best_fit = fit
                best_cluster = cluster 
        
        best_cluster.add_to_cluster(item)
        self.item_cluster[textid] = best_cluster
        
        if best_cluster == previous_cluster:
            return False
        else:
            return True
 Adds items to best fit cluster    
            
            Removes from previous cluster if it existed in one
            Returns True if item is new or moved cluster
            Returns Fales if the item remains in the same cluster
        
pytorch_clusters.py