基于Python的个性化电影推荐可视化分析系统-论文、源码、开题报告

 博主介绍:👉全网个人号和企业号粉丝40W+,每年辅导几千名大学生较好的完成毕业设计,专注计算机软件领域的项目研发,不断的进行新技术的项目实战👈
⭐️热门专栏推荐订阅⭐️ 订阅收藏起来,防止下次找不到

🔎千套JAVA实战项目持续更新中~

🔎上千套小程序实战项目持续更新中~

🔎上千套Python实战项目持续更新中~
有需求的各位可以先收藏起来,还有大家在毕设选题,开题报告有疑惑的都可以找我,给你参考意见,需要开题模板的可以私信留言告诉我

❤️文末获取源码联系❤️        ⚠️一定要先收藏⚠️

 

第四章 系统设计

4.1系统详细设计

4.1.1功能设计

基于Python的个性化电影推荐系统包括前后台两个方面,而功能上主要包括用户管理、电影资讯管理、评论管理、电影推荐、电影爬取、系统管理、可视化大屏分析。

其中系统功能结构图如4.1所示:

图4.1 系统功能结构图

在前台主要包括首页、查看电影资讯、电影信息,电影评论。

基于Python的个性化电影推荐系统的首页包括了logo信息、导航信息、电影信息推荐和底部信息。在首页中通过导航栏可以跳转到对应的功能页面,在电影信息推荐中,通过后台的推荐信息查看对应的电影。

前台用户可以查看电影资讯,在电影资讯模块中包括电影资讯,图片资讯内容和标题。

后台管理员通过管理权进行登录,然后进行电影管理、评分管理、资讯管理、会员信息管理、电影排名榜管理、系统管理。

在电影管理中,选择电影的分类信息后,填写电影基本内容,通过语句生成数据库记录。在电影信息列表中,也可以对电影的信息进行修改或者删除。

电影资讯管理员发布相关热播电影的拍摄信息、宣传片、主演的情况等等。

会员信息管理,管理员可以查看前台注册的会员记录,注册日期等。

可视化大屏分析,通过对电影数据分析,得出可视化大屏信息,包括电影类型统计、地区分布统计、语言分类统计、电影总数统计、每日上映数量统计、电影时长统计。

4.2.2电影推荐设计

本基于Python的个性化电影推荐系统使用协同过滤算法为用户推荐合适的电影。从注册的用户信息中挖掘和自己有相同兴趣爱好,然后分析相似用户的喜好,再把他们喜欢的电影推荐给注册用户。

协同过滤推荐算法和的关键问题是计算相似度问题,相似度的推荐方法通常包括三个方面:欧几里德距离、皮尔森相关系数、余弦相似度。

欧几里得距离也称为欧几里得杜良。在数学方法中,欧几里得距离指的是在空间中计算两点间直线距离。

欧几里德距离的数学公式,如图4-1所示。

图4-1欧几里德距离数学公式

皮尔森相关系数用于度量两个变量X和Y之间的线性相关,其值介于-1与1之间。使用数学公式来表示,如图4-2所示。

图4-2 皮尔森相关系数数学公式

余弦相似度是通过计算两个向量内积空间的夹角的余弦值来度量它们之间的相似性。余弦相似度的数学公式如图4-3所示。

图4-3 余弦相似度数学公式

系统需要计算用户的相似度,就需要反映用户对电影的喜好,首先对用户的权重值进行计算,权重并不是固定的,对权重进行量化,从而得到用户对电影喜爱的量化表,如4.1所示。

表4-1用户操作行为量化表

用户操作行为

量化值

搜索电影

30

评分大于5

50

收藏电影

40

踩电影

-10

浏览时跳过1(进度[0,1%])

-20

浏览时跳过2(进度[0,20%])

10

浏览时跳过3(进度[80%,100%])

20

评论电影

40

量化表中包括拉用户操作行为和量化值。不同的行为对应的量化值不同,比如评论电影和评分的权重最高,如果查看某一个电影时跳过,将减去相应的量化值。

4.2 数据库设计

4.2.1逻辑结构设计

基于Python的个性化电影推荐系统的ER图如4.6所示:

图4.6 系统ER图

4.2.2物理结构设计

基于Python的个性化电影推荐系统中包括多个信息表。

表: dianyingfenlei数据表

字段

列名

类型

是否主键

是否空

说明

1

col_id

bigint(8)

主键

No

主键

2

col_addtime

timestamp(8)

No

创建时间

3

col_dianyingfenlei

nvarchar(400)

Yes

电影分类

表: forum数据表

字段

列名

类型

是否主键

是否空

说明

1

col_id

bigint(8)

主键

No

主键

2

col_addtime

timestamp(8)

No

创建时间

3

col_title

nvarchar(400)

Yes

帖子标题

4

col_content

text(16)

Yes

帖子内容

5

col_parentid

bigint(8)

Yes

父节点id

6

col_userid

bigint(8)

No

用户id

7

col_username

