Commit a707e407 authored by 赵威's avatar 赵威

get cpc result

parent 7cd08a93
...@@ -10,9 +10,9 @@ from models.esmm.fe import device_fe, diary_fe, tractate_fe ...@@ -10,9 +10,9 @@ from models.esmm.fe import device_fe, diary_fe, tractate_fe
from models.esmm.tractate_model import model_predict_tractate from models.esmm.tractate_model import model_predict_tractate
from utils.cache import get_essm_model_save_path, redis_client2 from utils.cache import get_essm_model_save_path, redis_client2
from utils.grey import recommed_service_category_device_id_by_tail from utils.grey import recommed_service_category_device_id_by_tail
from utils.portrait import (get_cpc_diary_list, get_user_portrait_tag3_read_v2, user_portrait_tag3_get_candidate_dict, from utils.portrait import (get_unread_cpc_diary_list, get_user_portrait_tag3_read_v2, user_portrait_tag3_get_candidate_dict,
user_portrait_tag3_get_candidate_unread_list, user_portrait_tag3_get_ctcvr_queue, user_portrait_tag3_get_candidate_unread_list, user_portrait_tag3_get_ctcvr_queue,
user_portrait_tag3_write_ctcvr_data) user_portrait_tag3_write_cpc_ctcvr, user_portrait_tag3_write_ctcvr_data)
def user_portrait_scan_info(device_dict, diary_dict, tractate_dict, diary_predict_fn, tractate_predict_fn, tail_number): def user_portrait_scan_info(device_dict, diary_dict, tractate_dict, diary_predict_fn, tractate_predict_fn, tail_number):
...@@ -72,12 +72,22 @@ def user_portrait_increment_scan_info(device_dict, diary_dict, tractate_dict, di ...@@ -72,12 +72,22 @@ def user_portrait_increment_scan_info(device_dict, diary_dict, tractate_dict, di
def offline_predict_diary(device_id, device_dict, diary_dict, predict_fn, size=300): def offline_predict_diary(device_id, device_dict, diary_dict, predict_fn, size=300):
time_begin = time.time() time_begin = time.time()
diary_ids = user_portrait_tag3_get_candidate_unread_list(device_id, "diary", size=size) cpc_set = set(get_unread_cpc_diary_list(device_id, size=size))
print("diary_ids: " + str(len(diary_ids))) diary_set_ids = set(user_portrait_tag3_get_candidate_unread_list(device_id, "diary", size=size))
res = model_predict_diary(device_id, diary_ids, device_dict, diary_dict, predict_fn)
print("res: " + str(len(res))) content_diary_ids = list(diary_set_ids.difference(cpc_set))
# print("res: " + str(len(res)) + " " + str(res[:5])) cpc_diary_ids = list(diary_set_ids.intersection(cpc_set))
user_portrait_tag3_write_ctcvr_data(device_id, "diary", res[:500])
print("content_diary_ids: " + str(len(content_diary_ids)))
print("cpc_diary_ids: " + str(len(cpc_diary_ids)))
content_res = model_predict_diary(device_id, content_diary_ids, device_dict, diary_dict, predict_fn)
print("content res: " + str(len(content_res)))
user_portrait_tag3_write_ctcvr_data(device_id, "diary", content_res)
cpc_res = model_predict_diary(device_id, cpc_diary_ids, device_dict, diary_dict, predict_fn)
print("cpc res: " + str(len(cpc_res)))
user_portrait_tag3_write_cpc_ctcvr_data(device_id, cpc_res)
total_time = (time.time() - time_begin) total_time = (time.time() - time_begin)
print("total cost {:.5f}s".format(total_time)) print("total cost {:.5f}s".format(total_time))
...@@ -142,8 +152,8 @@ if __name__ == "__main__": ...@@ -142,8 +152,8 @@ if __name__ == "__main__":
# main() # main()
lst = get_cpc_diary_list() device_id = "androidid_a25a1129c0b38f7b"
print(lst) offline_predict_diary(device_id, device_dict, diary_dict, diary_predict_fn, size=300)
total_time = (time.time() - time_begin) / 60 total_time = (time.time() - time_begin) / 60
print("total cost {:.2f} mins at {}".format(total_time, datetime.datetime.now())) print("total cost {:.2f} mins at {}".format(total_time, datetime.datetime.now()))
...@@ -195,12 +195,14 @@ def user_portrait_tag3_get_candidate_unread_list(device_id, content_type, size=5 ...@@ -195,12 +195,14 @@ def user_portrait_tag3_get_candidate_unread_list(device_id, content_type, size=5
return queue return queue
def get_cpc_diary_list(): def get_unread_cpc_diary_list(device_id, size=500):
key = "strategy:cpc_diary_list" key = "strategy:cpc_diary_list"
data = redis_client3.get(key) data = redis_client3.get(key)
read_list, _ = get_user_portrait_tag3_read_v2(device_id, "diary")
queue = []
if data: if data:
return json.loads(data) queue = json.loads(data)
return [] return get_n_unread_data_from_ids(queue, size, read_list)
def user_portrait_tag3_write_ctcvr_data(device_id, content_type, data): def user_portrait_tag3_write_ctcvr_data(device_id, content_type, data):
...@@ -214,3 +216,16 @@ def user_portrait_tag3_write_ctcvr_data(device_id, content_type, data): ...@@ -214,3 +216,16 @@ def user_portrait_tag3_write_ctcvr_data(device_id, content_type, data):
key = _user_portrait_tag3_get_ctcvr_candidate_key(device_id, content_type) key = _user_portrait_tag3_get_ctcvr_candidate_key(device_id, content_type)
redis_client4.set(key, json.dumps(data)) redis_client4.set(key, json.dumps(data))
redis_client4.expire(key, 60 * 60 * 24 * 30) redis_client4.expire(key, 60 * 60 * 24 * 30)
def user_portrait_tag3_write_cpc_ctcvr_data(device_id, data):
"""
device_id:
content_type: diary
data: [15420031, 15531030, 16049931, 15335637, 16443431]
return:
"""
if data:
key = "doris:user_portrait:tag3:ctcvr:candidate:cpc:diary:device_id:" + device_id
redis_client4.set(key, json.dumps(data))
redis_client4.expire(key, 60 * 60 * 24 * 30)
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment