基于豆瓣社交数据的电影推荐系统设计与实现

 2022-01-17 23:27:22

论文总字数:26108字

目 录

1 绪论 3

1.1 研究背景 3

1.2 研究现状 3

1.3 研究目的 3

1.4 相关技术介绍 4

2 系统分析与总体设计 5

2.1 可行性分析 5

2.1.1 技术可行性 5

2.1.2 硬件可行性 5

2.1.3 时间可行性 5

2.2 需求分析 5

2.2.1 模块设计 5

2.3 总体设计 6

3 数据库设计 8

3.1 数据库概念设计 8

3.2 数据库逻辑设计 10

3.2.1 用户信息表userInfo 10

3.2.2 电影信息表movieInfo 10

3.2.3 短评信息表commit 11

3.2.4 影评信息表movieReview 11

3.2.5 用户留言表userCommit 12

3.2.6 用户关系表relationship 12

3.2.7 使用记录表history 12

3.2.8 标签信息表tagInfo 13

3.2.9 国家、地区信息表countryInfo 13

3.2.10 标签-历史记录视图tagInfo_history 13

3.2.11 地区-历史记录视图countryInfo_history 14

4、 系统详细设计与实现 15

4.1、 登录模块 15

4.2、 注册模块 16

4.3、 导航栏模块 17

4.4、 电影首页模块 18

4.5、 排行榜模块 18

4.5.1 豆瓣电影排行榜 18

4.5.2 本周口碑榜 19

4.6、 分类模块 19

4.7、 影评模块 21

4.7.1 本地影评 21

4.7.2 豆瓣热门影评 22

4.8、 电影信息模块 23

4.8.1 电影详细信息 23

4.8.2 电影简介 23

4.8.3 本地电影短评 23

4.8.4 电影影评 24

4.8.5 豆瓣热门短评 24

4.8.6 猜你喜欢 24

4.9 电影搜索结果模块 26

4.10 个人中心模块 26

4.10.1 个人信息 27

4.10.2 个人短评 27

4.10.3 个人影评 27

4.10.4 留言区 27

4.10.5 更多列表 27

4.11 推荐算法 29

5 总结 33

5.1 系统总结 33

5.2 个人总结 33

5.3 缺陷分析与展望 33

参考文献 34

致 谢 35

基于社交网络数据的推荐系统实现

王楚豫

,China

Abstract: Today, with the rapid increase of information volume, people want to see the data they need or some of their favorite data from huge data. It has become an integral part of a large number of business systems that users' preferences are collected by users, and then a number of mathematical algorithms are used to push users' preferred information to the user's recommendation system.This topic requires the recommendation system based on the data of social network. Using B/S architecture, based on all kinds of data of the bean, the simple movie information browsing system is realized, and the recommendation system is integrated to realize the recommended movies and similar users that may be liked by the users. SSM (spring spring boot mybatis) framework is based on the integration of MVC architecture to implement the system, including movie information browsing, film review, short review browsing, search for movie entries, view user information, film, user recommendation and other modules.

Key words:Movie, SSM, Recommendation system

1 绪论

1.1研究背景

互联网飞速发展的大环境下,各个行业领域的数据量剧增,而用户需要的数据仅仅是这些庞大数据中的一小部分。给用户展现最想要的数据才能吸引用户,给用户带来刚好的使用体验。推荐系统已经成为众多商业网站必须的一个设计模块。通过用户的使用记录,计算出用户可能的喜好,将这部分数据展现给用户,让用户在使用系统过程中能直截了当的看到感兴趣的信息,可以说推荐算法的优劣是捕获用户的重要因素之一。

推荐系统的研究开始与1994年明尼苏达大学GroupLens研究组推出的GroupLens系统,是最早的自动化协同过滤推荐系统之一。随着技术的不断发展,推荐系统已经被广泛应用,例如国内的淘宝、百度、新浪、豆瓣等网站。

1.2 研究现状

推荐算法是指利用用户的一些行为,通过一些数学算法,推测出用户可能感兴趣的信息。推荐算法主要分成6种,基于内容、基于协同、基于关联规则、基于效用、基于知识和组合推荐。

基于内容就是根据以往的数据,包括用户的搜索记录,浏览记录计算权重较高的关键字,作为描述用户的特征向量,然后将两个向量最相近的项推荐给用户。

协同过滤算法主要是通过计算相似项对未评分项进行评分、预测来实现的。理论上可以将任何一种东西,例如电影、图片、音乐、推荐给用户。

基于关联规则的推荐(Association Rule-based Recommendation)是以关联规则为基础,把已购商品作为规则头,规则体为推荐对象。

