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


在这里插入图片描述

前言

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

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

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

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

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

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

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

总体设计

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

系统整体结构图

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

系统流程图

系统流程如图所示。

在这里插入图片描述

模型训练流程如图所示。

在这里插入图片描述

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

在这里插入图片描述

运行环境

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

Python环境

需要Python 3.6及以上配置,在Windows环境下推荐下载Anaconda完成Python所需环境的配置,下载地址为https://www.anaconda.com/,也可下载虚拟机在Linux环境下运行代码。

TensorFlow环境

安装方法如下:

方法一

打开Anaconda Prompt,输入清华仓库镜像。

conda config --add channels https://mirrors.tuna.tsinghua.edu.cn/anaconda/pkgs/free/
conda config -set show_channel_urls yes

创建Python 3.6的环境,名称为TensorFlow,此时Python版本和后面TensorFlow的版本有匹配问题,此步选择Python 3.x。

conda create -n tensorflow python=3.6

有需要确认的地方,都输入y。在Anaconda Prompt中激活TensorFlow环境:

conda activate tensorflow

安装CPU版本的TensorFlow:

pip install -upgrade --ignore -installed tensorflow

测试代码如下:

import tensorflow as tf
hello = tf.constant( 'Hello, TensorFlow! ')
sess = tf.Session()
print sess.run(hello)
# 输出 b'Hello! TensorFlow'

安装完毕。

方法二

打开Anaconda Navigator,进入Environments 单击Create,在弹出的对话框中输入TensorFlow,选择合适的Python版本,创建好TensorFlow环境,然后进入TensorFlow环境,单击Not installed在搜索框内寻找需要用到的包。例如,TensorFlow,在右下方选择apply,测试是否安装成功。在Jupyter Notebook编辑器中输入以下代码:

import tensorflow as tf
hello = tf.constant( 'Hello, TensorFlow! ')
sess = tf.Session()
print sess.run(hello)
# 输出 b'Hello! TensorFlow'

能够输出hello TensorFlow,说明安装成功。

后端服务器

