基于Spark的电影推荐系统(电影网站)

三世轮回 提交于 2021-02-19 08:08:07

第一部分-电影网站:

软件架构: SpringBoot+Mybatis+JSP 项目描述:主要实现电影网站的展现 和 用户的所有动作的地方

技术选型:

技术 名称 官网
Spring Boot 容器 https://projects.spring.io/spring-boot/
Spring MVC MVC框架 http://docs.spring.io/spring/docs/current/spring-framework-reference/htmlsingle/#mvc
MyBatis ORM框架 http://www.mybatis.org/mybatis-3/zh/index.html
MyBatis Generator 代码生成 http://www.mybatis.org/generator/index.html
PageHelper MyBatis物理分页插件 http://git.oschina.net/free/Mybatis_PageHelper
Druid 数据库连接池 https://github.com/alibaba/druid
Redis (后期) 分布式缓存数据库 https://redis.io/
Elasticsearch(后期) 分布式全文搜索引擎 http://lucene.apache.org/solr/ https://www.elastic.co/
Logback 日志组件 https://logback.qos.ch/
Swagger2 接口测试框架 http://swagger.io/
Maven 项目构建管理 http://maven.apache.org/

主要开发工具:

  • MySql: 数据库
  • Tomcat: 应用服务器
  • Git: 版本管理
  • IntelliJ IDEA: 开发IDE

开发环境

  • JDK 1.8+
  • Maven 3.3.9
  • Mysql 5.7.20+
  • Lombok , 需要开发环境(IDEA或eclipse)支持

项目架构

项目流程图

数据表设计

ps:推荐指的是spark推荐模型进行处理的表

  • alstab 个人用户的推荐强度表 推荐 ps:用户登陆后,选取用户id关联的电影id 进行电影推荐 - similartab 相似的电影 推荐* - topdefaultmovies 默认电影 - rectab 用户评价的时候将相似的电影写入此表 - browse 1. 新用户注册时喜欢的电影 2. 点击喜欢按钮的电影 - review 评价过的电影
所有数据表
admin 管理员表
	id name password role
	role 0代表超级管理员,1代表普通

alstab 强度表===推荐系统得到
	userid movieid rating(评分)

browse  浏览表
	id userid movieids browsetime (浏览时间)

category 电影类型
	id category
	
movie 电影详情 50581条数据
	movieid 
	moviename 电影名称
	showyear上映时间
	nation 国家
	director 导演
	leadactors 主演
	screenwriter 编剧
	picture 电影海报
	averating 平均评分
	numrating 多少人看过
	description 描述
	typelist 电影类型
	backpost 电影背景图片
	
moviecategory 电影所属类型 88870条数据
	id
	movieid 
	categoryid

rectab
	userid
	movieids
	
review 用户对电影的评分,和评价
	id
	userid
	movieid
	content
	star
	reviewtime
	
similartab 类似度 68908条数据
	itemid1
	itemid2
	similar 

topdefaultmovies 默认的top
	id
	movieid
	moviename

user 用户表
	userid
	username
	password
	email
	registertime 
	lastlogintime
用户流程分析
步骤1:
	开始直接从topdefaultmovies表中取出前五部电影
		- 使用top表的movieid去关联查询movie表的数据
步骤2:
	登录:
		- 从ALS强度表中查询推荐强度8以上的电影
		(这个是每个用户来说的,也就是说,带上userid去查询的强度表的)

更多文章:基于Spark的电影推荐系统:https://blog.csdn.net/liuge36/column/info/29285

易学教程内所有资源均来自网络或用户发布的内容,如有违反法律规定的内容欢迎反馈
该文章没有解决你所遇到的问题?点击提问,说说你的问题,让更多的人一起探讨吧!