基于TensorFlow+CNN+协同过滤算法的智能电影推荐系统——深度学习算法应用(含微信小程序、ipynb工程源码)+MovieLens数据集(七)

目录

  • 前言
  • 总体设计
    • 系统整体结构图
    • 系统流程图
  • 运行环境
  • 模块实现
    • 1. 模型训练
      • 1)数据集分析
      • 2)数据预处理
      • 3)模型创建
      • 4)模型训练
      • 5)获取特征矩阵
    • 2. 后端Django
    • 3. 前端微信小程序
      • 1)小程序全局配置文件
      • 2)推荐电影页面
      • 3)个人信息界面以及用户登录记录页面
  • 系统测试
    • 1. 模型损失曲线
    • 2. 测试效果
  • 相关其它博客
  • 工程源代码下载
  • 其它资料下载


在这里插入图片描述

前言

本项目专注于MovieLens数据集,并采用TensorFlow中的2D文本卷积网络模型。它结合了协同过滤算法来计算电影之间的余弦相似度,并通过用户的交互方式,以单击电影的方式,提供两种不同的电影推荐方式。

首先,项目使用MovieLens数据集,这个数据集包含了大量用户对电影的评分和评论。这些数据用于训练协同过滤算法,以便推荐与用户喜好相似的电影。

其次,项目使用TensorFlow中的2D文本卷积网络模型,这个模型可以处理电影的文本描述信息。模型通过学习电影的文本特征,能够更好地理解电影的内容和风格。

当用户与小程序进行交互时,有两种不同的电影推荐方式:

  1. 协同过滤推荐:基于用户的历史评分和协同过滤算法,系统会推荐与用户喜好相似的电影。这是一种传统的推荐方式,通过分析用户和其他用户的行为来推荐电影。

  2. 文本卷积网络推荐:用户可以通过点击电影或输入文本描述,以启动文本卷积网络模型。模型会分析电影的文本信息,并推荐与输入的电影或描述相匹配的其他电影。这种方式更注重电影的内容和情节相似性。

综合来看,本项目融合了协同过滤和深度学习技术,为用户提供了两种不同但有效的电影推荐方式。这可以提高用户体验,使他们更容易找到符合他们口味的电影。

总体设计

本部分包括系统整体结构图和系统流程图。

系统整体结构图

系统整体结构如图所示。
在这里插入图片描述

系统流程图

系统流程如图所示。

在这里插入图片描述

模型训练流程如图所示。

在这里插入图片描述

服务器运行流程如图所示。

在这里插入图片描述

运行环境

本部分包括Python环境、TensorFlow环境、 后端服务器、Django和微信小程序环境。

模块实现

本项目包括3个模块:模型训练、后端Django、 前端微信小程序模块,下面分别给出各模块的功能介绍及相关代码。

1. 模型训练

下载数据集,解压到项目目录下的./ml-1m文件夹下。数据集分用户数据users.dat、电影数据movies.dat和评分数据ratings.dat。

1)数据集分析

数据集网站地址为http://files.grouplens.org/datasets/movielens/ml-1m-README.txt对数据的描述。

相关博客:https://blog.csdn.net/qq_31136513/article/details/133124641#1_44

2)数据预处理

通过研究数据集中的字段类型,发现有一些是类别字段,将其转成独热编码,但是UserID、MovieID的字段会变稀疏,输入数据的维度急剧膨胀,所以在预处理数据时将这些字段转成数字。

相关博客:https://blog.csdn.net/qq_31136513/article/details/133124641#2_123

3)模型创建

相关博客:https://blog.csdn.net/qq_31136513/article/details/133125845#3_50

4)模型训练

相关博客:https://blog.csdn.net/qq_31136513/article/details/133130704#4_57

5)获取特征矩阵

本部分包括定义函数张量、生成电影特征矩阵、生成用户特征矩阵。

相关博客:https://blog.csdn.net/qq_31136513/article/details/133130704#5_240

2. 后端Django

该模块实现了推荐算法的封装与前端数据交互功能。

相关博客:https://blog.csdn.net/qq_31136513/article/details/133131103#2_Django_67

3. 前端微信小程序