基于效用的推荐(Utility-based Recommendation)是建立在对用户使用项目的效用情况上计算的,其核心问题是怎么样为每一个用户去创建一个效用函数,因此,用户资料模型很大程度上是由系统所采用的效用函数决定的。

基于知识的推荐(Knowledge-based Recommendation)在某种程度是可以看成是一种推理(Inference)技术。基于知识的方法因它们所用的功能知识不同而有明显区别。

基于组合的推荐是最为常用的推荐算法,其中内容推荐与协同推荐的组合为最。这样可以同时拥有两种模式的是优点,中和掉不必要的缺点。本系统所采用的推荐算法即为内容推荐与协同推荐的组合推荐算法。

1.3 研究目的

基于推荐算法的系统对于现代化大数据环境有很大的帮助,可以从众多数据中找到最有可能感兴趣的一部分数据。推荐算法通过算法,计算已有数据,得到用户可能需要的数据,以此捕获用户量,提升用户使用体验。

研究推荐算法集成到基于豆瓣数据的电影浏览系统,将用户可能喜欢的电影信息推荐给用户。减少用户搜索过程,让系统更加智能化,提高系统使用性。

1.4 相关技术介绍

本系统开发相关环境

Java环境:JDK1.8。

开发工具:IntelliJ IDEA 2017。

数据库:mysql 5.7及图形化工具Navicat。

系统开发框架介绍

  1. Spring

Spring框架是一个轻量级的企业级开发的一站式解决方案,基于Spring解决Java EE开发的所有问题。Spring框架主要提供了IoC容器、AOP、数据访问、Web开发、消息、测试等相关技术的支持.

IoC即控制反转,控制反转是通过依赖注入实现的,即让容器创建和维护对象,无需开发者手动创建对象,通过容器将这些对象注入到开发需要的Bean中,这样减少了维护代码的代价。

AOP即面向切面编程。利用AOP可以对业务逻辑的各个部分进行隔离,从而使得业务逻辑各部分之间的耦合度降低,提高程序的可重用性,同时提高了开发的效率。

  1. Spring boot

Spring boot是一个单纯基于Spring的应用。使用Spring boot只需要很少的配置,而且大多数情况可以使用默认配置,可以快速搭建spring项目。Spring boot会根据在类路径中的jar包、类,为jar包里的类自动配置Bean,极大的减少了我们需要进行的配置。Spring boot项目可以独立运行,无须依赖外部Servlet容器(如Tomcat)。

  1. Mybatis

MyBatis 是一款持久层框架,它支持定制化 SQL、存储过程以及高级映射。MyBatis 避免了几乎所有的 JDBC 代码和手动设置参数以及获取结果集。MyBatis 可以使用简单的 XML 或注解来配置和映射原生信息,将接口和 Java 的 POJOs映射成数据库中的记录。与hibernate相比,Mybatis更轻量级,更适合中小型项目开发。Mybatis由开发者手动编写原生sql语句,可以严格控制sql 性能,灵活度高。

  1. 与mvc集成

在Spring boot中可以使用Thymeleaf作为模版引擎。Thymeleaf是一个java类库,是一个xml/html5的模版引擎,可以作为mvc的view层,可以使用Thymeleaf完全代替jsp。Thymeleaf以标签库的形式接收服务端传输数据。

2 系统分析与总体设计

2.1可行性分析

2.1.1 技术可行性

Spring boot自出现至今收到众多程序员青睐,开发效率,性能等各个方面都能经受住考验。MyBatis持久层框架在中小级项目开发中发挥重要作用,中小型项目中MyBatis在性能上与hibernate没有较大区别,而在重量级上比hibernate轻量许多,适合本项目开发环境。前端使用jQuery 工具,简化前端代码,减轻浏览器压力。主要采用Thymeleaf渲染前端数据,复杂数据传输利用ajax异步传输,提升用户体验。

2.1.2 硬件可行性

采用开发框架均为轻量级框架,对开发环境硬件要求较低。项目数据库部署在远端服务器上,因本系统面向用户量并不大,对数据库压力较小,服务器硬件可行。本项目后台对数据处理进行大量优化,后期部署服务至服务器对服务器需求较小。

2.1.3 时间可行性

本项目重在研究算法,对于推荐算法由于先前有接触。权衡开发项目时间,可以严格控制在进度安排之中。

经对技术、硬件、时间可行性分析可得,项目开发可行。

2.2需求分析

2.2.1模块设计

(1)登录注册模块

剩余内容已隐藏,请支付后下载全文,论文总字数:26108字

相关图片展示:

您需要先支付 80元 才能查看全部内容!立即支付

该课题毕业论文、开题报告、外文翻译、程序设计、图纸设计等资料可联系客服协助查找;