python+Django+Mysql+协同过滤电影推荐系统简介

该系统为基于协同过滤算法的Django电影推荐系统, 点击跳转 详情介绍如下所示。

技术介绍

  • 前端: bootstrap3 + jquery.js
  • 后端: django 2.2.1 + djangorestframework(负责api部分)
  • 数据库: mysql5.7 / sqlite3
  • 算法: 基于用户的协同过滤/基于物品的协同过滤

数据集介绍

豆瓣数据集

基于requests的python爬虫去抓取豆瓣电影的电影信息,包含图片信息,总共2250部。
数据属性:
id,title ,image_link ,country ,years ,director_description,leader,star ,description,all_tags,imdb,language,time_length
数据库展示
评分: 附带随机生成数据的脚本,可以随机生成指定数目的用户和用户的评分

movielens数据集

movielens 100k数据集+图片

数据维度: movieId,title,genres,picture
电影数量: 37544
评分数量: 93202+
movielens数据集+图片+用户数据和评分数据+csv存储

功能介绍

电影展示,电影搜索,标签分类

在这里插入图片描述

标签分类

在这里插入图片描述

用户的登录,注册,修改信息

用户注册界面

在这里插入图片描述

用户登录界面

在这里插入图片描述

用户个人信息

在这里插入图片描述

用户注册代码

在这里插入图片描述

用户对电影的打分,收藏和电影的详情页面

在这里插入图片描述

基于user和Item的协同过滤推荐算法,为用户推荐想看的电影

用户推荐界面

在这里插入图片描述

用户推荐部分代码在这里插入图片描述
物品推荐界面

在这里插入图片描述

物品推荐部分代码

在这里插入图片描述

后台管理系统,可以进行电影信息的增删改查

在这里插入图片描述

数据库模型代码

在这里插入图片描述

算法介绍

冷启动问题解决

在用户首次注册的时候会为用户提供感兴趣的标签选择界面。然后在用户未进行打分的情况下,会为用户推荐喜欢标签的电影。
在这里插入图片描述

推荐算法改进----结合标签的协同过滤推荐

在冷启动页面用户选择标签后将用户对这些标签标签的喜爱值设为5。
在用户为电影打分后,会根据此电影的标签来更新用户对标签喜爱值得分。
在根据协同过滤得到为用户推荐的电影后,如果推荐的电影数量不足15部,则从用户喜爱的标签中选取一部分电影来填充
更新标签喜爱值的策略将用户对电影的打分值减三然后加到喜爱值表中。

基于用户的协同过滤

算法: 协同过滤, 根据用户的打分来进行推荐。从所有打分的用户中找出和当前用户距离最近的n用户,然后从n个用户打分的电影中找15个当前用户未看过的电影。
最近距离算法通过协同过滤来实现。
推荐算法—协同过滤 - 简书 此项目采用的是皮尔逊相关系数来计算相似度。采取基于用户模型的的协同过滤(Neighbor-based Collaborative Filtering)。
皮尔森距离公式:
在这里插入图片描述

基于物品的协同过滤

计算物品之间的相似度,然后根据相似度来推荐

物品间的共现矩阵,两个物品同时被n个用户购买
物品间的相似度
在这里插入图片描述

相似度:共现值/N的点赞值M的点赞值 开根号
推荐值: 相似度
评分
根据用户点赞过得商品来寻找相似度推荐。
计算每个点赞过的物品和所有未点赞物品之间的得分。得分=相似度*打分值
得分越高表示越相似。 然后返回结果

基于tensorflow/文本卷积网络的推荐

通过movielens所提供的用户信息: 年龄—性别—职业。这三个数据维度来刻画用户数据信息。然后构造文本卷积网络来生成模型。用户可以根据自己的年龄/性别等特征信息来得到个性化的推荐。

网络的第一层是词嵌入层,由每一个单词的嵌入向量组成的嵌入矩阵。下一层使用多个不同尺寸(窗口大小)的卷积核在嵌入矩阵上做卷积,窗口大小指的是每次卷积覆盖几个单词。这里跟对图像做卷积不太一样,图像的卷积通常用2x2、3x3、5x5之类的尺寸,而文本卷积要覆盖整个单词的嵌入向量,所以尺寸是(单词数,向量维度),比如每次滑动3个,4个或者5个单词。第三层网络是max pooling得到一个长向量,最后使用dropout做正则化,最终得到了电影Title的特征。
在这里插入图片描述

  • 5
    点赞
  • 69
    收藏
    觉得还不错? 一键收藏
  • 9
    评论
在线电影推荐系统是一种基于用户历史行为和兴趣,为用户推荐其可能感兴趣的电影的系统。Python技术栈中的Django框架和MySQL数据库可以很好地支持在线电影推荐系统的实现。 首先,借助Django框架,可以搭建一个简单的Web应用程序。该程序可以包括不同用户的注册和登录功能,以及用户喜欢的电影清单、评分和评论等功能。 其次,使用MySQL数据库可以存储用户信息、电影数据、用户的喜好电影列表、电影的评分和评论等数据。MySQL还可以提供强大的查询功能和高效的数据检索速度,可以在电影推荐算法中派上用场。 在电影推荐算法的设计方面,可以考虑使用基于协同过滤的推荐算法。该算法利用大量用户的行为数据进行计算和分析,包括用户的电影评分和喜好等信息,为每个用户推荐他可能感兴趣的电影。此外,还可以借助机器学习、自然语言处理、数据挖掘等技术,对电影进行自动分析和分类,以进一步提高电影推荐算法的准确性和可靠性。 最后,开发一个漂亮而友好的界面,使用户可以方便地访问推荐电影信息,了解电影的详细信息等。也可以通过社交媒体或其他渠道进行宣传和推广,以吸引更多用户访问此电影推荐系统。 总之,使用Python技术栈的Django框架和MySQL数据库,可以很好地实现在线电影推荐系统。该系统将为用户提供更多的电影选择和推荐,加强用户对电影的了解和兴趣,提高用户的消费体验和忠诚度。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 9
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值