草庐IT

毕业设计-基于微信小程序的电影推荐系统

Mini_hailang_IT 2023-10-30 原文

目录

前言

课题背景与简介

实现设计思路

一、电影推荐算法的设计与实现

二、电影推荐系统分析与设计

 实现效果样例

更多帮助


前言


    📅大四是整个大学期间最忙碌的时光,一边要忙着备考或实习为毕业后面临的就业升学做准备,一边要为毕业设计耗费大量精力。近几年各个学校要求的毕设项目越来越难,有不少课题是研究生级别难度的,对本科同学来说是充满挑战。为帮助大家顺利通过和节省时间与精力投入到更重要的就业和考试中去,学长分享优质的选题经验和毕设项目与技术思路。

🚀对毕设有任何疑问都可以问学长哦!

 选题指导: https://blog.csdn.net/qq_37340229/article/details/128243277

大家好,这里是海浪学长微信小程序毕设专题,本次分享的课题是

🎯基于微信小程序的电影推荐系统

课题背景与简介

随着信息技术和移动互联网技术的发展,信息的数据量呈爆炸式增长趋势, 社会逐渐从信息匮乏时代进入了信息过载的“大数据”时代。在这种背景下,人 们越来越难从大量的信息中找到自身感兴趣的信息,如何从大量冗杂的信息中获 取有价值的信息成了一个需要迫切解决的问题。基于此,搭建微信小程序平台上的电影推荐系统,以在一定程度上解决电影的信息过载问题。推荐系统作为解决信息超载问 题的有效方法受到公众的广泛关注。 假设用户想去看最新上映电影,只需要通过网络找到一 家电影院并订一张电影票,就可以观看自己喜爱的电影。但是,这种方式需要用 户有明确的目的性,他需要知道自己想要看什么样的电影。当用户没有明确的需 求,不知道想要看哪种类型的电影时,就只能在大量的电影中逐一查找,很难在 短时间内找到自己想看的影片。 为了解决使用户能够快速找到想看的电影,电影推荐系统应运而生。一个优 秀的电影推荐系统,不仅能为在线用户提供更多的电影推荐服务,还可以提高用户 对电影平台的认可度和使用体验。

实现设计思路

一、电影推荐算法的设计与实现

推荐算法设计

电影推荐系统的核心在于推荐算法。本文所采用的是经过改良的基于用户的协同过滤算法。算法采用的技术路线图如图 所示:

技术路线图包括以下四个部分: (1)数据准备与预处理 (2)数据特征提取 (3)训练分类模型(4)计算推荐列表 

推荐算法实施过程

推荐算法实施过程主要分为以下五个部分。

(1)数据准备 (2)数据处理(3)特征提取 (4)情感极性分类(5)构建推荐算法模型

1、数据准备

首先,需要准备推荐算法所需要的数据。需要编写爬虫程序抓取电影的基本 信息和评论信息。爬虫程序的编写过程中主要使用了 Python 的 Requests 工具包 和 BeautifulSoup4 工具包。Requests 包负责从网页中下载数据,BeautifulSoup4 包负责解析数据。

 2、数据处理

将抓取的数据存储到数据库后,需要对数据进行处理,方便从文本数据中提取特征。数据处理主要包含两部分,中文分词,去除停用词。
1 )中文分词
本文使用基于 Python jieba 分词模块进行评论的分词。将预处理之后的评论进行分词,为构建词向量做准备。 中文分词效果:

(2)去除停用词

在自然语言处理(Nature Language Processing,NLP)领域停用词通常被认 为是无实际语义信息、无区分度的词,为了节省数据储存空间和提高特征提取效 率,需要在处理文本数据的时候,剔除这些停用词。去停用词效果:

3、特征提取

在进行完中文分词和去除停用词之后,得到了文本特征数据。但是训练 CNN 分类模型不能输入文本数据,需要以矩阵的形式作为输入。下面,将分为两部分 说明文本特征数据如何转换成矩阵形式。生成词典:

 生成特征向量:

选用 Word2vec 工具进行特征的进一步提取。它主要的目的是将高维的词向量转化为低维的 词向量,并能将单个词的上下文其他词也加入到当前词的提取过程中。现在 Word2vec 常用的模型有 CBOW(Continuous Bag-of-Words Model)和 Skip-Gram(Continuous Skip-gram Model),CBOW 模型是跟据词语的上下文来预 测它本身,而 Skip-Gram 模型是根据当前的词语来预测该词语上下文的其他词。 在本文中,采用的是 CBOW 模型。