使用阿里云服务器,镜像为centos_7_05_64_20G_alibase_20181210.vhd。在服务器LNMP上一键安装包1.6版本(https://lnmp.org/notice/lnmp-v1-6.html),包含Nginx、MySQL、PHP在内的一系列所需软件。通过Xshell远程登录到服务器后,输入命令安装LNMP:

wget http://soft.vpser.net/lnmp/lnmp1.6.tar.gz -c0 lnmp1.6.tar.gz && tar zxf lnmp1.6.tar.gz && cd lnmp1.6 && ./install.sh lnmp

完成安装后使用阿里云购买域名并且实名认证、备案等,这些操作可以通过域名访问服务器。
修改Nginx配置文件/ust/local/nginx/conf/nginx.conf:

events {
		worker_connections 1024; #默认1024
		}
http{
	#以下属性中以ssl开头的代表与证书配置有关,其他属性根据自己的需要进行配置
server {
	listen 443 ssl; # SSL协议访问端口号为443.未添加ssl,会造成Nginx无法启动
	server_name localhost; #localhost为证书绑定的域名,例如: www.example.com
	ssl_certificate cert/domain name.pem; #将domain name.pem替换成证书的文件名
	ssl_certificate_key cert/domain name.key; #将domain name.key替换成证书的密钥文件名
	ssl_session_timeout 5m;
	ssl_ciphers ECDHE -RSA -AES128 -GCM -SHA256: ECDHE:ECDH:AES:HIGH:!NULL:!aNULL:!MD5:!ADH:! RC4;  #使用此加密套件
	ssl_protocols TLSv1 TLSv1.1 TLSv1.2; #使用该协议进行配置
	ssl_prefer_server_ciphers on;
	location/ {
				include uwsgi_params;
				uwsgi_pass 127.0.0.1:8000;
	}
}
}

修改注释,重启Nginx服务。在阿里云上开通免费版个人SSL证书,下载证书后通过Xftp上传至服务器,在服务器上使用Nginx部署。安装Miniconda,通过清华镜像源下载安装文件:

wget -C https://mirrors.tuna.tsinghua.edu.cn/anaconda/miniconda/Miniconda3-latest-Linux-x86_64.sh

安装:

bash Miniconda3-latest-Linux-x86_64.sh

按照提示输入ENTER或者yes即可。安装完成后移动当前目录下的miniconda3至/usr/sbin/目录下,输入命令:

mv ./miniconda3 /usr/sbin/

修改对应的环境变量后,输入命令:

source .bashrc

使用conda管理环境。通过命令创建一个新的环境,输入命令后按照提示输入y即可创建成功。

conda create -n py36 python=3.6

Django环境配置

安装virtualenv,用于管理Django项目环境:

pip install virtualenv

新建目录名称recommender,使用virtualenv创建Django项目环境,版本为miniconda的Python 3.6:

virtualenv -p /usr/sbin/miniconda3/envs/py36/bin/python3.6 env

在当前目录下出现.env文件夹,使用命令,进入项目环境。

source activate ./env/bin/ activate

进入环境后安装所需的包:

pip install django==2.2 numpy pandas uwsgi

按照提示安装和项目环境配置,使用Django命令创建项目:

django-admin startproject mysite

命令执行完成后文件夹下会出现mysite,里面包含相关文件。

进入mysite目录下,使用manage.py创建应用:

python manage.py startapp contest

至此,Django环境配置完成。

微信小程序环境

根据所需的操作系统版本下载微信开发者工具,下载地址为:https://developers.weixin.qq.com/miniprogram/dev/devtools/download.html,安装微信开发者工具,下载安装包后,单击“下一步”按钮即可。申请小程序管理员账号,获取开发者APPID。申请账号:可参考https://mp.weixin.qq.com/wxopen/waregister?action=step1。具体可以参考下图。

在这里插入图片描述

获取APPID:小程序管理平台→开发→开发设置→开发者ID。该APPID将在微信开发者工具打开小程序时进行身份验证。

通过已授权的微信扫描登录开发者工具。新建项目,填写APPID,编写前端代码,后期使用微信开发者工具预览和调试小程序,如图所示。

在这里插入图片描述

项目开发时,为了能够在暂时无域名的情况下调试微信小程序与远程服务器的通信,可以在微信开发者工具的详情本地设置页面,勾选不检验合法域名、web-view (业务域名)、TLS版本以及HTTPS证书’选项,服务器域名配置后,在微信公众平台上(https://mp.weixin.qq.com/)登录创建好的小程序账户,项目开发设置页面下的服务器域名中加入在阿里云购买的域名,再去除勾选微信开发者工具中的选项即可。

相关其它博客

基于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相关资料,希望能帮助到所有小伙伴们。

  • 0
    点赞
  • 16
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 1
    评论
微信小程序已经成为了人们生活中不可或缺的一部分,为商家提供了一个新的营销渠道。在餐饮业中,微信小程序也被广泛运用,特别是基于微信小程序的点餐系统已经逐渐成为了餐饮行业的一种趋势。本文将对基于微信小程序的点餐系统进行文献综述,以便更好地了解该领域的现状和未来发展趋势。 首先,基于微信小程序的点餐系统具有很多优点。首先,它可以提高餐厅的效率,减少人力成本。其次,它可以提供更好的服务体验,加强顾客与餐厅之间的互动。最后,它可以提高餐厅的知名度和竞争力。 其次,基于微信小程序的点餐系统的研究主要集中在以下几个方面。首先,如何提高系统的用户体验和易用性。其次,如何提高系统的安全性和稳定性,保障用户的信息安全。最后,如何提高系统智能化水平,增强用户体验和餐厅的竞争力。 最后,基于微信小程序的点餐系统的未来发展趋势也值得关注。一方面,随着人工智能和大数据技术的不断发展,基于微信小程序的点餐系统将更加智能化和个性化。另一方面,随着移动支付和电子商务的快速发展,基于微信小程序的点餐系统将更加便捷和安全。 综上所述,基于微信小程序的点餐系统具有很多优点,研究主要集中在提高用户体验和系统智能化水平方面,未来发展趋势将更加智能化和便捷安全。

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

小胡说人工智能

谢谢老板打赏,祝您天天好心情!

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值