""" @author: luojunhui """ from applications.match_algorithm.recall import recall_videos from applications.functions.log import logging def jac_score(d1, d2): """ 通过交并集来判断 :param d1: :param d2: :return: """ f1_keys = set(d1["key_words"]) f2_keys = set(d2["key_words"]) keys_union = f1_keys | f2_keys keys_intersection = f1_keys & f2_keys f1_search_keys = set(d1["search_keys"]) f2_search_keys = set(d2["search_keys"]) search_keys_union = f1_search_keys | f2_search_keys search_keys_intersection = f1_search_keys & f2_search_keys f1_extra_keys = set(d1["extra_keys"]) f2_extra_keys = set(d2["extra_keys"]) extra_keys_union = f1_extra_keys | f2_extra_keys extra_keys_intersection = f1_extra_keys & f2_extra_keys score_1 = len(keys_intersection) / len(keys_union) score_2 = len(search_keys_intersection) / len(search_keys_union) score_3 = len(extra_keys_intersection) / len(extra_keys_union) return score_1 * 0.4 + score_2 * 0.4 + score_3 * 0.2, d2['video_id']