Task01:熟悉新闻推荐系统的基本流程(数据库设计)
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_likes
和user_collections
为啥同时存在昵称username
和用户编号userid
,这两者都是唯一的,不允许重复啊
所以说根据其中一个,就可以确定用户的身份,就像user_read
和exposure_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.py
和hot_recall.py
处理之后流向Redis[0]
用来生成推荐和生成热门的
而且还有一个问题,为什么用户画像当中要包含密码啊?这个属性好像从来没有被用到吧,即便后面升级也不会使用吧
然后就是关于历史行为的统计了,这里设定的是对用户过去15
天内的like
和collections
进行top3
新闻类别等的统计,没有阅读量
4. Redis
这里基本都还算正常吧,神奇的是曝光表,这个东西好像是只记录当天的推荐历史,去重的话也只是针对当天的历史去重,可以有昨天的
如同上文所说,物料处理的时候会有一个叫news_to_redis.py
的文件,在那里面会清空Redis
所有的数据,也就是Redis
按天更新
5. 流程图示
Task01:熟悉新闻推荐系统的基本流程(数据库设计)相关推荐
- Task01:熟悉新闻推荐系统的基本流程(项目结构)
Task01:熟悉新闻推荐系统的基本流程(项目结构) 0.代码版本 1. 文件说明 2. 流程图示 3. 架构图示[^1] 0.代码版本 该专栏的博客当中涉及的所有代码,均为组队学习期间的版本,大概在 ...
- Task01:熟悉新闻推荐系统的基本流程(代码复现)
Task01:熟悉新闻推荐系统的基本流程 0.代码版本 1.系统信息 2.`python`环境 3.`MySQL`数据库 4.`MongoDB` 5.`Redis` 6.`Node.js` 7. 复现 ...
- 推荐系统-Task01熟悉新闻推荐系统基本流程
参考资料: 项目流程讲解:https://datawhale.feishu.cn/minutes/obcnzns778b725r5l535j32ohttps://datawhale.feishu.cn ...
- 一、熟悉新闻推荐系统基本流程
一.悉新闻推荐系统基本流程 环境搭建: vmware + ubuntu20.04(虚拟机) 前端框架: Vue. 后端框架: Flask 数据库: MySQL.MongoDB.redis IDE:vs ...
- 推荐系统实践Task1:熟悉新闻推荐系统基本流程
1 环境搭建 操作系统:Windows10 MySQL:8.0.25 Redis:5.0.14 Mongodb:5.0.5 Python 3.8 前端IDE:WebStorm2021.1 2 项目导入 ...
- 基于JAVA的新闻文章发布管理系统【数据库设计、源码、开题报告】
数据库脚本下载地址: https://download.csdn.net/download/itrjxxs_com/86427648 主要使用技术 Spring+SpringMVC+Mybatis+B ...
- MySQL 学习笔记(14)— 数据库设计流程、实体关系图、第一范式、第二范式、第三范式、外键使用
本文参考:https://gitbook.cn/gitchat/column/undefined/topic/5db92c12a9c3a53bc3800f0c 1. 数据库设计流程 数据库设计是对数据 ...
- 软件设计之 数据库设计
[按语:在软件设计或是动态网站开发中,数据库设计时很重要,我觉得可以说是开发工作的核心部分,所以学好数据库设计,是很重要的,也是大有前途的...] ◆.概念 首先要搞清楚容易混淆的两个概念:&quo ...
- 【新闻推荐系统】(task1)系统搭建基本流程
学习总结 sparrow电影推荐系统和我们本次要搭建的新闻推荐系统类似: 首先是离线处理部分: 获取数据:爬取数据后画像处理.用户画像和物品画像,物料存入MongoDB中的SinaNews数据库中:M ...
- 新闻推荐系统-项目介绍(PRD)
新闻推荐系统 b站链接 制作不易,6月后开源全部代码以及数据,记得一键三联哦! 开源代码: github代码库 mysql: 链接:https://pan.baidu.com/s/1jLzfYbpsf ...
最新文章
- Java并发编程(7):使用synchronized获取互斥锁的几点说明
- npm介绍以及常用命令
- node python复用代码_python-代码复用(函数、lambda、递归、PyInstaller库)
- android java 调用js_Android Java/JS互相调用
- I.MX6 MAC地址修改
- Java会走向晦暗吗?Kotlin会取而代之吗
- Python-读取本地视频转化为图片方法记录(一)
- gtx1050ti最稳定的驱动_笔记本1050ti显卡安装最新驱动版本 (415.27) 记录 NVIDIA显卡GeForce系列...
- java毕业设计彩妆销售网站Mybatis+系统+数据库+调试部署
- java中的分号是什么作用,分号的作用是什么
- 给数据库中的某个表添加一个字段!!!!!
- 2020福州大学计算机录取名单,福州大学数学与计算机科学/软件学院2020年硕士研究生招生复试结果(第二批非全日制公示)...
- 分段线性函数三种MIP模型
- AES简介加密算法介绍
- StarRocks 企业行|走进 58 同城,探索极速统一 3.0 时代的企业实践
- cesium中限制地图浏览范围
- python快速实现简易俄罗斯方块小游戏
- Python中 5个非常有用的单行代码
- 计算机视觉经典书目清单
- 【转】世上万事,不过是一懒二拖三不读书