Task01:熟悉新闻推荐系统的基本流程(数据库设计)

  • 0.代码版本
  • 1. 相关文件
  • 2. MySQL
  • 3. MongoDB
  • 4. Redis
  • 5. 流程图示

0.代码版本

该专栏的博客当中涉及的所有代码,均为组队学习期间的版本,大概在2021年12月12日左右,某一个可能的参考版本链接如下:

https://github.com/datawhalechina/fun-rec/tree/9bcfafaae339c443cc7911b9070bf52adef9e994

1. 相关文件

PS D:\Project\fun-rec\codes\news_recsys\news_rec_server> tree /f /a
卷 Data 的文件夹 PATH 列表
卷序列号为 7876-8A9C
D:.
|
+---controller
|       log_controller.py
|       这是MVC架构当中的controller部分,即:
|       MySQL内loginfo库中log_Y-m-d表的控制文件
|
|       user_action_controller.py
|       这是MVC架构当中的controller部分,即:
|       MySQL内userinfo库中register_user表的控制文件
|       也控制user_collections、user_likes、user_read
|       主要是在注册时新增用户,登录时做身份校验
|       以及根据前端传来的用户行为更新对应的数据
|       例如删除用户的喜欢,或者是新增用户的喜欢
|
+---dao|   mongo_server.py|    MVC架构当中MongoDB数据库的Model文件|  用于和MongoDB数据库进行交互|  返回与数据库的连接使得数据库被操作|  |   mysql_server.py|    MVC架构当中MySQL数据库的Model文件|    用于和MySQL数据库进行交互,返回与数据库的连接||   README.md| 项目的说明文件||   redis_server.py|    MVC架构当中Redis数据库的Model文件|    用于和Redis数据库进行交互,返回与数据库的连接|\---entity\--|    logitem.py|  定义MySQL内loginfo库log_Y-m-d表的结构|  主要是用来存储用户行为,包括阅读、点赞等|    |    register_user.py|  定义MySQL内userinfo库register_user表的结构| 主要是为了存储已经注册的用户的个人信息及账户| |    user_collections.py|   定义MySQL内userinfo库user_collections表的结构|  主要是用来存储用户收藏行为的详细信息| |    user_exposure.py|  定义MySQL内userinfo库exposure_Y-m-d表的结构|    主要是用来存储用户的曝光表,每天存一个版本|   也就是说,每个表包含截止到当天的所有曝光数据|  |    user_likes.py| 定义MySQL内userinfo库user_likes表的结构|    主要是用来存储用户点赞行为的详细信息| |    user_read.py|  定义MySQL内userinfo库user_read表的结构| 主要是用来存储用户阅读行为的详细信息|----------------------------------------------------------

2. MySQL

我感觉有点神奇,user_likesuser_collections为啥同时存在昵称username和用户编号userid,这两者都是唯一的,不允许重复啊

所以说根据其中一个,就可以确定用户的身份,就像user_readexposure_Y-m-d,都只用唯一的id标识用户和新闻

而且这个exposure_Y-m-d也挺奇怪,存的是当天的曝光表,注意,是当天的曝光,也就是,每天一个表,从Redis更新过来

我想起来了,物料处理的时候会有一个叫news_to_redis.py的文件,在那里面会清空Redis所有的数据,也就是Redis按天更新

3. MongoDB


这里也挺神奇的,RedisProtrail当中竟然没有新闻的热度值,热度值是在FeatureProtrail当中,随着物料处理按天进行热度更新

这里的RedisProtrail的数据就是流向Redis[1]Redis[2]的用来展示新闻的数据,包含的静态信息和动态信息

FeatureProtrail的数据才是被cold_start.pyhot_recall.py处理之后流向Redis[0]用来生成推荐和生成热门的

而且还有一个问题,为什么用户画像当中要包含密码啊?这个属性好像从来没有被用到吧,即便后面升级也不会使用吧

然后就是关于历史行为的统计了,这里设定的是对用户过去15天内的likecollections进行top3新闻类别等的统计,没有阅读量

4. Redis

这里基本都还算正常吧,神奇的是曝光表,这个东西好像是只记录当天的推荐历史,去重的话也只是针对当天的历史去重,可以有昨天的

如同上文所说,物料处理的时候会有一个叫news_to_redis.py的文件,在那里面会清空Redis所有的数据,也就是Redis按天更新

5. 流程图示