4、构建情感极性分类模型

采 用 的 情 感 分 类 模 型 是 卷 积 神 经 网 络 ( Convolutional Neural Networks,CNN),CNN 是一种具有“深度”的多层神经网络模型,善于从特 征不明显的数据中提取特征,经常被用于处理图像识别问题[28]。但在近年来, CNN 在 NLP 领域的文本分类上的效果也非常出色。 CNN 通常由输入层、卷积层、池化层、全连接层、输出层组成。

5、推荐算法实现

在上一步中得到了电影评论的情感极性值,下面将要讲述如何把情感值加入 到协同过滤算法的计算当中,并构建改进版的推荐算法模型。 基于物品的协同过滤算法的本质是给用户推荐他之前喜欢的物品的相似物 品。所以该算法的重点是计算物品之间的相似度,相似度计算主要有三个经典算 法:余弦定理相似性度量、欧氏距离相似度度量和杰卡德相似性度量。

推荐算法评估

完成了对电影推荐算法的设计,但是无法判别这个算法的好坏,是否 能够推荐合适的电影,下面将对推荐算法进行评估。主要从准确率、召回率、覆 盖率三个方面进行评估。

1 )召回率

(2)准确率

 (3)覆盖率

二、电影推荐系统分析与设计

需求分析
需求分析的过程就是将系统从黑盒逐步转换为白盒的一个过程。
1、功能性需求
功能需求是规定开发人员必须在产品中实现的软件功能,用户利用这些功能 来完成任务,满足业务需求。功能需求有时也被称作行为需求。

2、非功能性需求

非功能性需求是指依一些条件判断系统运作情形或其特性,而不是针对系统 特定行为的需求。 系统有以下五个方面的非功能需求。

(1)性能需求(2)可维护性(3)可用性 (4)易用性(5)安全性

架构设计

系统构架是对已确定的需求的技术实现构架、作好规划,运用成套、完整的 工具,在规划的步骤下去完成任务。电影推荐系统架构采用 B/S 架构,包含三部分 Browser 微信小程序、Sever服务器、Database 数据库。

Browser 即前端,在本系统中代表着微信小程序,它负责与用户的交互、发 送数据请求,Sever 即服务器,负责数据的交互、事务的处理等重要处理和计算 工作,Database 即数据库,用来储存电影数据,评论数据,用户数据等。

功能设计
电影推荐系统的功能模块图如图所示:

 (1)影片推荐模块

影片推荐模块分区域显示热门推荐,个性化推荐,高分推荐。

(2)搜索模块

搜索模块可以输入匹配字符搜索。

(3)用户信息模块

用户信息,可以查询和修改用户数据;电影收藏,收藏对用户收藏的电影进 行查看和管理;系统设置,可以设置小程序的背景、风格;应用信息,显示小程 序的基本信息。

1、影片推荐模块设计

本模块功能为影片推荐,按照来源区分可以分为三个部分,分别是热门电影 推荐、个性化电影推荐,高分推荐。 热门推荐是根据电影的上映时间、评论数、评分数据生成电影推荐列表,并 按照热度排序展示。 个性化推荐是上一章重点介绍的由改进版基于物品的协同过滤算法计算的 电影推荐,推荐信息与用户个人行为记录有关,按照推荐度排列展示。 高分推荐是根据电影的评分、类型、国家\地区数据生成的电影推荐,并按 照分类、国家展示。

2、搜索模块设计

本模块功能为影片搜索,使用字符匹配搜索。 字符匹配搜索用户通过自己的需求从输入框输入电影、演员、导演名称,获 取与输入字符匹配的相应电影列表。

3、用户信息模块设计

本模块功能为影片推荐,分为四个部分,分别是。用户信息、电影收藏、系 统设置、应用信息。

数据库设计

数据库是信息的载体,是系统的重要组成部分。应用本系统采用了 MySQL 数据库作为储存电影相关信息的数据库,MySQL 数据库属于关系型数据 库,多用于 WEB 应用,MySQL 的优点是易于搭建、轻量化易于迁移、处理数 据速度快,并且可以免费使用。

