项目简介
本项目是学习《推荐系统开发实战》一书过程中编写的代码集合。前端运用Vue框架,后端采用Django框架,实现了新闻、图书和音乐三个推荐系统。通过一系列的数据处理、模型训练和算法计算,为用户提供个性化的推荐服务。
项目的主要特性和功能
新闻推荐系统
- 按各大主题热度排序展示新闻。
- 抽取并展示每篇新闻的关键词。
- 基于item进行新闻推荐。
- 展示热度榜,保证一定覆盖度。
- 为不同用户提供个性化“为你推荐”内容。
图书推荐系统
- 基于GBDT模型为不同用户提供个性化图书推荐。
- 展示图书详情信息。
- 记录用户的浏览足迹。
音乐推荐系统
- 利用网易云API获取部分数据。
- 基于标签推荐歌单、歌曲、歌手详情页。
- 基于用户和物品的协同过滤算法推荐用户、歌曲、歌手。
- 基于内容的推荐算法推荐歌单。
- 提供个性化排行榜。
- 为不同用户提供个性化“为你推荐”内容。
- 展示用户在站内的行为足迹。
安装使用步骤
通用准备
- 安装Node.js,使用Node的npm安装Vue、Vue-cli、Vue-router。
- 对于每个案例,在对应项目目录下,通过
npm install
安装package.json
中的Vue包。
新闻推荐系统
- 数据库迁移:在
NewsRec
目录下,首次运行python manage.py migrate
,再运行python manage.py makemigrations news
,最后再次运行python manage.py migrate
。 - 创建超级用户:运行
python manage.py createsuperuser
,创建后台管理账户(如:admin/9003)。 - 数据处理
- 整合7个Excel文件中的新闻类别,插入到
cate
表。 - 将原始Excel中类别字段用数字替代,对应
cate
表。 - 通过Navicat或其他工具将增加字段后的Excel文件(可转成CSV格式)导入MySQL的
news
表。 - 运行
NewsKeyWordsSelect.py
抽取新闻关键词。 - 运行
NewsHotValueCal.py
计算新闻热度值,写入newhot
表。 - 运行
NewsTagcCorres.py
根据新闻标签或关键词获取新闻信息,写入newtag
表。 - 运行
NewsCorrelationCalculation.py
计算新闻相关度,写入newsim
表。
- 整合7个Excel文件中的新闻类别,插入到
- 启动服务
- 在
NewsRec
目录下,运行python manage.py runserver
,访问后台管理地址:http://127.0.0.1:8000/admin
。 - 在
NewsRec-Vue
目录下,运行npm run dev
,访问前端地址:http://127.0.0.1:8000/
。
- 在
图书推荐系统
- 数据库迁移:在
BookRec
目录下,首次运行python manage.py migrate
,再运行python manage.py makemigrations indexbook
,最后再次运行python manage.py migrate
。 - 创建超级用户:运行
python manage.py createsuperuser
,创建后台管理账户(如:admin/9003)。 - 数据处理
- 使用
pandas
将“豆瓣图书.xlsx”转换为“豆瓣图书.xls”。 - 运行
prepare.py
将“豆瓣图书.xls”转换成可导入数据库的to_sql.txt
。 - 利用Navicat将
to_sql.txt
内容导入数据库的book
表,增加book
表的name
字段长度到200。 - 运行
model.py
对模型进行训练和保存。
- 使用
- 启动服务
- 在
BookRec
目录下,运行python manage.py runserver
,访问后台管理地址:http://127.0.0.1:8000/admin
。 - 在
BookRec-Vue
目录下,运行npm run dev
,访问前端。
- 在
音乐推荐系统
- 数据库迁移:在对应目录下,首次运行
python manage.py migrate
,依次运行python manage.py makemigrations indexmusic
、python manage.py makemigrations playlist
、python manage.py makemigrations sing
、python manage.py makemigrations song
、python manage.py makemigrations user
,最后再次运行python manage.py migrate
。 - 创建超级用户:运行
python manage.py createsuperuser
,创建后台管理账户(如:admin/9003)。 - 数据获取
- 拷贝
playlist_id_name_all.txt
到指定位置。 - 在
playlist_url
下创建playlist_get_fail.txt
。 - 运行
GetPlayListMess.py
进行歌单信息处理。 - 运行
GetSongMess.py
根据歌曲ID获取歌曲信息。 - 若
GetSingMess.py
运行失败,使用案例中给的歌手信息数据。
- 拷贝
- 数据导入:运行
ToMySQL.py
中的各个方法,分别将歌曲、歌词、歌手、用户、歌单等信息导入相应的数据库表。 - 数据分析
- 运行
RecPlayList.py
,并将结果导入userplaylistrec
表。 - 运行
RecSing.py
,并将结果导入usersingrec
表。 - 运行
RecSong.py
,并将结果导入usersongrec
表。 - 运行
RecUser.py
,并将结果导入useruserrec
表。
- 运行
- 计算相似度
- 运行
UserSim.py
,并将结果导入usersim
表。 - 运行
SongSim.py
,并将结果导入songsim
表。 - 运行
SingSim.py
,并将结果导入singsim
表。
- 运行
- 启动服务
- 在后端项目目录下,运行
python manage.py runserver
。 - 在前端项目目录下,运行
npm run dev
。
- 在后端项目目录下,运行
下载地址
点击下载 【提取码: 4003】【解压密码: www.makuang.net】