基于Spark的电影推荐系统(电影网站)
第一部分-电影网站:
软件架构: 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
基于Spark的电影推荐系统(电影网站)的更多相关文章
- 基于Spark的电影推荐系统(实战简介)
写在前面 一直不知道这个专栏该如何开始写,思来想去,还是暂时把自己对这个项目的一些想法 和大家分享 的形式来展现.有什么问题,欢迎大家一起留言讨论. 这个项目的源代码是在https://github. ...
- 基于Spark Mllib,SparkSQL的电影推荐系统
本文测试的Spark版本是1.3.1 本文将在Spark集群上搭建一个简单的小型的电影推荐系统,以为之后的完整项目做铺垫和知识积累 整个系统的工作流程描述如下: 1.某电影网站拥有可观的电影资源和用户 ...
- 基于Spark的电影推荐系统(推荐系统~2)
第四部分-推荐系统-数据ETL 本模块完成数据清洗,并将清洗后的数据load到Hive数据表里面去 前置准备: spark +hive vim $SPARK_HOME/conf/hive-site.x ...
- 基于Spark的电影推荐系统(推荐系统~4)
第四部分-推荐系统-模型训练 本模块基于第3节 数据加工得到的训练集和测试集数据 做模型训练,最后得到一系列的模型,进而做 预测. 训练多个模型,取其中最好,即取RMSE(均方根误差)值最小的模型 说 ...
- 基于Spark的电影推荐系统(推荐系统~7)
基于Spark的电影推荐系统(推荐系统~7) 22/100 发布文章 liuge36 第四部分-推荐系统-实时推荐 本模块基于第4节得到的模型,开始为用户做实时推荐,推荐用户最有可能喜爱的5部电影. ...
- 基于Spark的电影推荐系统(推荐系统~1)
第四部分-推荐系统-项目介绍 行业背景: 快速:Apache Spark以内存计算为核心 通用 :一站式解决各个问题,ADHOC SQL查询,流计算,数据挖掘,图计算 完整的生态圈 只要掌握Spark ...
- 基于Mahout的电影推荐系统
基于Mahout的电影推荐系统 1.Mahout 简介 Apache Mahout 是 Apache Software Foundation(ASF) 旗下的一个开源项目,提供一些可扩展的机器学习领域 ...
- 基于pytorch的电影推荐系统
本文介绍一个基于pytorch的电影推荐系统. 代码移植自https://github.com/chengstone/movie_recommender. 原作者用了tf1.0实现了这个基于movie ...
- 基于卷积神经网络CNN的电影推荐系统
本项目使用文本卷积神经网络,并使用MovieLens数据集完成电影推荐的任务. 推荐系统在日常的网络应用中无处不在,比如网上购物.网上买书.新闻app.社交网络.音乐网站.电影网站等等等等,有人的地方 ...
随机推荐
- js 前端实现打印功能
// 此处是一个打印的方法 可以在点击事件的时候调用 dayin = () =>{ // 获取当前页面要打印的内容 // 这里的className(‘print’)是我给要打印的区域起的 ...
- Java多线程之守护线程
Java多线程之守护线程 一.前言 Java线程有两类: 用户线程:运行在前台,执行具体的任务,程序的主线程,连接网络的子线程等都是用户线程 守护线程:运行在后台,为其他前台线程服务 特点:一旦所有用 ...
- Java 线程池 ThreadPoolExecutor 的那些事儿
线程池基础知识 ThreadPoolExecutor : 一个线程池 Executors : 线程池工厂,通过该类可以取得一个拥有特定功能的线程池 ThreadPoolExecutor类实现了Exec ...
- k近邻法的实现
k近邻法 模型 使用的模型实际上对应于特征空间的划分.模型的三个基本要素:1.距离度量 2. k值的选择 3. 分类决策规则决定. k值的选择:k值的选择,k如果选择的过小会导致过拟合,模型会变得复杂 ...
- 一篇文章看懂JS执行上下文
壹 ❀ 引 我们都知道,JS代码的执行顺序总是与代码先后顺序有所差异,当先抛开异步问题你会发现就算是同步代码,它的执行也与你的预期不一致,比如: function f1() { console.lo ...
- Unity 3D,地形属性
Terrain Width 地形高度 Terrain Height 地形宽度 Terrain Lenght 地形长度 HeughtMap Resolution 地形高度图的分辨率 Detail Re ...
- Marrkdown基础用法
目录 前言 markdown简介 用法列表 标题 字符效果和横线 引用 锚点与链接 代码高亮 图片 有序列表&无序列表 表格 特殊符号与颜色处理 markdown进阶技巧 参考文章 前言 因为 ...
- Springboot集成swagger2生成接口文档
[转载请注明]: 原文出处:https://www.cnblogs.com/jstarseven/p/11509884.html 作者:jstarseven 码字挺辛苦的..... 一 ...
- Mybatis系列(二)配置
Mybatis系列(二)配置 <?xml version="1.0" encoding="UTF-8"?> <!DOCTYPE configu ...
- 阿里第二轮面试:手写Java二叉树
阿里面试 现在很多公司在招聘开发岗位的时候,都会事先在招聘信息中注明面试者应当具备的知识技能,而且在面试的过程中,有部分对于技能掌握程度有严格要求的公司还会要求面试者手写代码,这个环节很考验面试者的基 ...