rank.py 1.0 KB

12345678910111213141516171819202122232425262728293031
  1. """
  2. @author: luojunhui
  3. """
  4. from applications.match_algorithm.recall import recall_videos
  5. from applications.functions.log import logging
  6. def jac_score(d1, d2):
  7. """
  8. 通过交并集来判断
  9. :param d1:
  10. :param d2:
  11. :return:
  12. """
  13. f1_keys = set(d1["key_words"])
  14. f2_keys = set(d2["key_words"])
  15. keys_union = f1_keys | f2_keys
  16. keys_intersection = f1_keys & f2_keys
  17. f1_search_keys = set(d1["search_keys"])
  18. f2_search_keys = set(d2["search_keys"])
  19. search_keys_union = f1_search_keys | f2_search_keys
  20. search_keys_intersection = f1_search_keys & f2_search_keys
  21. f1_extra_keys = set(d1["extra_keys"])
  22. f2_extra_keys = set(d2["extra_keys"])
  23. extra_keys_union = f1_extra_keys | f2_extra_keys
  24. extra_keys_intersection = f1_extra_keys & f2_extra_keys
  25. score_1 = len(keys_intersection) / len(keys_union)
  26. score_2 = len(search_keys_intersection) / len(search_keys_union)
  27. score_3 = len(extra_keys_intersection) / len(extra_keys_union)
  28. return score_1 * 0.4 + score_2 * 0.4 + score_3 * 0.2, d2['video_id']