1、E-R 图设计

由需求分析和功能设计可知,在系统中涉及到的实体有用户、评论、电影、 电影收藏。表示它们之间的关系的 E-R 图如图

2、数据表设计

数据库由四个表组成,user 表储存着用户基本信息,comment 表储存着评论 信息,movie 表储存这电影基本信息,movie_collection 表储存着用户收藏的电影 信息。

user表:

 comment表:

movie 表:

movie_collection 表:

 实现效果样例

电影推荐模块:

 我是海浪学长,创作不易,欢迎点赞、关注、收藏、留言。

毕设帮助,疑难解答,欢迎打扰!

更多帮助

有关毕业设计-基于微信小程序的电影推荐系统的更多相关文章

  1. ruby-on-rails - Rails - 子类化模型的设计模式是什么? - 2

    我有一个模型:classItem项目有一个属性“商店”基于存储的值,我希望Item对象对特定方法具有不同的行为。Rails中是否有针对此的通用设计模式?如果方法中没有大的if-else语句,这是如何干净利落地完成的? 最佳答案 通常通过Single-TableInheritance. 关于ruby-on-rails-Rails-子类化模型的设计模式是什么?,我们在StackOverflow上找到一个类似的问题: https://stackoverflow.co

  2. ruby-on-rails - 使用 rails 4 设计而不更新用户 - 2

    我将应用程序升级到Rails4,一切正常。我可以登录并转到我的编辑页面。也更新了观点。使用标准View时,用户会更新。但是当我添加例如字段:name时,它​​不会在表单中更新。使用devise3.1.1和gem'protected_attributes'我需要在设备或数据库上运行某种更新命令吗?我也搜索过这个地方,找到了许多不同的解决方案,但没有一个会更新我的用户字段。我没有添加任何自定义字段。 最佳答案 如果您想允许额外的参数,您可以在ApplicationController中使用beforefilter,因为Rails4将参数

  3. ruby-on-rails - Rails 中的推荐引擎 - 2

    我想为我的Rails网络应用程序提供推荐功能。特别是,我想向新注册的用户推荐他可能想要关注的其他用户。Rails中是否有用于此目的的引擎/gem?如果没有,我应该从哪里开始构建它?谢谢。 最佳答案 有Coletivogemhttps://github.com/diogenes/coletivo我试了一下。在MySQL上运行。Neo4jhttp://neo4j.org真的很容易实现一个“跟随谁”。事实上,大多数展示其能力的样本都涉及“跟随谁”。快速提示-只有在JRuby上运行时,Neo4j.rb才会很酷。如果不是-使用Neograph

  4. 叮咚买菜基于 Apache Doris 统一 OLAP 引擎的应用实践 - 2

    导读:随着叮咚买菜业务的发展,不同的业务场景对数据分析提出了不同的需求,他们希望引入一款实时OLAP数据库,构建一个灵活的多维实时查询和分析的平台,统一数据的接入和查询方案,解决各业务线对数据高效实时查询和精细化运营的需求。经过调研选型,最终引入ApacheDoris作为最终的OLAP分析引擎,Doris作为核心的OLAP引擎支持复杂地分析操作、提供多维的数据视图,在叮咚买菜数十个业务场景中广泛应用。作者|叮咚买菜资深数据工程师韩青叮咚买菜创立于2017年5月,是一家专注美好食物的创业公司。叮咚买菜专注吃的事业,为满足更多人“想吃什么”而努力,通过美好食材的供应、美好滋味的开发以及美食品牌的孵

  5. 电脑0x0000001A蓝屏错误怎么U盘重装系统教学 - 2

      电脑0x0000001A蓝屏错误怎么U盘重装系统教学分享。有用户电脑开机之后遇到了系统蓝屏的情况。系统蓝屏问题很多时候都是系统bug,只有通过重装系统来进行解决。那么蓝屏问题如何通过U盘重装新系统来解决呢?来看看以下的详细操作方法教学吧。  准备工作:  1、U盘一个(尽量使用8G以上的U盘)。  2、一台正常联网可使用的电脑。  3、ghost或ISO系统镜像文件(Win10系统下载_Win10专业版_windows10正式版下载-系统之家)。  4、在本页面下载U盘启动盘制作工具:系统之家U盘启动工具。  U盘启动盘制作步骤:  注意:制作期间,U盘会被格式化,因此U盘中的重要文件请注

  6. 【鸿蒙应用开发系列】- 获取系统设备信息以及版本API兼容调用方式 - 2

    在应用开发中,有时候我们需要获取系统的设备信息,用于数据上报和行为分析。那在鸿蒙系统中,我们应该怎么去获取设备的系统信息呢,比如说获取手机的系统版本号、手机的制造商、手机型号等数据。1、获取方式这里分为两种情况,一种是设备信息的获取,一种是系统信息的获取。1.1、获取设备信息获取设备信息,鸿蒙的SDK包为我们提供了DeviceInfo类,通过该类的一些静态方法,可以获取设备信息,DeviceInfo类的包路径为:ohos.system.DeviceInfo.具体的方法如下:ModifierandTypeMethodDescriptionstatic StringgetAbiList​()Obt

  7. 基于C#实现简易绘图工具【100010177】 - 2

    C#实现简易绘图工具一.引言实验目的:通过制作窗体应用程序(C#画图软件),熟悉基本的窗体设计过程以及控件设计,事件处理等,熟悉使用C#的winform窗体进行绘图的基本步骤,对于面向对象编程有更加深刻的体会.Tutorial任务设计一个具有基本功能的画图软件**·包括简单的新建文件,保存,重新绘图等功能**·实现一些基本图形的绘制,包括铅笔和基本形状等,学习橡皮工具的创建**·设计一个合理舒适的UI界面**注明:你可能需要先了解一些关于winform窗体应用程序绘图的基本知识,以及关于GDI+类和结构的知识二.实验环境Windows系统下的visualstudio2017C#窗体应用程序三.

  8. LC滤波器设计学习笔记(一)滤波电路入门 - 2

    目录前言滤波电路科普主要分类实际情况单位的概念常用评价参数函数型滤波器简单分析滤波电路构成低通滤波器RC低通滤波器RL低通滤波器高通滤波器RC高通滤波器RL高通滤波器部分摘自《LC滤波器设计与制作》,侵权删。前言最近需要学习放大电路和滤波电路,但是由于只在之前做音乐频谱分析仪的时候简单了解过一点点运放,所以也是相当从零开始学习了。滤波电路科普主要分类滤波器:主要是从不同频率的成分中提取出特定频率的信号。有源滤波器:由RC元件与运算放大器组成的滤波器。可滤除某一次或多次谐波,最普通易于采用的无源滤波器结构是将电感与电容串联,可对主要次谐波(3、5、7)构成低阻抗旁路。无源滤波器:无源滤波器,又称

  9. 微信小程序通过字典表匹配对应数据 - 2

    前言一般来说,前端根据后台返回code码展示对应内容只需要在前台判断code值展示对应的内容即可,但要是匹配的code码比较多或者多个页面用到时,为了便于后期维护,后台就会使用字典表让前端匹配,下面我将在微信小程序中通过wxs的方法实现这个操作。为什么要使用wxs?{{method(a,b)}}可以看到,上述代码是一个调用方法传值的操作,在vue中很常见,多用于数据之间的转换,但由于微信小程序诸多限制的原因,你并不能优雅的这样操作,可能有人会说,为什么不用if判断实现呢?但是if判断的局限性在于如果存在数据量过大时,大量重复性操作和if判断会让你的代码显得异常冗余。wxswxs相当于是一个独立

  10. 计算机毕业设计ssm+vue基本微信小程序的小学生兴趣延时班预约小程序 - 2

    项目介绍随着我国经济迅速发展,人们对手机的需求越来越大,各种手机软件也都在被广泛应用,但是对于手机进行数据信息管理,对于手机的各种软件也是备受用户的喜爱小学生兴趣延时班预约小程序的设计与开发被用户普遍使用,为方便用户能够可以随时进行小学生兴趣延时班预约小程序的设计与开发的数据信息管理,特开发了小程序的设计与开发的管理系统。小学生兴趣延时班预约小程序的设计与开发的开发利用现有的成熟技术参考,以源代码为模板,分析功能调整与小学生兴趣延时班预约小程序的设计与开发的实际需求相结合,讨论了小学生兴趣延时班预约小程序的设计与开发的使用。开发环境开发说明:前端使用微信微信小程序开发工具:后端使用ssm:VU

随机推荐