Python基于Django的电影推荐系统和论坛项目完整源码

简介: Python基于Django的电影推荐系统和论坛项目完整源码

微信公众号:创享日记

发送:电影论坛

获取完整论文报告+项目源码源文件+配置说明


8c825479ca354b4995cfc4954d27f237.png


一、需求分析


随着电影市场的迅速发展,每天都有大量电影上映.人们都希望可以高效的在海量电

影库中找到自己可能会喜欢的电影,以节省寻找电影的时间[22].电影推荐系统能给用户带来便利。本文要实现的是一个面向用户的个性化电影推荐系统,根据movielens 数据集里面大量用户对电影的评分数据,通过计算用户相似性、电影相似性,实现为用户推荐符合其兴趣的电影. 本文实现的个性化电影推荐系统有以下几点基本需求:

(1)数据集:每个用户所评电影数量要多,尽量广泛涉及大量电影

(2)推荐算法:推荐效果要良好

(3)包括用户注册登录在内的整个 web 系统

(4)系统要易于扩展和维护


二、用户功能需求

如图 4-6 是系统中用户的用例图,有 5 个用例,分别是注册、登录、注销、评分、查看推荐结果。


b7445bbd8b4a449cabc0c9ee554858f9.png


三、系统设计

1、系统总体架构

本文从互联网上下载 movielens 数据集,经过数据重组和筛选,基于两种推荐算法得出推荐结果保存至 MySQL 数据库中,并通过 Django 框架进行前端展示.本系统采用 B/S(浏览器/服务器)体系结构,用户通过浏览器就能和网站上的内容交互。

实现本系统主要需要以下几种编程语言:

(1)Python:进行后台开发,写推荐算法,和 MySQL 数据库交互,将用户的数据存储到数据库中,又将生成的推荐列表展示到前端页面。

(2)Html5:进行前端页面的开发。

(3)Css3:美化前端页面,特别是对电影分类板块做处理。

(4)Jquery:实现提交表单和首页中的星星评分效果。

系统的总体架构设计图如图 4-7 所示。


263df9820ddf46b6b01c8fe1016613d2.png


一个良好的推荐系统,必须要有一个良好的用户交互界面和用户行为数据,其之间的关系如图 4-8 所示。


3342065a97954fcaa73afb1619441edb.png


2、系统功能模块简述

本系统以改进后的用户协同过滤和物品协同过滤算法为依据,采用 django 重量级 Web框架设计并实现.包括了数据集处理模块、注册登录模块、电影分类模块、用户评分反馈模块、推荐算法模块和推荐电影展示模块。

① 数据集处理模块

本文设计的推荐系统的源数据集来源于 movielens 的 ml-latestl-small,其中包含 671 个用户的 10 万条评分数据.对数据集里面的 ratings.csv 和 links.csv 文件进行连接处理,只保留 userId、imdbId、rating 三个字段存入数据库中新建好的数据表 users_resulttable 中。

② 注册登录模块

用户只有先注册并且登录系统之后才能提交对电影的评分.注册界面含用户名、电子邮箱地址以及密码.注册和登录界面如图 4-9 所示。


f182c84c81d1410abdd5092d76ae9c4a.png


③ 电影分类模块

系统首页一共有 8 种类型的电影,如 4-10 所示. 从左到右依次是动作片、恐怖片、喜剧片、动画片、科幻片、犯罪片、爱情片以及剧情片。


violation-del.png


④ 用户评分反馈模块

系统利用了 jquery-raty 评分插件,收集用户对每一部电影的评分.用户通过点击‘提交评分’按钮将评分数据提交到 MySQL 中的 users_resulttable 表中,插入到源数据集末尾。


violation-del.png


⑤ 用户评分记录模块

用户登录系统后点击自己的昵称,将跳转页面显示自己曾经评价过的电影列表.如图4-15 所示。


e5daf47929014c91b186febc5fcaca42.png


⑥ 推荐算法模块

本模块是整个系统的核心组成部分,当用户登录进入系统并对电影进行评分之后,系统就记录下了该用户的 id 号,当用户再次登入系统时,系统会将源数据集和该用户之前的评分数据整合成新的数据表作为推荐的依据. 整个推荐过程流程图如图 4-16 所示。


27938515e87344ccbf1b2770bc718ad4.png


算法生成推荐电影的 imdbId 号之后存入 matrix 全局变量列表中,并在 moviegenre 数据表中查询到相关的电影名称以及电影海报的链接,将 userId、title、poster 数据插入到users_insertposter 数据表中,此表即为所有登录用户的电影推荐列表集。


⑦ 显示推荐模块

根据登录用户对电影的评分反馈,通过基于用户的协同过滤和基于物品的协同过滤算法给出图 4-17 和图 4-18 两种推荐结果。


e84dfff375784c0a8f96850ec04ee493.png


四、数据库介绍与设计(详见微信公众号下载)

1、实验数据集介

2、数据库逻辑结构设

3、系统 E-R

4、系统数据表


