def calc_divergence(self, n, word_count, params): if params['divergence'] == 'l2': d = Util.l2dist_fast(self.regular_sum, self.model.weights_, n, word_count) return d elif params['divergence'] == 'kl': d = Util.kl_div_fast(self.model.weights_, n, word_count) return d elif params['divergence'] == 'dispersion': points = [self.model.means_[int(k)] for k,v in word_count.items() for i in range(0, v)] d = Util.calc_dispersion(points) return d else: print 'invalid divergence' exit()
def calc_dispersion(self, word_count, params): points = [self.str_to_tuple(k) for k,v in word_count.items() for i in range(0, v)] d = Util.calc_dispersion(points) return d