Browse Source

rule_rank_h_by_24h add platform_rule

liqian 2 years ago
parent
commit
14234410f8
2 changed files with 12 additions and 1 deletions
  1. 1 1
      config.py
  2. 11 0
      rule_rank_h_by_24h.py

+ 1 - 1
config.py

@@ -111,7 +111,7 @@ class BaseConfig(object):
 
     # 小时级更新过去24h数据规则参数
     RULE_PARAMS_24H = {
-        'rule1': {'cal_score_func': 2, 'return_count': 100},
+        'rule1': {'cal_score_func': 2, 'return_count': 100, 'platform_return_rate': 0.001},
     }
 
     # 地域分组小时级规则更新使用数据

+ 11 - 0
rule_rank_h_by_24h.py

@@ -23,6 +23,13 @@ features = [
     'view次数',  # 过去24h曝光次数
     'play次数',  # 过去24h播放次数
     'share次数',  # 过去24h分享次数
+    'platform_return',
+    'platform_preview',
+    'platform_preview_total',
+    'platform_show',
+    'platform_show_total',
+    'platform_view',
+    'platform_view_total',
 ]
 
 
@@ -102,6 +109,7 @@ def cal_score2(df):
     df['share_rate'] = df['share次数'] / (df['view人数'] + 1000)
     df['back_rate'] = df['回流人数'] / (df['share次数'] + 100)
     df['score'] = df['share_rate'] + 0.01 * df['back_rate']
+    df['platform_return_rate'] = df['platform_return'] / df['回流人数']
     df = df.sort_values(by=['score'], ascending=False)
     return df
 
@@ -128,6 +136,9 @@ def video_rank_h(df, now_date, now_h, rule_key, param):
         day_recall_df = df[df['回流人数'] > return_count]
     else:
         day_recall_df = df
+    platform_return_rate = param.get('platform_return_rate', 0)
+    day_recall_df = day_recall_df[day_recall_df['platform_return_rate'] > platform_return_rate]
+
     # videoid重复时,保留分值高
     day_recall_df = day_recall_df.sort_values(by=['score'], ascending=False)
     day_recall_df = day_recall_df.drop_duplicates(subset=['videoid'], keep='first')