def get_max_keyword_similarity(costfunction: CostFunction, query: KeywordCoordinate, subsets): """ This function gets executed inside every maximum keyword similarity process. :param costfunction: The CostFunction :param query: The Query :param subsets: The subsets for the process :return: A list with tuples of the costs and their corresponding subset """ results = [] for subset in subsets: current_cost = costfunction.get_maximum_keyword_distance(query, subset) results.append((current_cost, subset)) return results
def test_get_maximum_keyword_distance4(self): keywords_query = ['food', 'fun', 'outdoor'] keywords_kwc1 = ['food', 'fun', 'outdoor'] keywords_kwc2 = ['food', 'fun', 'outdoor'] keywords_kwc3 = ['food', 'fun', 'outdoor'] coordinates_dont_matter_here = 0 query = KeywordCoordinate(coordinates_dont_matter_here, coordinates_dont_matter_here, keywords_query) kwc1 = KeywordCoordinate(coordinates_dont_matter_here, coordinates_dont_matter_here, keywords_kwc1) kwc2 = KeywordCoordinate(coordinates_dont_matter_here, coordinates_dont_matter_here, keywords_kwc2) kwc3 = KeywordCoordinate(coordinates_dont_matter_here, coordinates_dont_matter_here, keywords_kwc3) dataset: dataset_type = [kwc1, kwc2, kwc3] cf = CostFunction(euclidean_distance, separated_cosine_similarity, 0.3, 0.3, 0.4) result = cf.get_maximum_keyword_distance(query, dataset) self.assertAlmostEqual(result, 0.0, delta=0.01)