随着互联网的飞速发展,关于推荐系统的研究工作也蒸蒸日上.本文主要研究了实现推荐系统所需的技术,研究了推荐算法以及推荐系统的一些国内外现状.并以电影推荐系统为实例,对整个推荐系统的架构以及所有功能做了详尽的阐述与分析.从系统的需求分析出发,剖析了用户对功能的需求,然后介绍了系统的各个功能模块,最后充分展示了系统数据库的设计以及数据表的内容. 设计的系统包含用户信息模块、电影展示模块、用户评分模块、推荐结果模块.每个模块的介绍都有流程图或者系统截图.数据库中的核心数据表也充分对所存内容、每个字段的类型进行了阐述. 本系统采用改进过的两种协同过滤算法:基于用户的协同过滤和基于物品的协同过滤,使用户能从两种不同角度获得推荐,提高用户的可选择性.并且利用准确率、召回率以及流行度三个指标对算法进行评测.实验表明,基于本系统所用数据集,UserCF-IIF 算法的性能要优于 ItemCF-IUF 算法. 核心的推荐算法工作完成后,本文结合现有的较热门的 Web 重量级框架 Django,利用 Django 内置的用户注册表单实现用户注册,编写视图代码进行电影推荐结果的 UI 前端展示.利用 CSS3 语言对网页进行排版、美化,使系统看上去更加简洁和美观,增加用户的体验。


相关文章
|
前端开发 JavaScript 关系型数据库
基于python的租房网站-房屋出租租赁系统(python+django+vue)源码+运行
该项目是基于python/django/vue开发的房屋租赁系统/租房平台,作为本学期的课程作业作品。欢迎大家提出宝贵建议。
765 6
|
数据管理 数据库 数据安全/隐私保护
Django—同一项目不同app使用不同数据库
在Django项目中实现不同app使用不同数据库的配置,可以通过配置多数据库、创建数据库路由和配置路由来实现。通过这种方法,可以有效地将数据隔离到不同的数据库,提高数据管理的灵活性和系统的可扩展性。希望本文能为开发者在Django项目中使用多数据库提供清晰的指导。
575 4
|
机器学习/深度学习 算法 TensorFlow
交通标志识别系统Python+卷积神经网络算法+深度学习人工智能+TensorFlow模型训练+计算机课设项目+Django网页界面
交通标志识别系统。本系统使用Python作为主要编程语言,在交通标志图像识别功能实现中,基于TensorFlow搭建卷积神经网络算法模型,通过对收集到的58种常见的交通标志图像作为数据集,进行迭代训练最后得到一个识别精度较高的模型文件,然后保存为本地的h5格式文件。再使用Django开发Web网页端操作界面,实现用户上传一张交通标志图片,识别其名称。
1140 7
交通标志识别系统Python+卷积神经网络算法+深度学习人工智能+TensorFlow模型训练+计算机课设项目+Django网页界面
|
机器学习/深度学习 人工智能 算法
【新闻文本分类识别系统】Python+卷积神经网络算法+人工智能+深度学习+计算机毕设项目+Django网页界面平台
文本分类识别系统。本系统使用Python作为主要开发语言,首先收集了10种中文文本数据集("体育类", "财经类", "房产类", "家居类", "教育类", "科技类", "时尚类", "时政类", "游戏类", "娱乐类"),然后基于TensorFlow搭建CNN卷积神经网络算法模型。通过对数据集进行多轮迭代训练,最后得到一个识别精度较高的模型,并保存为本地的h5格式。然后使用Django开发Web网页端操作界面,实现用户上传一段文本识别其所属的类别。
705 1
【新闻文本分类识别系统】Python+卷积神经网络算法+人工智能+深度学习+计算机毕设项目+Django网页界面平台
|
机器学习/深度学习 数据采集 搜索推荐
利用Python和机器学习构建电影推荐系统
利用Python和机器学习构建电影推荐系统
1087 1
|
Linux Python
解决django项目报错很离谱的报错之RuntimeError: populate() isn't reentrant
解决django项目报错很离谱的报错之RuntimeError: populate() isn't reentrant
|
机器学习/深度学习 人工智能 算法
【果蔬识别系统】Python+卷积神经网络算法+人工智能+深度学习+计算机毕设项目+Django网页界面平台
【果蔬识别系统】Python+卷积神经网络算法+人工智能+深度学习+计算机毕设项目+Django网页界面平台。果蔬识别系统,本系统使用Python作为主要开发语言,通过收集了12种常见的水果和蔬菜('土豆', '圣女果', '大白菜', '大葱', '梨', '胡萝卜', '芒果', '苹果', '西红柿', '韭菜', '香蕉', '黄瓜'),然后基于TensorFlow库搭建CNN卷积神经网络算法模型,然后对数据集进行训练,最后得到一个识别精度较高的算法模型,然后将其保存为h5格式的本地文件方便后期调用。再使用Django框架搭建Web网页平台操作界面,实现用户上传一张果蔬图片识别其名称。
655 0
【果蔬识别系统】Python+卷积神经网络算法+人工智能+深度学习+计算机毕设项目+Django网页界面平台
|
搜索推荐 关系型数据库 数据库
#646253#基于django/neo4j的电影打分推荐系统
#646253#基于django/neo4j的电影打分推荐系统
306 0
|
应用服务中间件 nginx Python
Django项目部署
环境 django == 1.11.16 nginx == 1.10.3 项目编写 略 安装nginx 略(前一篇有详细介绍) 配置uwsgi 创建 xxx.ini 文件 [uwsgi] socket=:9000 # 端口 chdir=/mnt/project/project_api # 项目路径 包含manage.
|
Ubuntu 应用服务中间件 nginx
Django项目部署
一、Nginx+uWSGI+Django部署生产环境 原理 为什么还要Nginx Django有个runserver直接起了一个WebServer,为什么还要Nginx起一个WebServer呢? Nginx的性能比Django自带的WebServe...
4737 0