Task01:熟悉新闻推荐系统的基本流程(数据库设计)相关推荐

  1. Task01:熟悉新闻推荐系统的基本流程(项目结构)

    Task01:熟悉新闻推荐系统的基本流程(项目结构) 0.代码版本 1. 文件说明 2. 流程图示 3. 架构图示[^1] 0.代码版本 该专栏的博客当中涉及的所有代码,均为组队学习期间的版本,大概在 ...

  2. Task01:熟悉新闻推荐系统的基本流程(代码复现)

    Task01:熟悉新闻推荐系统的基本流程 0.代码版本 1.系统信息 2.`python`环境 3.`MySQL`数据库 4.`MongoDB` 5.`Redis` 6.`Node.js` 7. 复现 ...

  3. 推荐系统-Task01熟悉新闻推荐系统基本流程

    参考资料: 项目流程讲解:https://datawhale.feishu.cn/minutes/obcnzns778b725r5l535j32ohttps://datawhale.feishu.cn ...

  4. 一、熟悉新闻推荐系统基本流程

    一.悉新闻推荐系统基本流程 环境搭建: vmware + ubuntu20.04(虚拟机) 前端框架: Vue. 后端框架: Flask 数据库: MySQL.MongoDB.redis IDE:vs ...

  5. 推荐系统实践Task1:熟悉新闻推荐系统基本流程

    1 环境搭建 操作系统:Windows10 MySQL:8.0.25 Redis:5.0.14 Mongodb:5.0.5 Python 3.8 前端IDE:WebStorm2021.1 2 项目导入 ...

  6. 基于JAVA的新闻文章发布管理系统【数据库设计、源码、开题报告】

    数据库脚本下载地址: https://download.csdn.net/download/itrjxxs_com/86427648 主要使用技术 Spring+SpringMVC+Mybatis+B ...

  7. MySQL 学习笔记(14)— 数据库设计流程、实体关系图、第一范式、第二范式、第三范式、外键使用

    本文参考:https://gitbook.cn/gitchat/column/undefined/topic/5db92c12a9c3a53bc3800f0c 1. 数据库设计流程 数据库设计是对数据 ...

  8. 软件设计之 数据库设计

    [按语:在软件设计或是动态网站开发中,数据库设计时很重要,我觉得可以说是开发工作的核心部分,所以学好数据库设计,是很重要的,也是大有前途的...]  ◆.概念 首先要搞清楚容易混淆的两个概念:&quo ...

  9. 【新闻推荐系统】(task1)系统搭建基本流程

    学习总结 sparrow电影推荐系统和我们本次要搭建的新闻推荐系统类似: 首先是离线处理部分: 获取数据:爬取数据后画像处理.用户画像和物品画像,物料存入MongoDB中的SinaNews数据库中:M ...

  10. 新闻推荐系统-项目介绍(PRD)

    新闻推荐系统 b站链接 制作不易,6月后开源全部代码以及数据,记得一键三联哦! 开源代码: github代码库 mysql: 链接:https://pan.baidu.com/s/1jLzfYbpsf ...

最新文章

  1. Java并发编程(7):使用synchronized获取互斥锁的几点说明
  2. npm介绍以及常用命令
  3. node python复用代码_python-代码复用(函数、lambda、递归、PyInstaller库)
  4. android java 调用js_Android Java/JS互相调用
  5. I.MX6 MAC地址修改
  6. Java会走向晦暗吗?Kotlin会取而代之吗
  7. Python-读取本地视频转化为图片方法记录(一)
  8. gtx1050ti最稳定的驱动_笔记本1050ti显卡安装最新驱动版本 (415.27) 记录 NVIDIA显卡GeForce系列...
  9. java毕业设计彩妆销售网站Mybatis+系统+数据库+调试部署
  10. java中的分号是什么作用,分号的作用是什么
  11. 给数据库中的某个表添加一个字段!!!!!
  12. 2020福州大学计算机录取名单,福州大学数学与计算机科学/软件学院2020年硕士研究生招生复试结果(第二批非全日制公示)...
  13. 分段线性函数三种MIP模型
  14. AES简介加密算法介绍
  15. StarRocks 企业行|走进 58 同城,探索极速统一 3.0 时代的企业实践
  16. cesium中限制地图浏览范围
  17. python快速实现简易俄罗斯方块小游戏
  18. Python中 5个非常有用的单行代码
  19. 计算机视觉经典书目清单
  20. 【转】世上万事,不过是一懒二拖三不读书

热门文章

  1. 安卓手机修改host
  2. 配置内网windows域教程,模拟公司内网架构
  3. chrome清除缓存快捷键
  4. g120xa正反转参数_原创分享 | 西门子G120变频器的参数备份
  5. MATLAB小数取整
  6. 傅里叶变换:不只是多项式乘法
  7. 【代码复现问题】apex安装不上+win10分布式训练出问题
  8. 自适应滤波-----LMS(Least Mean Square)算法
  9. 这家估值83亿美元的公司,是「侠盗」还是「割韭菜」?
  10. java flush是什么意思,java – JPA中flush的确切目的是什么