Pārlūkot izejas kodu

update video rank

linfan 2 gadi atpakaļ
vecāks
revīzija
3aeb6a6c79
1 mainītis faili ar 47 papildinājumiem un 13 dzēšanām
  1. 47 13
      video_rank.py

+ 47 - 13
video_rank.py

@@ -661,12 +661,29 @@ def video_new_rank2(data, size, top_K, flow_pool_P, ab_code, flowConfig=None):
             #print("flow_recall_name:", flow_recall_name)
             if flow_recall_name is not None and flow_recall_name.find("#") > -1:
                 flow_result = flow_result + 1
-        if flow_result > 0:
-            if len(rov_recall_rank) > 0:
-                rank_result.append(rov_recall_rank[0])
-            elif len(flow_recall_rank) > 0:
-                rank_result.append(flow_recall_rank[0])
-        #print("flow_result:", flow_result)
+        if flow_result > 0 and len(rov_recall_rank) > 0:
+            rank_result.append(rov_recall_rank[0])
+        else:
+            i = 0
+            while i < size - top_K:
+                # 随机生成[0, 1)浮点数
+                rand = random.random()
+                # log_.info('rand: {}'.format(rand))
+                if rand < flow_pool_P:
+                    if flow_recall_rank:
+                        rank_result.append(flow_recall_rank[0])
+                        flow_recall_rank.remove(flow_recall_rank[0])
+                    else:
+                        rank_result.extend(rov_recall_rank[:size - top_K - i])
+                        return rank_result[:size], flow_result
+                else:
+                    if rov_recall_rank:
+                        rank_result.append(rov_recall_rank[0])
+                        rov_recall_rank.remove(rov_recall_rank[0])
+                    else:
+                        rank_result.extend(flow_recall_rank[:size - top_K - i])
+                        return rank_result[:size], flow_result
+                i += 1
     else:
         # 按概率 p 及score排序获取 size - k 个视频
         i = 0
@@ -799,15 +816,32 @@ def video_sanke_rank(data, size, top_K, flow_pool_P, ab_Code='', exp_config=None
     if flowConfig=="1" and len(rov_recall_rank)>0:
         for recall_item in rank_result:
             flow_recall_name = recall_item.get("flowPool", '')
-            #print("recall_item:", recall_item)
-            #print("flow_recall_name:", flow_recall_name)
             if flow_recall_name is not None and flow_recall_name.find("#")>-1:
                 flow_result = flow_result+1
-        if flow_result>0:
-            if len(rov_recall_rank)>0:
-                rank_result.append(rov_recall_rank[0])
-            elif len(flow_recall_rank)>0:
-                rank_result.append(flow_recall_rank[0])
+        if flow_result>0 and len(rov_recall_rank)>0:
+            rank_result.append(rov_recall_rank[0])
+        else:
+            # 按概率 p 及score排序获取 size - k 个视频
+            i = 0
+            while i < size - top_K:
+                # 随机生成[0, 1)浮点数
+                rand = random.random()
+                # log_.info('rand: {}'.format(rand))
+                if rand < flow_pool_P:
+                    if flow_recall_rank:
+                        rank_result.append(flow_recall_rank[0])
+                        flow_recall_rank.remove(flow_recall_rank[0])
+                    else:
+                        rank_result.extend(rov_recall_rank[:size - top_K - i])
+                        return rank_result[:size], flow_result
+                else:
+                    if rov_recall_rank:
+                        rank_result.append(rov_recall_rank[0])
+                        rov_recall_rank.remove(rov_recall_rank[0])
+                    else:
+                        rank_result.extend(flow_recall_rank[:size - top_K - i])
+                        return rank_result[:size], flow_result
+                i += 1
         #print("flow_result:", flow_result)
     else:
         # 按概率 p 及score排序获取 size - k 个视频