该模块实现用户交互以及与后端数据的传输功能,通过微信开发者平台进行前端开发。

1)小程序全局配置文件

全局配置文件通常以APP开头,包括app.jsapp.jsonapp.wxss等, 这些文件在新建小程序时,由微信开发者平台自动生成。

相关博客:https://blog.csdn.net/qq_31136513/article/details/133146411#1_75

2)推荐电影页面

推荐电影页面movies,包含movies.jsmovies.jsonmovies.wxmlmovies.wxss。其中movies.js记录的是逻辑层; movies.wxml记录的是视图层; movies.wxss记录页面元素的样式表;movies.json 类似于app.json,记录这个页面的相关配置信息。

相关博客:https://blog.csdn.net/qq_31136513/article/details/133146411#2_177

3)个人信息界面以及用户登录记录页面

这两个页面是新建小程序时系统自动生成的,不做改动。以下个人信息页面由index.jsindex.htmlindex.jsonindex.wxss等文件构成。

相关博客:https://blog.csdn.net/qq_31136513/article/details/133146411#3_383

系统测试

本部分包括模型损失曲线及测试效果。

1. 模型损失曲线

模型使用真实评分与预测评分的MSE作为损失函数,随着迭代次数的增多,在训练数据、测试数据上的损失逐渐降低,最终趋于稳定,经过5次迭代后,损失稳定为1。

训练损失如图所示。

在这里插入图片描述

测试损失如图所示。

在这里插入图片描述

2. 测试效果

前端小程序开发完成后,在微信开发者平台中进行预览,操作界面如图所示。

在这里插入图片描述

Movies页面中有两种推荐方式选择按钮,下面还有5部随机显示的电影信息。选择其中一种方式进行电影推荐,也就是“同类型电影”的推荐方式,再选择其中一部电影,例如,选择当前屏幕中的第一部电影Last Night,可以看到推荐了很多同类型的电影,如图所示。
在这里插入图片描述

选择另一种方式,即“看过这个的还喜欢看”的推荐方式,继续选择第一部电影,出现其他电影,如图所示。
在这里插入图片描述

相关其它博客

基于TensorFlow+CNN+协同过滤算法的智能电影推荐系统——深度学习算法应用(含微信小程序、ipynb工程源码)+MovieLens数据集(一)

基于TensorFlow+CNN+协同过滤算法的智能电影推荐系统——深度学习算法应用(含微信小程序、ipynb工程源码)+MovieLens数据集(二)

基于TensorFlow+CNN+协同过滤算法的智能电影推荐系统——深度学习算法应用(含微信小程序、ipynb工程源码)+MovieLens数据集(三)

基于TensorFlow+CNN+协同过滤算法的智能电影推荐系统——深度学习算法应用(含微信小程序、ipynb工程源码)+MovieLens数据集(四)

基于TensorFlow+CNN+协同过滤算法的智能电影推荐系统——深度学习算法应用(含微信小程序、ipynb工程源码)+MovieLens数据集(五)

基于TensorFlow+CNN+协同过滤算法的智能电影推荐系统——深度学习算法应用(含微信小程序、ipynb工程源码)+MovieLens数据集(六)

工程源代码下载

详见本人博客资源下载页


其它资料下载

如果大家想继续了解人工智能相关学习路线和知识体系,欢迎大家翻阅我的另外一篇博客《重磅 | 完备的人工智能AI 学习——基础知识学习路线,所有资料免关注免套路直接网盘下载》
这篇博客参考了Github知名开源平台,AI技术平台以及相关领域专家:Datawhale,ApacheCN,AI有道和黄海广博士等约有近100G相关资料,希望能帮助到所有小伙伴们。

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.hqwc.cn/news/115186.html

如若内容造成侵权/违法违规/事实不符,请联系编程知识网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

怎样找到NPM里面开源库下载地址

场景 最近帮忙找一个开源库地址。这里以vue/language-core为例子。 解决 https://registry.npmmirror.com/vue/language-core/1.8.13这里就是如下格式: https://registry.npmmirror.com/{包名}/{版本号}打开这个页面后,得到开源库下载地址&#xff0c…

使用Postman如何在接口测试前将请求的参数进行自定义处理