nvarchar(400)

Yes

用户名

8

col_isdone

nvarchar(400)

Yes

状态

字段

列名

类型

是否主键

是否空

说明

1

col_id

bigint(8)

主键

No

主键

2

col_addtime

timestamp(8)

No

创建时间

3

col_dianyingmingcheng

nvarchar(400)

No

电影名称

4

col_dianyingfenlei

nvarchar(400)

No

电影分类

5

col_fengmian

nvarchar(400)

Yes

封面

6

col_zuoci

nvarchar(400)

Yes

导演

7

col_zhuyan

nvarchar(400)

Yes

主演

8

col_redu

int(4)

Yes

热度

9

col_shipin

nvarchar(400)

Yes

视频

13

col_shangyingshijian

datetime(8)

Yes

发行时间

14

col_dianyingjieshao

text(16)

Yes

电影介绍

15

col_thumbsupnum

int(4)

Yes

16

col_crazilynum

int(4)

Yes

17

col_clicktime

datetime(8)

Yes

最近点击时间

18

col_clicknum

int(4)

Yes

点击次数

表: dianyingpaimingbang数据表

表: users数据表

字段

列名

类型

是否主键

是否空

说明

1

col_id

bigint(8)

主键

No

主键

2

col_username

nvarchar(200)

No

用户名

3

col_password

nvarchar(200)

No

密码

4

col_role

nvarchar(200)

Yes

角色

5

col_addtime

timestamp(8)

No

新增时间

表: storeup数据表

字段

列名

类型

是否主键

是否空

说明

1

col_id

bigint(8)

主键

No

主键

2

col_addtime

timestamp(8)

No

创建时间

3

col_userid

bigint(8)

No

用户id

4

col_refid

bigint(8)

Yes

收藏id

5

col_tablename

nvarchar(400)

Yes

表名

6

col_name

nvarchar(400)

No

收藏名称

7

col_picture

nvarchar(400)

No

收藏图片

8

col_type

nvarchar(400)

Yes

类型(1:收藏,21:赞,22:踩)

9

col_inteltype

nvarchar(400)

Yes

推荐类型

表: dianyingxinxi数据表

字段

列名

类型

是否主键

是否空

说明

1

col_id

bigint(8)

主键

No

主键

2

col_addtime

timestamp(8)

No

创建时间

3

col_dianyingmingcheng

nvarchar(400)

No

电影名称

4

col_dianyingfenlei

nvarchar(400)

No

电影分类

5

col_fengmian

nvarchar(400)

Yes

封面

11

col_yuyan

nvarchar(400)

Yes

语种

12

col_shangyingshijian

datetime(8)

Yes

发行时间

13

col_dianyingjieshao

text(16)

Yes

电影介绍

14

col_thumbsupnum

int(4)

Yes

15

col_crazilynum

int(4)

Yes

16

col_clicktime

datetime(8)

Yes

最近点击时间

17

col_clicknum

int(4)

Yes

点击次数

表: yonghu数据表

字段

列名

类型

是否主键

是否空

说明

1

col_id

bigint(8)

主键

No

主键

2

col_addtime

timestamp(8)

No

创建时间

3

col_zhanghao

nvarchar(400)

No

账号

4

col_mima

nvarchar(400)

No

密码

5

col_xingming

nvarchar(400)

No

姓名

6

col_nianling

int(4)

Yes

年龄

7

col_xingbie

nvarchar(400)

Yes

性别

8

col_shouji

nvarchar(400)

Yes

手机

9

col_zhaopian

nvarchar(400)

Yes

照片

表: dianyingzixun数据表

字段

列名

类型

是否主键

是否空

说明

1

col_id

bigint(8)

主键

No

主键

2

col_addtime

timestamp(8)

No

创建时间

3

col_biaoti

nvarchar(400)

No

标题

4

col_jianjie

text(16)

Yes

简介

5

col_fabushijian

datetime(8)

Yes

发布时间

6

col_fengmian

nvarchar(400)

Yes

封面

7

col_neirong

text(16)

Yes

内容

8

col_thumbsupnum

int(4)

Yes

9

col_crazilynum

int(4)

Yes

10

col_clicktime

datetime(8)

Yes

最近点击时间

11

col_clicknum

int(4)

Yes

点击次数

表: dianyingpingfen数据表

字段

列名

类型

是否主键

是否空

说明

1

col_id

bigint(8)

主键

No

主键

2

col_addtime

timestamp(8)

No

创建时间

3

col_dianyingmingcheng

nvarchar(400)

Yes

电影名称

4

col_fengmian

nvarchar(400)

Yes

封面

5

col_dianyingpingfen

nvarchar(400)

Yes

电影评分

6

col_pingfenriqi

datetime(8)

Yes

评分日期

7

col_zhanghao

nvarchar(400)

Yes

账号

8

col_xingming

nvarchar(400)

Yes

姓名

4.3本章小节

本章节对基于Python的个性化电影推荐系统的系统进行设计,包括体系结构设计、功能结构设计、数据库设计。

