|
@@ -99,6 +99,14 @@ def cal_score(df, param):
|
|
|
return df
|
|
|
|
|
|
|
|
|
+def cal_score2(df):
|
|
|
+ # score2计算公式: score = lastonehour_return/(lastonehour_view+1000)
|
|
|
+ df = df.fillna(0)
|
|
|
+ df['score'] = df['lastonehour_return'] / (df['lastonehour_view'] + 1000)
|
|
|
+ df = df.sort_values(by=['score'], ascending=False)
|
|
|
+ return df
|
|
|
+
|
|
|
+
|
|
|
def video_rank(df, now_date, now_h, rule_key, param):
|
|
|
"""
|
|
|
获取符合进入召回源条件的视频,与每日更新的rov模型结果视频列表进行合并
|
|
@@ -171,7 +179,11 @@ def rank_by_h(now_date, now_h, rule_params):
|
|
|
for key, value in rule_params.items():
|
|
|
log_.info(f"rule = {key}, param = {value}")
|
|
|
# 计算score
|
|
|
- score_df = cal_score(df=feature_df, param=value)
|
|
|
+ cal_score_func = value.get('cal_score_func', 0)
|
|
|
+ if cal_score_func == 2:
|
|
|
+ score_df = cal_score2(df=feature_df)
|
|
|
+ else:
|
|
|
+ score_df = cal_score(df=feature_df, param=value)
|
|
|
video_rank(df=score_df, now_date=now_date, now_h=now_h, rule_key=key, param=value)
|
|
|
# to-csv
|
|
|
score_filename = f"score_{key}_{datetime.datetime.strftime(now_date, '%Y%m%d%H')}.csv"
|