java+spring+springmvc+mybatis开发个性化订餐推荐系统 基于用户的协同过滤推荐算法 在线订餐推荐系统 可视化数据分析 爬虫 基于内容(用户属性)的推荐算法 PersonalizedOrderingRecommendSys
一、项目简介
1、开发工具和使用技术
eclipse或者idea,jdk1.8,mysql5或者mysql8,navicat数据库管理工具或者sqlyog数据库管理工具,tomcat7及以上版本,SSM(spring+springmvc+mybatis)开发框架,thymeleaf模板渲染引擎,html页面,javascript脚本,jquery脚本,echarts.js可视化图表工具,自定义星星评分功能(使用font-awesome星星图标字体)等。
2、实现功能
前台用户首页地址:http://localhost:8080/PersonalizedOrderingRecommendSys/
后台管理员首页地址:http://localhost:8080/PersonalizedOrderingRecommendSys/admin
管理员账号:admin 管理员密码:admin
前台用户包含:登录、注册、忘记密码、退出登录、搜索菜品、浏览菜品、修改信息、密码修改、购物车、购买、模拟支付、用户评分、用户收藏、用户评论、用户点赞、可视化排行榜、个性化推荐等功能;
后台管理员包含:数据统计、菜品类型管理、菜品管理、用户管理、用户订单管理、用户评分管理、用户收藏管理、用户评论管理、用户点赞管理、用户浏览管理、用户喜好管理、管理员管理等。
个性化推荐:
游客(用户未登录):热门推荐(推荐用户喜好较高的菜品);
用户(用户已登录):
基于用户的协同过滤推荐算法,根据用户喜好数据;
如果基于用户的协同过滤推荐算法没有推荐结果(冷启动和数据稀疏性问题造成没有推荐结果),采用基于用户属性的热门推荐(推荐与登录用户相同性别、年龄范围下的用户喜好较高的菜品,这是粗粒度的个性化推荐,也有较好效果);
如果基于用户属性的热门推荐没有推荐结果(项目刚上线,用户数据较少造成没有推荐结果),采用热门推荐(推荐用户喜好较高的菜品)。
喜欢这部菜品的人也喜欢:
先找到对当前菜品有喜好值的用户,再找到这些用户下平均喜好值比较高的菜品。
排行榜:
使用echarts.js组件实现柱状图和饼状图可视化效果。
用户点赞Top20:点赞量较高的前20个菜品。
用户喜好菜品类型:有用户喜好的菜品中,菜品类型的平均喜好值。
菜品数据来源:爬取美食天下菜品网站
3、开发步骤
一、需求分析
主要是分析需要实现的功能、确定开发工具及技术等。例如:前台用户需要有登录、注册、注销、搜索菜品、菜品评分、个性化推荐等,后台管理员需要有登录、注销、数据统计、用户管理、菜品管理、菜品类型管理等,个性化推荐使用基于用户的协同过滤推荐算法等。Java开发语言,mysql数据库,ssm开发框架等。
二、数据库设计
数据库设计使用navicat数据库管理工具,可通过sql语句脚本生成数据库表,也可以直接操作新建表设计表等。注意主外键关联设计,例如:评分记录表需要外键关联用户表和菜品表。
三、页面设计
使用html、css、javascript等前端技术,自行设计网页,主要以div和table布局。
四、开发框架搭建
SSM开发框架(spring+springmvc+mybatis)搭建,首先是jar包的导入,可以在https://mvnrepository.com/官网(存储jar包的仓库网站)搜索找到对应的jar包下载并导入项目,然后是开发框架配置文件的编写,编写规则主要是通过框架官方文档进行来发。
五、功能开发
首先是进行前台用户首页的开发,其次是菜品详情,然后是用户注册、登录等,接着是用户的评分、修改信息等,然后是进行管理员功能的开发,最后是进行前台用户的个性化推荐功能实现。
六、系统测试
主要是进行bug修改,推荐算法测试。
二、项目展示
三、代码展示及运行结果