def __init__(self, g_tokensets: list, p_tokensets: list): from bmc_munkres import munkres cost_mtx = [[self.cost(g, p) for p in p_tokensets] for g in g_tokensets] result_index_pairs = munkres.Munkres().compute(cost_mtx) self.mapping = { g_tokensets[i_g]: p_tokensets[i_p] for (i_g, i_p) in result_index_pairs }
def __init__(self, g_mwes, p_mwes): self.g_mwes, self.p_mwes = g_mwes, p_mwes self.cost_mtx = [ [self.cost(g, p) for p in self.p_mwes] for g in self.g_mwes] from bmc_munkres import munkres m = munkres.Munkres() self.result_indexes = m.compute(self.cost_mtx) self.mapping = {self.g_mwes[a]: self.p_mwes[b] for (a, b) in self.result_indexes}