|
@@ -973,26 +973,39 @@ def video_sank_pos_rank(data, size, top_K, flow_pool_P, ab_Code='', exp_config=N
|
|
|
if exp_config and 'recall_num_limit' in exp_config:
|
|
|
recall_num_limit_dict = exp_config['recall_num_limit']
|
|
|
exp_recall_dict = {}
|
|
|
- for j in range(3):
|
|
|
+ select_pos = 0
|
|
|
+ sim_pos = 0
|
|
|
+ filter_sim_pos = 0
|
|
|
+ filter_sim_pos2 = 0
|
|
|
+ for j in range(1):
|
|
|
if len(rov_recall_rank)>12:
|
|
|
break
|
|
|
for recall_pos_config in recall_list:
|
|
|
+ select_pos =select_pos+1
|
|
|
rand_num = random.random()
|
|
|
- print("choose_item:",recall_pos_config, "rand_num:", rand_num)
|
|
|
+ #print("choose_item:",recall_pos_config, "rand_num:", rand_num)
|
|
|
for per_recall_item in recall_pos_config:
|
|
|
per_recall_name = per_recall_item[0]
|
|
|
per_recall_freq = per_recall_item[1]
|
|
|
per_recall_num = exp_recall_dict.get(per_recall_name, 0)
|
|
|
per_recall_total_num = recall_num_limit_dict.get(per_recall_name, 0)
|
|
|
+ if select_pos==2 and per_recall_name.find("sim")>-1 and rand_num < per_recall_freq and \
|
|
|
+ per_recall_name in recall_dict:
|
|
|
+ sim_pos +=1
|
|
|
# recall set total num
|
|
|
- if len(recall_num_limit_dict)>0 and per_recall_total_num>0 and per_recall_num>= per_recall_total_num:
|
|
|
+ if len(recall_num_limit_dict)>0 and per_recall_total_num>0 \
|
|
|
+ and per_recall_num>= per_recall_total_num:
|
|
|
+ if sim_pos>0:
|
|
|
+ filter_sim_pos +=1
|
|
|
continue
|
|
|
if rand_num < per_recall_freq and per_recall_name in recall_dict:
|
|
|
per_recall = recall_dict[per_recall_name]
|
|
|
for recall_item in per_recall:
|
|
|
vid = recall_item['videoId']
|
|
|
if vid in select_ids:
|
|
|
- print("exsited vid:", vid, "\t:", per_recall_name)
|
|
|
+ if sim_pos > 0:
|
|
|
+ filter_sim_pos2 += 1
|
|
|
+ #print("exsited vid:", vid, "\t:", per_recall_name)
|
|
|
continue
|
|
|
recall_item['rand'] = rand_num
|
|
|
rov_recall_rank.append(recall_item)
|
|
@@ -1091,7 +1104,7 @@ def video_sank_pos_rank(data, size, top_K, flow_pool_P, ab_Code='', exp_config=N
|
|
|
rank_result.extend(flow_recall_rank[:size - top_K - i])
|
|
|
return rank_result[:size],flow_num
|
|
|
i += 1
|
|
|
- return rank_result[:size], flow_num
|
|
|
+ return rank_result[:size], flow_num, sim_pos, filter_sim_pos, filter_sim_pos2
|
|
|
|
|
|
|
|
|
|