码农知识堂 - 1000bd
  •   Python
  •   PHP
  •   JS/TS
  •   JAVA
  •   C/C++
  •   C#
  •   GO
  •   Kotlin
  •   Swift
  • 基于TensorFlow+CNN+协同过滤算法的智能电影推荐系统——深度学习算法应用(含微信小程序、ipynb工程源码)+MovieLens数据集(一)


    目录

    • 前言
    • 总体设计
      • 系统整体结构图
      • 系统流程图
    • 运行环境
      • Python环境
      • TensorFlow环境
        • 方法一
        • 方法二
      • 后端服务器
      • Django环境配置
      • 微信小程序环境
    • 相关其它博客
    • 工程源代码下载
    • 其它资料下载


    在这里插入图片描述

    前言

    本项目专注于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
    
    • 1
    • 2

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

    conda create -n tensorflow python=3.6
    
    • 1

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

    conda activate tensorflow
    
    • 1

    安装CPU版本的TensorFlow:

    pip install -upgrade --ignore -installed tensorflow
    
    • 1

    测试代码如下:

    import tensorflow as tf
    hello = tf.constant( 'Hello, TensorFlow! ')
    sess = tf.Session()
    print sess.run(hello)
    # 输出 b'Hello! TensorFlow'
    
    • 1
    • 2
    • 3
    • 4
    • 5

    安装完毕。

    方法二

    打开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'
    
    • 1
    • 2
    • 3
    • 4
    • 5

    能够输出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
    
    • 1

    完成安装后使用阿里云购买域名并且实名认证、备案等,这些操作可以通过域名访问服务器。
    修改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;
    	}
    }
    }
    
    • 1
    • 2
    • 3
    • 4
    • 5
    • 6
    • 7
    • 8
    • 9
    • 10
    • 11
    • 12
    • 13
    • 14
    • 15
    • 16
    • 17
    • 18
    • 19
    • 20

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

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

    安装:

    bash Miniconda3-latest-Linux-x86_64.sh
    
    • 1

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

    mv ./miniconda3 /usr/sbin/
    
    • 1

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

    source .bashrc
    
    • 1

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

    conda create -n py36 python=3.6
    
    • 1

    Django环境配置

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

    pip install virtualenv
    
    • 1

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

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

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

    source activate ./env/bin/ activate
    
    • 1

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

    pip install django==2.2 numpy pandas uwsgi
    
    • 1

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

    django-admin startproject mysite
    
    • 1

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

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

    python manage.py startapp contest
    
    • 1

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

  • 相关阅读:
    Java笔记:手写spring之ioc
    高德百度的逆地理编码接口对比
    【技术干货】宇视IPC音频问题解决步骤
    Elasticsearch
    一,安卓aosp源码编译环境搭建
    使用Python分析14亿条数据
    【刷题篇】回溯算法(深度优先搜索(一))
    XAPI项目架构:应对第三方签名认证的设计与调整
    如何让ESP8266板子像APP开发一样方便
    整理了整整1个月Java面试手册,上传到Git上目前star数达到了30K+
  • 原文地址:https://blog.csdn.net/qq_31136513/article/details/133122943
  • 最新文章
  • 攻防演习之三天拿下官网站群
    数据安全治理学习——前期安全规划和安全管理体系建设
    企业安全 | 企业内一次钓鱼演练准备过程
    内网渗透测试 | Kerberos协议及其部分攻击手法
    0day的产生 | 不懂代码的"代码审计"
    安装scrcpy-client模块av模块异常,环境问题解决方案
    leetcode hot100【LeetCode 279. 完全平方数】java实现
    OpenWrt下安装Mosquitto
    AnatoMask论文汇总
    【AI日记】24.11.01 LangChain、openai api和github copilot
  • 热门文章
  • 十款代码表白小特效 一个比一个浪漫 赶紧收藏起来吧!!!
    奉劝各位学弟学妹们,该打造你的技术影响力了!
    五年了,我在 CSDN 的两个一百万。
    Java俄罗斯方块,老程序员花了一个周末,连接中学年代!
    面试官都震惊,你这网络基础可以啊!
    你真的会用百度吗?我不信 — 那些不为人知的搜索引擎语法
    心情不好的时候,用 Python 画棵樱花树送给自己吧
    通宵一晚做出来的一款类似CS的第一人称射击游戏Demo!原来做游戏也不是很难,连憨憨学妹都学会了!
    13 万字 C 语言从入门到精通保姆级教程2021 年版
    10行代码集2000张美女图,Python爬虫120例,再上征途
Copyright © 2022 侵权请联系2656653265@qq.com    京ICP备2022015340号-1
正则表达式工具 cron表达式工具 密码生成工具

京公网安备 11010502049817号