JialiangFan
movie_recommend
HTML

基于协同过滤和spark-als的电影推荐系统

Last updated Jun 11, 2026
90
Stars
11
Forks
9
Issues
0
Stars/day
Attention Score
5
Language breakdown
No language data available.
Files click to expand
README

毕业设计--基于Django的电影推荐系统和论坛

说明

  • 新手建议结合pycharm使用,https://www.jetbrains.com/pycharm/,下载专业版试用30天。
  • 注册普通用户通过web界面来设置,创建创建用户通过creeatsuperuser创建。下文有详细命令
  • 导入电影信息通过insertmoviesscript.py来操作 (会删除已有的所有信息!)
  • 前端展示 浏览最多,评分最多,收藏最多,写的比较直白,你可以改的委婉点: 最热电影,火爆排行...之类的。每种有10条。
我猜你喜欢为基于用户推荐,item推荐为基于项目推荐。两种推荐思路下文有介绍

系统采用的技术

前端: bootstrap3 css 框架 后端: django 2.2.1 + sqlite3数据库 (MVC框架) 数据: python异步爬虫从豆瓣top250抓取数据,保存到本地csv文件中 主要功能: 录入图书信息,用户打分,电影标签分类,电影推荐,电影分享,电影收藏,后台管理系统。 整体采用MVC架构,前端页面通过django template模板来实现,实现了模板的复用功能。同时前端页面的组织结构较为清晰。

推荐算法思路

通过协调过滤计算和其他用户的距离,然后进行筛选。如果用户数量不足,推荐数目不够15条,就会自动从 所有未打分的电影中按照浏览数降序选一部分填充进去。

基于用户的推荐

  • 用户需要给电影打分。通过用户已打分的部分来计算相似度,如果用户未打分,或者没有其他用户,则按照浏览数降序返回。
  • 通过pearson算法来计算用户之间的距离,找到距离最近的N个用户。将这些用户中已打分的电影(且要推荐的用户未看过的部分)返回。

基于item的推荐

  • 计算物品相似度矩阵: https://www.jianshu.com/p/27b1c035b693
  • 遍历当前用户已打分的item,计算和未打分的item的相似距离。
  • 对相似距离进行排序 返回

主要实现的功能

1. 登录注册页面 2. 基于协同过滤的电影的分类,排序,搜索,打分,排序功能。 3. 基于协同过滤的周推荐和月推荐

  • 观影分享会等活动功能,用户报名功能 (需要额外添加)
  • 发帖留言论坛功能 (要额外添加)
  • 基于spark的ALS算法 (要额外添加)
  • Mysql适配
  • movielens数据集适配

参考链接

推荐算法—协同过滤 - 简书 协同过滤和基于内容推荐有什么区别? - 知乎

fixed

  • 首页导航栏链接错误
  • 首页面为空
  • 登录注册页面
  • 推荐跳转登录
  • 周推荐用户没有评分时随机推荐
  • 按照收藏数量排序
  • 重新设计了 action 和UserAction model,拆分出了UserAction

电影模型

  • 浏览量 每次刷新页面的浏览数
  • 收藏量 user manytomany field 每个用户收藏一次
  • 评分 rate 每个用户评分一次
  • 在电影下面的评论加点赞功能

安装运行方法

安装依赖

  • 将项目导入pycharm, 在pycharm配置python解释器,3.7及以下都可以。可以通过conda或者其他的虚拟环境来安装
  • 打开终端 输入pip install -r requirements.txt 若提示无pip。去下载get-pip.py 运行python get-pip.py
  • 在pip安装过程中如果报错C++ 14依赖问题。则安装c++依赖工具。找不到找我要。如果安装速度过慢,请更换国内镜像https://blog.csdn.net/chenghuikai/article/details/55258957
  • 安装成功后,进入运行阶段

运行

  • 运行服务器: python manage.py runserver
  • 如果无数据,运行项目根目录下的数据迁移脚本 populate开头。
  • python manage.py createsuperuser 创建超级管理员, (密码输入时终端暂时看不到)
  • 进入后台: 127.0.0.1:8000/admin
需要获得永久更新和维护支持请联系我 其他问题请联系我

各文件功能

  • media/ 静态文件存放处,图片
  • movie/ Django的默认app,负责设置的配置还有url路由,部署等功能
  • static/ css文件和js文件的存放处
  • user/ 主app,程序的所有代码基本都在这下面 user/migrations为自动生成的数据库迁移文件 user/templates为前端页面模板文件,
user/admins.py 为管理员后台代码 user/forms.py为前端表单代码 user/models.py为数据库orm模型 user/serializers.py为restful文件,不用管。 user/urls为路由注册文件。 user/views为负责处理前端请求和与后端数据库交互的模块,也就是controller模块。
  • cache_keys.py为缓存的key值名称存放文件,不用管。
  • db.sqlite3数据库文件
  • douban_crawler.py 豆瓣爬虫文件
  • manage.py 运行的主程序,从这里启动
  • populatemoviesscript.py 填充电影数据到数据库中
  • populateuserrate.py 随机生成用户评分

© 2026 GitRepoTrend · JialiangFan/movie_recommend · Updated daily from GitHub