예제 #1
0
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
예제 #2
0
 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)