1、前言 当我们使用 Postman 进行接口测试时,对于简单的不需要处理的接口,直接请求即可,但是对于需要处理的接口,如需要转码、替换值等,则就麻烦一些,一般我们都是先手动把修改好的值拷贝到请求里再进行请…

C++【个人笔记1】

1.C的初识 1.1 简单入门 #include<iostream> using namespace std; int main() {cout << "hello world" << endl;return 0; } #include<iostream>; 预编译指令&#xff0c;引入头文件iostream.using namespace std; 使用标准命名空间cout …

IC芯片测试:如何对芯片静态功耗进行测试?

静态功耗也叫静态电流&#xff0c;是指芯片在静止状态下的电流或者是指芯片在不受外界因素影响下自身所消耗的电流。静态功耗对于芯片来说是衡量一款芯片的功耗与效率非常重要的指标。 传统手动测试静态功耗只需在芯片的输入端串上一台万用表&#xff0c;然后对芯片各个端口添加…

Vue 安装与创建第一Docker的项目

1. 下载nodejs 并且安装 Node.js 2. 打开命令窗口&#xff0c;验证是否安装成功 C:\Users\Harry>node -v v18.16.0C:\Users\Harry>npm -v 9.5.1 3. 安装Vue CLI C:\Users\Harry>npm install -g vue/cli 经过不算漫长的等待&#xff0c;你的Vue CLI就装好了。确认一下…

嵌入式Linux驱动开发(I2C专题)(七)

使用GPIO操作I2C设备_IMX6ULL 参考资料&#xff1a; Linux文档 Linux-5.4\Documentation\devicetree\bindings\i2c\i2c-gpio.yamlLinux-4.9.88\Documentation\devicetree\bindings\i2c\i2c-gpio.txt Linux驱动源码 Linux-5.4\drivers\i2c\busses\i2c-gpio.cLinux-4.9.88\driv…

nodeJs+Mongodb+mongoose入门

nodeJsexpressMongodbmongooseNavicat 自我记录 一、简介 1.1 Mongodb 是什么 MongoDB 是一个基于分布式文件存储的数据库&#xff0c;官方地址 https://www.mongodb.com/ 1.2 数据库是什么 数据库&#xff08;DataBase&#xff09;是按照数据结构来组织、存储和管理数据…

人机交互——对话管理

​人机交互中的对话管理主要是指在人机交互过程中&#xff0c;对交互的对话内容和流程进行管理&#xff0c;以实现自然、流畅、高效的交互效果。对话管理包括对话状态追踪、对话策略优化等多个方面。 对话状态追踪是指对当前对话的状态进行跟踪&#xff0c;例如对用户输入的语…

【linux】shell脚本调试

前几天的一篇linux定时删除服务器日志 &#xff0c;有人读了&#xff0c;私信问题。说我写了脚本了&#xff0c;怎么去调试一下&#xff0c;类似于代码的debug。 那我们今天来聊聊。 执行脚本命令是&#xff1a; sh 脚本名 sh dele_log2.sh 执行并输出。 Shell 脚本调试选…

mysql 导入sql文件

mysql 导入sql文件 sudo mysql -uroot -p123456 -h127.0.0.1 sudo mysql -uroot -p123456 -h127.0.0.1然后 show databases;然后 use 数据库名称; 然后 source 20230920031001.sql;如果不加 -h127.0.0.1 可能会出现错误 /var/lib/mysql.sock error 通过 navicat导入的话&am…

robotframework在Jenkins执行踩坑

1. Groovy Template file [robot_results.groovy] was not found in $JENKINS_HOME/email_template 1.需要在managed files 添加robot_results.groovy。这个名字需要和配置在构建项目里default content一致&#xff08;Extended E-mail Notification默认设置里Default Content…

PostgreSQL如何支持PL/Python过程语言

瀚高数据库 目录 环境 文档用途 详细信息 环境 系统平台&#xff1a;Linux x86-64 Red Hat Enterprise Linux 7 版本&#xff1a;10.4 文档用途 本文档主要介绍PostgreSQL如何支持PL/Python过程语言&#xff0c;如何创建plpython扩展。 详细信息 一、PostgreSQL支持python语言…