基于卷积神经网络的电影推荐系统 深藏阁楼爱情的钟 2023-10-11 16:31 47阅读 0赞 #### 基于卷积神经网络的电影推荐系统 #### * 前言 * 1.实现效果 * * 1.1 算法运行结果 * 1.2 系统主要界面 * 2.主要代码实现 * * 2.1 网络模型代码 * 2.2 django代码 ## 前言 ## 如今协同过滤等传统推荐算法被广泛用于推荐,但也存在冷启动、矩阵稀疏等问题,本项目用深度学习来实现电影推荐,核心算法主要参考了[https://blog.csdn.net/chengcheng1394/article/details/78820529][https_blog.csdn.net_chengcheng1394_article_details_78820529],基于tensorflow和卷积神级网络来实现个性化电影推荐。web端用django来进行开发。 ## 1.实现效果 ## ### 1.1 算法运行结果 ### (1)输入电影,推荐相似的电影以及看过的人还喜欢的电影 ![在这里插入图片描述][2db0be45c8fb44c3bf94478589a34232.png] ![在这里插入图片描述][ef8661f9bb9743abba271726860e611c.png] (2)输入用户信息,推荐其喜爱的电影 ![在这里插入图片描述][dcc72841faf543edb1186db7bb7173d2.png] ### 1.2 系统主要界面 ### * 登录模块 ![在这里插入图片描述][787a15eb522c4e14bb24fe73b9ddfecb.png] * 电影推荐模块 ![在这里插入图片描述][56c08b69831a4eee98fd28b7833f8329.png] ![在这里插入图片描述][750f7283bdb74e2d8e27509666708a56.png] ## 2.主要代码实现 ## ### 2.1 网络模型代码 ### 网络模型代码这里就不放了,可以参考[https://blog.csdn.net/chengcheng1394/article/details/78820529][https_blog.csdn.net_chengcheng1394_article_details_78820529] ### 2.2 django代码 ### 以下是django的一些主要代码: * urls.py配置路由 ![在这里插入图片描述][9a489c63f6f044779056074f5be36e4c.png] * settings.py配置数据库 ![在这里插入图片描述][7cb60521daae45f093594607a0d807b5.png] * 登录模块 def login(request): if request.method == 'GET': return render(request, 'login.html') else: #用户POST提交的数据 u = request.POST.get('user') p = request.POST.get('pwd') #把账号密码写死了 # if u == 'cxx' and p == '123': # #登录成功 # return redirect('/mess/') #从数据库中判断账号密码是否正确 if u and p: c = User.objects.filter(username=u,password=p).count() if c >= 1: #获取当前登录的用户id cur_id = User.objects.get(username=u, password=p).id return redirect('/mess/?user_id='+str(cur_id)) else: return render(request, 'login.html', { 'msg': '账号密码错误'}) else: #登录失败 return render(request, 'login.html', { 'msg': '请输入正确的账号密码'}) * 推荐喜欢的电影 def like(request): user_id = request.GET.get('user_id') #获取当前用户 my_user = models.User.objects.get(id=user_id) global global_model model = global_model print('-------正在推荐--------', user_id) list_like_movies_names, list_like_movies_ids = model.recommend_your_movie(int(user_id)) print('你喜欢的电影:', list_like_movies_names) print('你喜欢的电影id:', list_like_movies_ids) # 你喜欢的电影 list_dict_like = [] for i in list_like_movies_names[:6]: list_dict_like.append(utils.movie_dic(i)) for i in range(len(list_dict_like)): # list_dict_like[i]['movie_id'] = list_like_movies_ids[i] list_dict_like[i]['movie_id'] = int(list_like_movies_ids[i]) #把字典中的id转int类型,便于前端if判断 print('相似电影列表:', list_dict_like) context = { } context['list_dict_like'] = list_dict_like context['my_user'] = my_user #返回当前用户,在前端页面显示当前登陆的用户名 return render(request, 'like.html', context) * 推荐同类型的电影和看过的人喜欢的电影 def index(request): #获取电影id movie_id = request.GET.get('movie_id') global global_model model = global_model print('-------正在推荐--------', movie_id) #choice_movie_name 选择的电影名称 #list_same_movies_names 相似的电影名称 #list_pepole_like_movies_names 喜欢这个电影的人还喜欢的电影名称 #list_same_movies_ids 相似的电影id #list_pepole_like_movies_ids 喜欢这个电影的人还喜欢的电影id #和recommend_by_movie方法的返回值一一对应 choice_movie_name, list_same_movies_names, list_pepole_like_movies_names, list_same_movies_ids, list_pepole_like_movies_ids = model.recommend_by_movie( int(movie_id)) print('选择电影:', choice_movie_name) print('相似的电影:', list_same_movies_names) print('喜欢这个电影的人还喜欢:', list_pepole_like_movies_names) print('相似的电影id:', list_same_movies_ids) print('喜欢这个电影的人还喜欢id:', list_pepole_like_movies_ids) #选择的电影 list_dict_choice = [] for i in choice_movie_name: list_dict_choice.append(utils.movie_dic(i)) list_dict_choice[0]['movie_id'] = movie_id print('选择电影列表:', list_dict_choice) # 相似的电影 list_dict_same = [] # for i in list_same_movies_names[:3]: #最多显示3部电影 for i in list_same_movies_names: list_dict_same.append(utils.movie_dic(i)) for i in range(len(list_dict_same)): # list_dict_same[i]['movie_id'] = list_same_movies_ids[i] list_dict_same[i]['movie_id'] = int(list_same_movies_ids[i]) #把字典中的id转int类型,便于前端if判断 print('相似电影列表:', list_dict_same) # 看过的用户还喜欢的电影 list_dict_otherlike = [] for i in list_pepole_like_movies_names: list_dict_otherlike.append(utils.movie_dic(i)) for i in range(len(list_dict_otherlike)): # list_dict_otherlike[i]['movie_id'] = list_pepole_like_movies_ids[i] list_dict_otherlike[i]['movie_id'] = int(list_pepole_like_movies_ids[i]) #把字典中的id转int类型,便于前端if判断 print('喜欢这个电影的人还喜欢列表:', list_dict_otherlike) context = { } context['list_dict_choice'] = list_dict_choice context['list_dict_same'] = list_dict_same context['list_dict_otherlike'] = list_dict_otherlike return render(request, 'index.html', context) [https_blog.csdn.net_chengcheng1394_article_details_78820529]: https://blog.csdn.net/chengcheng1394/article/details/78820529 [2db0be45c8fb44c3bf94478589a34232.png]: https://img-blog.csdnimg.cn/2db0be45c8fb44c3bf94478589a34232.png [ef8661f9bb9743abba271726860e611c.png]: https://img-blog.csdnimg.cn/ef8661f9bb9743abba271726860e611c.png [dcc72841faf543edb1186db7bb7173d2.png]: https://img-blog.csdnimg.cn/dcc72841faf543edb1186db7bb7173d2.png [787a15eb522c4e14bb24fe73b9ddfecb.png]: https://img-blog.csdnimg.cn/787a15eb522c4e14bb24fe73b9ddfecb.png [56c08b69831a4eee98fd28b7833f8329.png]: https://img-blog.csdnimg.cn/56c08b69831a4eee98fd28b7833f8329.png [750f7283bdb74e2d8e27509666708a56.png]: https://img-blog.csdnimg.cn/750f7283bdb74e2d8e27509666708a56.png [9a489c63f6f044779056074f5be36e4c.png]: https://img-blog.csdnimg.cn/9a489c63f6f044779056074f5be36e4c.png [7cb60521daae45f093594607a0d807b5.png]: https://img-blog.csdnimg.cn/7cb60521daae45f093594607a0d807b5.png
相关 卷积神经网络 在介绍卷积神经网络之前我们先了解一下为什么不使用我们上一节介绍的神经网络(全连接层结构)来处理图像。使用全连接层结构处理图像时会出现以下问题: 输入图像需要将图像通过 曾经终败给现在/ 2024年02月17日 08:44/ 0 赞/ 79 阅读
相关 基于卷积神经网络的电影推荐系统 基于卷积神经网络的电影推荐系统 前言 1.实现效果 1.1 算法运行结果 1.2 系统主要界面 2.主要代码实现 深藏阁楼爱情的钟/ 2023年10月11日 16:31/ 0 赞/ 48 阅读
相关 卷积神经网络 ![1598479-20190918171831229-1154648107.png][] ![1598479-20190918171837970-177932124 我会带着你远行/ 2023年08月17日 16:07/ 0 赞/ 173 阅读
相关 神经网络-卷积神经网络 卷积神经网络最基本的操作:卷积、池化、全连接 1、卷积操作 什么是卷积操作?我们先定义一个目的,让卷积神经网络去识别数字 “17” 和字母 “L”。 有三张图片, 小鱼儿/ 2022年11月12日 01:41/ 0 赞/ 366 阅读
相关 卷积神经网络 卷积神经网络 转载请注明:http://blog.csdn[.NET][]/stdcoutzyx/article/details/41596663 自今年七月份以来,一 以你之姓@/ 2022年07月15日 02:50/ 0 赞/ 336 阅读
相关 卷积神经网络 卷积神经网络 转载请注明:http://blog.csdn[.NET][]/stdcoutzyx/article/details/41596663 自今年七月份以来,一 川长思鸟来/ 2022年07月14日 21:25/ 0 赞/ 402 阅读
相关 卷积神经网络 概述 简单描述 首先介绍神经网络的参数。这些参数是由一些可学习的滤波器集合构成的,每个滤波器在空间上(宽度和高度)都比较小`个人觉得这个滤波器就是卷积核`,但是深度和 浅浅的花香味﹌/ 2022年05月31日 13:59/ 0 赞/ 381 阅读
相关 卷积神经网络 目录 概述 卷积层 卷积层的产生 卷积运算 填充 步幅 应用滤波器后的输出数据大小计算 三维数据的卷积运算 批处理(‘四维数据’) 池化层 卷积层和池化层 浅浅的花香味﹌/ 2022年02月20日 00:17/ 0 赞/ 533 阅读
相关 卷积神经网络 [卷积神经网络][Link 1] 在上篇中介绍的输入层与隐含层的连接称为全连接,如果输入数据是小块图像,比如8×8,那这种方法是可行的,但是如果输入图像是96×96, 曾经终败给现在/ 2021年12月09日 14:55/ 0 赞/ 547 阅读
相关 卷积神经网络 阅读网页发现,要学习深度学习,应该首先对 [卷积神经网络(Convolutional Neural Networks,简称CNN)][Convolutional Neural 阳光穿透心脏的1/2处/ 2021年07月16日 18:03/ 0 赞/ 579 阅读
还没有评论,来说两句吧...