第五章 系统实现

5.1 运行环境

基于Python的个性化电影推荐系统前台技术包括vue、css、div、html等,后台使用django框架,数据库mysql技术,开发平台为Pychare。

其中,基于Python的个性化电影推荐系统的硬件要求见表5-1所示。

表5.1 基于Python的个性化电影推荐系统环境硬件表

硬件名称

数量要求

性能要求

等级要求

开发主机

1

I5/8G DDR3/硬盘500G

数据库

1

I5/4G DDR3/硬盘100G

客户端

多个

无要求

基于Python的个性化电影推荐系统的软件要求如下面5.2所示。

表5.2 基于Python的个性化电影推荐系统服务器环境硬件表

类型名称

软件要求

系统要求

开发主机

python

Windows 11

数据库

MySQL

Windows 11

客户端

浏览器

Windows 11

5.2 后台管理功能实现

5.2.1管理员登录

使用脚本把数据库导入到mysql中,配置python,运行程序。其中用户登录的界面如下所示。

图5.1 管理员登录

使用form表单设计了用户名和密码输入框,点击登录到后台controller的方法中进行信息查询,在login中先获取用户名和密码的参数,然后查询管理员信息表,得出是否具有该用户。一般返回的结果有两个可能,一个是正确查询到用户,另外一种是查询不到用户,如果正确查询到用户,则提示登录成功,跳转到后台首页。如果查询不到,用户就提示用户名和密码输入错误。

5.2.2管理主界面

主界面主要包括了系统管理菜单,通过菜单对系统功能进行管理。每一个功能包括基本的查询、添加等操作。其中主界面如下所示。

图5.2 管理主界面

5.2.3电影类型管理

电影类型管理包括编号、名称、内容信息。其中电影类型管理如下所示。

图5.3 电影类型管理界面

创建一个信息录入的表单,页面分为两个状态,通过当前页面是否存在主键ID为依据。如果存在ID,就说明该页面是修改页面,如果ID为空,说明该页面是一个数据新增的页面。该页面提供了所有的电影类型信息表单,用户点击保存信息后,提交信息到后台电影类型的controller的方法中,该方法通过@RequestBody方法获取了所有的电影类型实体信息,然后调用电影类型的service方法的insert方法,将当前的实体进行数据库保存。service方法因为定义了相应的保存操作接口,所以直接将信息保存到数据库中,最后返回保存成功的提示。修改页面通过调用电影类型的uupdateById方法,将数据一次性全部更新,最终返回修改成功的状态。

5.2.3电影管理

电影管理包括电影编号、名称、类别、图片内容信息。电影信息可以通过点击数据爬取到豆瓣网站进行爬取获取。其中电影管理如下所示。

图5.3电影管理界面

分析豆瓣网站的静态代码,获取对方文本,通过BeautifulSoup. find_all方法查找a链接下的信息,样式为post-item-title。于是得到所有a链接,并且样式名称为post-item-title的内容。该内容就是本系统需要的爬取内容,包括了电影数据的标题、URL地址和内容。再通过for语句循环爬取到的对象结果,使用MySQL的cursor.execute方法进行数据保存,最后commit提交方法把数据插入到数据库。

5.2.4用户管理

用户管理包括用户信息查看和用户删除功能,管理员对过期的用户进行删除。其中用户管理如下所示。

图5.5 用户管理界面

在用户信息管理页面先通过查询条件,获取对应的用户列表,然后在用户管理页面通过标签,把所有的用户信息绑定到列表中。

5.2.5可视化大屏实现

点击可视化看板,显示可视化大屏的内容信息,包括电影类型统计、地区分布统计、语言分类统计、电影总数统计、每日上映数量统计、电影时长统计。其中可视化大屏管理如下所示。

图5.5 可视化大屏管理界面

5.3 前台用户功能实现

5.3.3电影查看

用户登录后,进入系统的主界面,能够看到所有电影公司电影信息,包括成电影公司电影分类信息,电影公司电影信息。其中电影公司电影类别如5.8所示:

图5.8 主界面

点击电影公司电影列表,跳转到电影公司电影详情的界面,用户可选择进行查看。在电影公司电影详情界面,点击首页,返回到主界面。

图5.9电影信息查询界面

在电影公司电影页面加载时,页面首先获取到电影公司电影的ID,然后到controller的方法中查询该电影公司电影的信息,参数是当前操作的ID主键值,然后调用controller的getAllbyID方法,将一条记录绑定到电影公司电影实体对象中,并将该对象返回到界面,对电影公司电影对象进行绑定,然后显示出来。

源码获取

大家点赞、收藏、关注 ,让更多需要的同学看到

不同开发语言专栏推荐订阅

 🔎千套JAVA实战项目持续更新中~

🔎上千套小程序实战项目持续更新中~

 🔎上千套Python实战项目持续更新中~

👇下方有我的微信名片👇

  • 15
    点赞
  • 20
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值