新Alpha前端页面


用户的兴趣表计算

<ol> <li>数据表结构参考 <a href="https://www.showdoc.cc/138691617729638?page_id=1328357381584708">https://www.showdoc.cc/138691617729638?page_id=1328357381584708</a> 1.用户端新增字段:概念名和概念对应的前端类型(fronttype)</li> <li>特殊动作回传 新增:点赞、收藏、转发、评论 0 没有 1 点赞、收藏、转发、评论 超出协定数量:数据进行截断(前端考虑)</li> </ol> <p>每日用户对象浏览表 删除字段 开始浏览时间和结束浏览时间 新增对象的浏览的次数 新增字段:点赞(对象,点击评论不算)、收藏、转发、评论(对象,如果是评论已有评论不算) 访问次数:累加 访问时间:累加</p> <p><img src="https://www.showdoc.cc/server/api/common/visitfile/sign/c146e2bbf2da01458eca7b7bfdcc2a62?showdoc=.jpg" alt="" /></p> <p>表名:view</p> <h2>短期兴趣表计算逻辑:</h2> <p>1.指定开始日期和结束日期从每日对象统计表提取数据</p> <p><strong>对象浏览表</strong> 2.统计每个对象的浏览次数 {'cxxx':15,'cxx':15}</p> <p><strong>对象时长表</strong> 2.统计每个对象的浏览时长(单位秒) {'cxx':90,'cxx':1500}</p> <p><strong>对象的点赞收藏表</strong></p> <ol> <li>从点赞表(like)中提取.指定开始日期和结束日期的数据</li> <li>统计每个对象的点赞 {'cxxx':1,'cxx':1'cxx':1}</li> <li>从收藏表(collect)中提取.指定开始日期和结束日期的数据</li> <li>统计收藏的对象 {'cxxx':1,'cxx':1'cxx':1} 5.从转发表(share)中提取.指定开始日期和结束日期的数据 {'cxxx':5,'cxx':2}</li> </ol> <p><strong>对象的评论次数表</strong> 1.从评论表(comment)中提取.指定开始日期和结束日期的数据 2.统计每个对象评论数量 {'cxxx':5,'cxx':2}</p> <p><strong>概念的浏览概率表</strong> 1.加工 对象浏览表 结果,计算出每个概念的的浏览次数 {'人物':10}</p> <p><strong>概念的浏览时常表</strong></p> <ol> <li>加工对象时长表的结果,计算每个概念的浏览时长 {'人物':10}</li> </ol> <p><strong>概念的点赞收藏表</strong></p> <ol> <li>加工对象的点赞收藏表。计算每个对象的点赞收藏分享的数据</li> </ol> <p><strong>概念的评论次数表</strong></p> <ol> <li>加工对象的评论次数表数据,计算出每个概念的评论次数</li> </ol> <p>将计算出的数据写入到short_interest表中</p> <h2>长期兴趣表计算逻辑:</h2> <ol> <li>把短期兴趣表计算结果汇合 求平均值就是长期兴趣表结算结果</li> </ol> <h1>第二种计算方法</h1> <h2>短期兴趣表计算逻辑</h2> <ol> <li>每日把用户当天的行为记录经过统计汇总到一张对象浏览表中。表名 object_views</li> </ol> <table> <thead> <tr> <th>字段</th> <th>类型</th> <th>必要</th> <th>长度</th> <th>解释</th> </tr> </thead> <tbody> <tr> <td>user_id</td> <td>int</td> <td>是</td> <td>11</td> <td>用户id</td> </tr> <tr> <td>obj_key</td> <td>str</td> <td>是</td> <td>30</td> <td>对象主键</td> </tr> <tr> <td>concept_name</td> <td>str</td> <td>是</td> <td>30</td> <td>概念名</td> </tr> <tr> <td>spend_time</td> <td>int</td> <td>是</td> <td>11</td> <td>浏览时长</td> </tr> <tr> <td>number</td> <td>int</td> <td>是</td> <td>11</td> <td>浏览次数</td> </tr> <tr> <td>comment</td> <td>int</td> <td>是</td> <td>11</td> <td>评论次数</td> </tr> <tr> <td>like</td> <td>int</td> <td>是</td> <td>11</td> <td>点赞次数</td> </tr> <tr> <td>collect</td> <td>int</td> <td>是</td> <td>11</td> <td>搜藏次数</td> </tr> <tr> <td>ctime</td> <td>datetime</td> <td>是</td> <td></td> <td>日期</td> </tr> </tbody> </table> <ol> <li>概念浏览表在对象浏览表的基础加工,表名:concept_views</li> </ol> <table> <thead> <tr> <th>字段</th> <th>类型</th> <th>必要</th> <th>长度</th> <th>解释</th> </tr> </thead> <tbody> <tr> <td>user_id</td> <td>int</td> <td>是</td> <td>11</td> <td>用户id</td> </tr> <tr> <td>concept_name</td> <td>str</td> <td>是</td> <td>30</td> <td>概念名</td> </tr> <tr> <td>spend_time</td> <td>int</td> <td>是</td> <td>11</td> <td>浏览时长</td> </tr> <tr> <td>number</td> <td>int</td> <td>是</td> <td>11</td> <td>浏览次数</td> </tr> <tr> <td>comment</td> <td>int</td> <td>是</td> <td>11</td> <td>评论次数</td> </tr> <tr> <td>like</td> <td>int</td> <td>是</td> <td>11</td> <td>点赞次数</td> </tr> <tr> <td>collect</td> <td>int</td> <td>是</td> <td>11</td> <td>搜藏次数</td> </tr> <tr> <td>ctime</td> <td>datetime</td> <td>是</td> <td></td> <td>日期</td> </tr> </tbody> </table> <ol> <li> <p>然后根据对象浏览表和概念浏览表加工出用户短期信息表数据,写入redis 有序集合表</p> <pre><code>redis键名:User:Short_Insterest:Object:12:{'对象主键':12 // 次数 } redis键名:User:Short_Insterest:Concept:12:{'概念名编号/虚拟对象分组pkey':12 // 次数 }</code></pre> </li> <li>根据用户短期信息表数据再加工出用户长期信息表数据,写入redis redis键名:User:Long_Insterest:12 有序集合表 <pre><code>redis键名:User:Long_Insterest:Object:12:{'对象主键':12 // 次数 } redis键名:User:Long_Insterest:Concept:12:{'概念名编号/虚拟对象分组pkey':12 // 次数 }</code></pre></li> </ol> <pre><code>class A(): # 获取用户短期兴趣结果,如果没有返回空字典 def getShortInterest(): pass # 计算短期兴趣表数据 def calcObjectShortInterest(): pass def 定时统计长期兴趣表(): pass def 长期兴趣表数据生成(): pass def 默认兴趣表(): pass # 检查短期兴趣表/长期兴趣表是否存在 def existKey(key): pass # 统计用户对象短期兴趣表的主键数量 def getObjectShortInterestNumber(): pass # 提取用户短期兴趣表 指定数量,分值从高到低 可以提取每个主键对应的分值 def getObjectShortInterset(start,end): pass # 保存数据 def save(key,data,有效期): pass def 将对象浏览数据按照对象合并,写入mysql(): pass</code></pre>

页面列表

ITEM_HTML