571
社区成员




本系统旨在实现电影推荐功能,为用户提供个性化的电影推荐功能,为其提供便利的阅览功能。编写该需求分析报告的目的主要在于为后续的系统设计提供必要的指导,使后续系统的开发可以按照预设的流程进行。
随着互联网与移动互联网的迅速普及,网络上的电影娱乐信息数量相当庞大,人们对于获取感兴趣的电影娱乐信息的需求也越来越大。个性化的电影推荐系统成为人们讨论的一个热门话题。电影信息的表示方法较为复杂,现存的各种相似度计算方法都各有优势。大量的电影数据和用户数据的管理也随着数据量的增大而变得日渐复杂。如何综合各种算法的优势给用户可靠的电影推荐结果并让用户能访问到正确的推荐数据成为了一个重要的问题。本系统使用爬虫爬取电影网站上的电影数据,在推荐模块中结合了协同过滤算法与基于内容的推荐方法、基于统计的推荐算法等算法,结合离线推荐和实时推荐,有效的解决了系统推荐的准确性的问题。在课题中,实现了前端可视化页面、后台业务处理、算法的设计与实现,为用户推荐了他们可能想要观看的电影。
系统开发的意图旨在为用户提供一个有效的电影推荐平台,用户可在该平台找到更符合兴趣靶向的电影视频。在项目开发的每一阶段,团队会按照软件工程项目开发的要求,经过背景调研和项目可行性分析、程序架构设计、具体细节实现、项目整合测试等标准环节,来完成整个项目的开发。以最终交付一套可以完整正常运行并实现其功能价值的影视推荐系统。
本系统主要面相于电影观看用户,在后续的项目维护中,主要可以分为以下两种系统操作角色:
(1)用户,即影视推荐功能的使用者。系统为每个用户提供了基本的注册、登录服务,以及在后续的用户信息修改服务,在日常查阅中还有对各个电影的收藏功能和评分功能,针对自己喜爱的电影还可进行影评,发布用户对不同电影的看法和评价,还可将喜爱的电影以链接的形式分享至具有共同兴趣的用户。除了上述功能之外,还有最为核心的功能,大数据框架通过对已有数据的处理和分析,为用户进行个性化电影的推荐和热门电影的推荐,用户还可对电影进行分类搜索,寻找相应观看的视频。
根据系统为用户提供的不同功能,我们制作了相应的用例图,如下所示:
(2)系统管理员,在系统的运行阶段中,电影网站的功能管理需要管理员来进行操作。对于已注册的用户,管理员可以进行用户信息管理,增删用户等基本的信息操作,对于近期用户数据量变化以及网站相关数据可以进行后台的可视化查看和分析,以做出合适的管理操作。对于云端存储的电影数据可以进行相应的管理操作,增加或者删除等影视信息的基本操作。为此我们提供了下述用例图来进行展示。
请求电影信息时序图分析如下:
对于不同的功能需求模块,我们做出如下详解:
(1)管理员用户信息管理
在项目的实际运行中,我们需要再后台对不同用户做出相应的用户信息修改操作,以维护用户的正常使用,或者对于长期未登录的用户进行相应的删减操作来释放用户名占用资源。
(2)电影资源管理
对于整个项目的运行而言,电影信息需要不断的更新来满足用户对最新电影查看的需求,这就需要后台管理员对整个云端影视信息数据库有相应的操作功能接口,来完成对电影信息的增加、删除以及电影信息修改等操作。
(3)数据可视化看板
网站数据的变化对于网站管理员的下一步发展决策有着至关重要的建议性价值,对于数据库中存储的关系型或者非关系型数据,未经可视化的前提下很难具有宏观观测和细节观测的可能性。为此我们提供了相应的数据变化可视化看板,来观察近期用户增长趋势、电影收藏等数据的变化趋势等,提供了一个很好的信息获取方式。
(4)注册登录
为了网站对不同用户进行个性化的推荐,我们需要对不同用户的行为数据进行收集。收集的前提就是不同用户具有不同的表示来唯一标志其存在性。利用账户ID对不同用户进行绑定,有助于后续电影资源的推荐和功能的享用。
(5)用户信息管理
不同的用户在实际注册后,都可用于对自身信息修改的功能权限,为此我们需要提供相应的功能接口来。例如用户名、邮箱、出生年月、故乡、偏好、现住地、绑定第三方账号等信息修改。
(6)收藏评论分享评分
针对用户喜欢的不同电影,我们提供了影评功能,有助于用户发表对电影的不同认知观点等。对于喜欢的电影,用户可进行收藏和评分,系统中实现的推荐算法会根据用户的行为数据进行相应的分析和计算并进行个性化的推荐服务。
(7)电影资源搜索
各个电影平台均会为用户提供电影类别搜索功能,用户可以选择不同的类别标签,系统将根据不同的标签进行数据过滤提取出相应的电影展示到客户端页面,并提供浏览功能和详情页的展示功能。
(8)影视推荐模块
该功能模块为影视推荐系统最为核心的功能模块,本模块需要实现基于不同方面的个性电影推荐,为用户提供有效的信息推荐。算法模块的实现为基于模型、协同过滤、内容、统计信息的混合推荐,以增强系统的有效性,后续算法的运行借助于大数据框架,以保证推荐的实时性和有效性。
(9)热门影视排行
系统需要实现具有共性的热门影视排行,根据近期用户收藏和评论的数据计算出近期或者历史最为受欢迎的电影,以排行榜的形式来呈现给用户。
3.3 非功能性需求分析
(1)系统流畅稳定性需求
在项目部署后的运行阶段中,随着用户数量的增加,我们要求系统不出现功能性的错误,在数据加载和用户操作的过程中,尽量做到底层逻辑实现和数据加载方式的最优化,以增强改系统的流畅性和稳定性。
(2)信息安全性需求
信息安全新主要分为两个方面。其一便是用户隐私信息的存储安全,我们要求系统实现存储的安全性及传输的安全性,以做到对用户隐私的负责。其二便是影视数据的安全性,系统需要实现在系统忽然宕机后的数据可恢复和用户功能的稳定性,其也可作为系统稳定性的一部分。
(3)推荐有效性
在系统具有稳定性、流畅性和数据安全性的前提下,我们要实现项目最初的基本需求,即推荐影视信息的有效性。根据用户的行为数据,利用合适的算法计算分析出用户的影视偏好,并未其做出合理的推荐,是该系统最基本的价值。
根据上述的需求分析,以及用例图的展示,我们将用例图根据子系统的类别进行了划分,以模块的方式实现不同的功能,降低耦合性,增强功能模块的内聚度。
电影推荐系统由数据获取模块,用户功能模块,电影推荐模块,后台系统四个部分组成。其中数据获取模块的主要功能是在网络上爬取数据;用户功能模块主要实现了用户注册登录,信息修改,对电影的收藏、评论、分享、评分以及电影资源的查看等功能;电影推荐模块根据用户的行为数据等,采用合适的算法来对用户进行电影推荐,如个性化电影推荐,热门电影推荐,电影分类推荐等;后台系统则对电影的信息和用户的信息进行管理,并将数据进行可视化分析。
系统概要功能模块划分如下:
由于项目同时需要用到Web应用,我们暂时决定使用SSM框架作为项目的web架构来实现业务逻辑,web后端业务逻辑的结构示意图如下所示:
项目技术架构设计如下,我们使用到了大数据开发框架,结合了离线、在线和近线服务来实现整个项目的业务部署架构,数据库使用到了MongoDB,mysql,redis等。
作者337