Datawhale组队学习——推荐系统Task01 熟悉新闻推荐系统基本流程

以下学习笔记来自Datawhale12月组队学习推荐系统课程Task1——【Task01 熟悉新闻推荐系统基本流程】,参照了群里 天国之影-JustForFun 大佬的笔记及视频进行了项目环境的搭载,少踩了很多坑,最终跑通了代码。

项目链接:https://github.com/datawhalechina/fun-rec

大佬的笔记:https://share.weiyun.com/u3ZIjZfg

使用软件

操作系统:Windows10
MySQL:8.0.27
Redis:5.0.9
Mongodb:4.4.10
Anaconda3
Node.js:16.13.1
前端IDE:WebStorm 2021.1
后端IDE:PyCharm Professional 2021.1
访问MySQL和Mongodb的数据库工具:DataGrip 2021.1

项目下载与IDE导入

项目链接:https://github.com/datawhalechina/fun-rec

前端导入:
Datawhale组队学习——推荐系统Task01 熟悉新闻推荐系统基本流程_第1张图片
后端项目导入:
Datawhale组队学习——推荐系统Task01 熟悉新闻推荐系统基本流程_第2张图片

数据库连接
Datawhale组队学习——推荐系统Task01 熟悉新闻推荐系统基本流程_第3张图片

前端项目运行

下载node.js,里面带有npm
将package,json里的IP地址改为127.0.0.1
打开src下的main.js,修改第22行的IP和端口,具体如下:
请添加图片描述

按照readme跑通前端代码

Datawhale组队学习——推荐系统Task01 熟悉新闻推荐系统基本流程_第4张图片
之后浏览器会自动访问地址:http://127.0.0.1:8686/#/

后端项目运行

安装anaconda并创建虚拟环境

(base) C:\Users\19635>conda create -n news_rec_py3 python=3.8

pycharm设置python解释器
请添加图片描述
安装依赖

pip install -r requirements.txt

打开文件server.py,修改第233行的IP和端口,修改内容如下:
Datawhale组队学习——推荐系统Task01 熟悉新闻推荐系统基本流程_第5张图片
修改项目路径配置文件proj_path.py,文件路径:conf/proj_path.py
Datawhale组队学习——推荐系统Task01 熟悉新闻推荐系统基本流程_第6张图片
打开数据库配置文件dao_config.py,文件路径:conf/dao_config.py,默认为以下配置,可根据需要自行修改:

# MySQL默认配置
mysql_username = "root"
mysql_passwd = "123456"
mysql_hostname = "localhost"
mysql_port = "3306"

# MongoDB配置
mongo_hostname = "127.0.0.1"
mongo_port = 27017

# Redis配置
redis_hostname = "127.0.0.1"
redis_port = 6379

启动雪花算法服务

snowflake_start_server --address=127.0.0.1 --port=8910 --dc=1 --worker=1

启动server.py程序(注:在此之前,必须启动数据库并创建数据库),执行如下命令:

python server.py

Datawhale组队学习——推荐系统Task01 熟悉新闻推荐系统基本流程_第7张图片

项目整体运行和调试

注册用户:
在注册用户界面注册用户即可,注册完之后会发现mysql中多了user

爬取新浪新闻
通过查看crawl_news.sh文件(文件路径:scheduler/crawl_news.sh),可知爬取新浪新闻的代码在如下目录
/materials/news_scrapy/sinanews/run.py
使用PyCharm的Run按钮,手动执行该代码,需要配置参数:
Datawhale组队学习——推荐系统Task01 熟悉新闻推荐系统基本流程_第8张图片
更新物料画像
通过查看offline_material_and_user_process.sh文件(文件路径:scheduler/offline_material_and_user_process.sh),可知更新物料画像的代码在如下目录:
materials/process_material.py

Datawhale组队学习——推荐系统Task01 熟悉新闻推荐系统基本流程_第9张图片
更新用户画像
通过查看offline_material_and_user_process.sh文件(文件路径:scheduler/offline_material_and_user_process.sh),可知更新物料画像的代码在如下目录:
materials/process_material.py
Datawhale组队学习——推荐系统Task01 熟悉新闻推荐系统基本流程_第10张图片

清除前一天redis中的数据,更新最新今天最新的数据

通过查看offline_material_and_user_process.sh文件(文件路径:scheduler/offline_material_and_user_process.sh),可知清除前一天redis中的数据,更新最新今天最新的数据的代码在如下目录:
materials/update_redis.py
使用PyCharm的Run按钮,手动执行该代码
Datawhale组队学习——推荐系统Task01 熟悉新闻推荐系统基本流程_第11张图片

离线将推荐列表和热门列表存入redis
通过查看run_offline.sh文件(文件路径:scheduler/run_offline.sh),可知离线将推荐列表和热门列表存入redis的代码在如下目录:
recprocess/offline.py
使用PyCharm的Run按钮,手动执行该代码

Datawhale组队学习——推荐系统Task01 熟悉新闻推荐系统基本流程_第12张图片

重新登录用户查看新闻

Datawhale组队学习——推荐系统Task01 熟悉新闻推荐系统基本流程_第13张图片
Datawhale组队学习——推荐系统Task01 熟悉新闻推荐系统基本流程_第14张图片

你可能感兴趣的:(node.js,前端,后端)