|
@@ -103,10 +103,13 @@ def cal_score1(df):
|
|
|
return df
|
|
|
|
|
|
|
|
|
-def cal_score2(df):
|
|
|
+def cal_score2(df, param):
|
|
|
# score2计算公式: score = share次数/(view+1000)+0.01*return/(share次数+100)
|
|
|
df = df.fillna(0)
|
|
|
- df['share_rate'] = df['share次数'] / (df['view人数'] + 1000)
|
|
|
+ if param.get('view_type', None) == 'video-show':
|
|
|
+ df['share_rate'] = df['share次数'] / (df['platform_show'] + 1000)
|
|
|
+ else:
|
|
|
+ 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['回流人数']
|
|
@@ -186,7 +189,7 @@ def rank_by_h(now_date, now_h, rule_params, project, table):
|
|
|
# 计算score
|
|
|
cal_score_func = value.get('cal_score_func', 1)
|
|
|
if cal_score_func == 2:
|
|
|
- score_df = cal_score2(df=feature_df)
|
|
|
+ score_df = cal_score2(df=feature_df, param=value)
|
|
|
else:
|
|
|
score_df = cal_score1(df=feature_df)
|
|
|
video_rank_h(df=score_df, now_date=now_date, now_h=now_h, rule_key=key, param=value)
|