littlebot
Published on 2025-04-13 / 0 Visits
0

【源码】基于Django和Vue的多领域推荐系统

项目简介

本项目是学习《推荐系统开发实战》一书过程中编写的代码集合。前端运用Vue框架,后端采用Django框架,实现了新闻、图书和音乐三个推荐系统。通过一系列的数据处理、模型训练和算法计算,为用户提供个性化的推荐服务。

项目的主要特性和功能

新闻推荐系统

  • 按各大主题热度排序展示新闻。
  • 抽取并展示每篇新闻的关键词。
  • 基于item进行新闻推荐。
  • 展示热度榜,保证一定覆盖度。
  • 为不同用户提供个性化“为你推荐”内容。

图书推荐系统

  • 基于GBDT模型为不同用户提供个性化图书推荐。
  • 展示图书详情信息。
  • 记录用户的浏览足迹。

音乐推荐系统

  • 利用网易云API获取部分数据。
  • 基于标签推荐歌单、歌曲、歌手详情页。
  • 基于用户和物品的协同过滤算法推荐用户、歌曲、歌手。
  • 基于内容的推荐算法推荐歌单。
  • 提供个性化排行榜。
  • 为不同用户提供个性化“为你推荐”内容。
  • 展示用户在站内的行为足迹。

安装使用步骤

通用准备

  1. 安装Node.js,使用Node的npm安装Vue、Vue-cli、Vue-router。
  2. 对于每个案例,在对应项目目录下,通过npm install安装package.json中的Vue包。

新闻推荐系统

  1. 数据库迁移:在NewsRec目录下,首次运行python manage.py migrate,再运行python manage.py makemigrations news,最后再次运行python manage.py migrate
  2. 创建超级用户:运行python manage.py createsuperuser,创建后台管理账户(如:admin/9003)。
  3. 数据处理
    • 整合7个Excel文件中的新闻类别,插入到cate表。
    • 将原始Excel中类别字段用数字替代,对应cate表。
    • 通过Navicat或其他工具将增加字段后的Excel文件(可转成CSV格式)导入MySQL的news表。
    • 运行NewsKeyWordsSelect.py抽取新闻关键词。
    • 运行NewsHotValueCal.py计算新闻热度值,写入newhot表。
    • 运行NewsTagcCorres.py根据新闻标签或关键词获取新闻信息,写入newtag表。
    • 运行NewsCorrelationCalculation.py计算新闻相关度,写入newsim表。
  4. 启动服务
    • NewsRec目录下,运行python manage.py runserver,访问后台管理地址:http://127.0.0.1:8000/admin
    • NewsRec-Vue目录下,运行npm run dev,访问前端地址:http://127.0.0.1:8000/

图书推荐系统

  1. 数据库迁移:在BookRec目录下,首次运行python manage.py migrate,再运行python manage.py makemigrations indexbook,最后再次运行python manage.py migrate
  2. 创建超级用户:运行python manage.py createsuperuser,创建后台管理账户(如:admin/9003)。
  3. 数据处理
    • 使用pandas将“豆瓣图书.xlsx”转换为“豆瓣图书.xls”。
    • 运行prepare.py将“豆瓣图书.xls”转换成可导入数据库的to_sql.txt
    • 利用Navicat将to_sql.txt内容导入数据库的book表,增加book表的name字段长度到200。
    • 运行model.py对模型进行训练和保存。
  4. 启动服务
    • BookRec目录下,运行python manage.py runserver,访问后台管理地址:http://127.0.0.1:8000/admin
    • BookRec-Vue目录下,运行npm run dev,访问前端。

音乐推荐系统

  1. 数据库迁移:在对应目录下,首次运行python manage.py migrate,依次运行python manage.py makemigrations indexmusicpython manage.py makemigrations playlistpython manage.py makemigrations singpython manage.py makemigrations songpython manage.py makemigrations user,最后再次运行python manage.py migrate
  2. 创建超级用户:运行python manage.py createsuperuser,创建后台管理账户(如:admin/9003)。
  3. 数据获取
    • 拷贝playlist_id_name_all.txt到指定位置。
    • playlist_url下创建playlist_get_fail.txt
    • 运行GetPlayListMess.py进行歌单信息处理。
    • 运行GetSongMess.py根据歌曲ID获取歌曲信息。
    • GetSingMess.py运行失败,使用案例中给的歌手信息数据。
  4. 数据导入:运行ToMySQL.py中的各个方法,分别将歌曲、歌词、歌手、用户、歌单等信息导入相应的数据库表。
  5. 数据分析
    • 运行RecPlayList.py,并将结果导入userplaylistrec表。
    • 运行RecSing.py,并将结果导入usersingrec表。
    • 运行RecSong.py,并将结果导入usersongrec表。
    • 运行RecUser.py,并将结果导入useruserrec表。
  6. 计算相似度
    • 运行UserSim.py,并将结果导入usersim表。
    • 运行SongSim.py,并将结果导入songsim表。
    • 运行SingSim.py,并将结果导入singsim表。
  7. 启动服务
    • 在后端项目目录下,运行python manage.py runserver
    • 在前端项目目录下,运行npm run dev

下载地址

点击下载 【提取码: 4003】【解压密码: www.makuang.net】