新Alpha前端页面


推荐接口20190903逻辑

<ol> <li>用户传recommend_type,根据recommend_type决定推荐类型 1.1 如果recommend_type是概念名,则进入该概念随机抽取对象 1.2 如果recommend_type是栏目类型,则进入栏目推荐</li> <li>进入栏目推荐会分成两种情况 2.1 有30%的几率触发基于用户最近浏览历史推荐 2.2 有70%的几率触发基于栏目所包含的概念推荐</li> </ol> <p>基于用户浏览器历史推荐(步骤)</p> <ol> <li>获取栏目下的概念列表</li> <li>挑选概念 2.1 判断概念的数量 2.1.1 如果概念数量小于等于2,那么返回所有的概念 2.1.2 如果概念数量大于2,那么概念数量除以2,向上取整,然后和2比较,取最大值。得到抽取的次数number 2.1.2.1 根据概念的权重循环进行抽取概念。 2.1.2.2 如果抽取的概念权重大于等于1.5,那么number减1,直到number等于0,结束抽取,整体抽取次数最多60次。</li> <li>根据挑选的概念,按照比列随机抽取主键,假设前端需要的数量max_number 3.1 如果抽取的概念数量为1,那么这个概念抽取的数量就是max_number 3.2 如果抽取概念数量大于1,那么通过列表推导式,把概念权重大于等于0.15的权重值求和total_rate 3.3 遍历概念列表,如果概念的权重小于0.15,那么max_number<em>权重,向上取整 如果概念权重大于等于0.15,那么权重值除以total_rate再乘以max_number 3.4 遍历概念,根据概念随机抽取对象,抽取数量为概念对应的主键数</em>5,放入到列表keys 3.5 将keys进行过滤,过滤掉3天内推荐过的主键,得到列表obj_keys,随机打乱obj_keys 3.6 遍历obj_keys,按照每个概念对应的数量,抽取足够的主键数量。放入到列表res_li 3.7 进入根据用户浏览历史获取推荐主键 3.8 从数据库中提取指定用户最近的30条对象主键,并且打乱对象主键顺序 3.9 获取到该栏目的推荐的概念列表recommend_concept_li 3.10 遍历主键,从relation_snapshot中提取类型为peers的主键,如果有主键对应的概念在recommend_concept_li里,记录主键,如果没有,在relation_stat中查找关联概念是否在recommend_concept_li,记录对象主键,所有主键收集在obj_key_li 3.11 遍历obj_key_li,提取有关联的概念列表,得到一个字典,每一个主键对应的概念列表related_dict 3.12 遍历related_dict,保证提取5个主键关联的主键数量,得到obj_keys 3.13 从res_li随机去掉3个主键,随机抽取obj_keys的3个主键放入到res_li 3.14 获取res_li的数据 3.15 提取对应的详细信息</li> </ol>

页面列表

ITEM_HTML