汪丽娟+钱育蓉

摘要:据调查,当今社会中,有不少人存在“选择吃什么”的困难症,为解决这一问题,文章设计了一种菜谱个性化推荐系统。该系统分为客户端和服务端,服务端进行系统的推荐计算,该推荐计算应用了基于内容的推荐算法,应用过程如下:首先,当一个新用户在客户端注册该系统时,系统会收集用户偏好属性以及用户基本信息;其次,系统把收集到的用户基本信息和用户偏好属性提交到服务端,服务端通过已经建立好的用户偏好属性、菜谱属性、用户信息模型进行推荐计算;最后,服务端把计算结果反馈到客户端,客户端显示给用户的推荐列表。实验结果表明,该推荐系统可以较为准确地给用户推荐菜谱。

关键词:选择困难;菜谱;个性化;推荐系统;基于内容推荐

1背景

近年来,互联网信息呈现爆炸式的增长,普通用户越来越难以从网上获取对自己有用的信息。除了用户难以获取有用信息之外,还有一个重要的问题往往被忽视——某些用户在某些方面的选择困难问题。当今社会,有不少人在生活、学习、工作等各个方面存在选择困难症。比如,许多大学生会纠结自己应该选择考研还是工作;许多上班族会因每天穿什么衣服而苦恼;许多网购者会在两件心仪的物品中难以抉择到底该购买哪件物品;甚至许多人会因为中午吃什么而烦恼。因此,推荐系统不仅可以帮助用户提取用户感兴趣的信息,也可帮助用户做出适合用户的抉择。

2系统设计

2.1系统需求描述

本系统主要为三餐选择而焦虑的用户进行菜谱的个性化推荐。根据用户使用系统功能的不同,需将用户分为普通用户和管理員。普通用户在客户端注册并标记喜好属性,并查看推荐的菜谱列表。管理员在后台(Web端)对菜谱进行增加、修改、删除、查询操作。菜谱个性化推荐系统的核心是推荐菜谱。推荐功能需求分析如下:首先,系统需要从美食网收集菜谱信息、菜谱属性、用户信息存储到数据库服务器。其次,服务端通过收集用户对菜谱的评分以及用户对菜谱的偏好属性来获取用户的行为偏好。最后,系统服务端应用推荐算法推荐出用户可能感兴趣的菜谱,反馈到客户端,用户从客户端查看推荐列表。如果用户对菜谱的评分次数越多,系统的推荐准确率就会越高。

2.2系统总体架构

本系统采用现今较为成熟的B/S三层架构模式,该三层架构分别是表示层、数据层、业务层。系统总体架构图如图1所示,表示层的菜谱管理是指管理员可操作的后台(Web端),表示层的菜谱推荐是指普通用户在手机端(APP)可看到的推荐列表;业务层的菜谱管理是对菜谱管理操作(增加、删除、修改、查询等操作)的具体业务处理,业务层的菜谱推荐是对推荐操作的具体业务处理;数据层的菜谱数据存储是存储实时更新的菜谱数据,实时更新的数据是通过表示层的菜谱管理提交菜谱信息到业务层的菜谱管理,经过业务层菜谱管理的处理,提交到数据层中数据库服务器的菜谱数据。

系统分为客户端和服务器端。服务端存储用户数据、菜谱数据、评分数据并用基于内容的推荐算法进行计算,客户端提交用户对菜谱的偏好属性数据、评分数据到服务器端并显示推荐列表。客户端由推荐菜谱列表、用户属性、菜谱属性、用户评分组成。当新用户登录本系统时,须在注册界面选择偏好菜品属性。当用户选定偏好属性之后,系统会把用户的注册信息提交到服务端,服务端依据这些信息会给该用户进行初步的推荐。服务器端由数据存储、Web service、推荐算法三部分组成。

3菜谱个性化推荐系统实现

3.1基于内容的个性化推荐算法介绍

基于内容的个性化推荐算法是通过分析物品的属性来判断此物品是否符合用户的喜好。例如,一部电影的属性可以有电影类型(喜剧、悲剧、爱情剧、恐怖片)、导演(张纪中、陈凯歌)、演员(章子怡、成龙)、地区(内地、台湾、香港)等属性。如果某用户对某部成龙拍的喜剧电影评分为100分(满分),就给此用户推荐成龙的电影、喜剧电影、成龙主演的喜剧电影,然后通过推荐算法计算出这些电影综合评分,从分数最高到最低列出一个推荐清单。基于内容的推荐算法思路可以分为三个步骤:第一步,每个物品都会被建立一个属于自己的属性表;第二步,每个用户都会被建立一个属于自己的喜好属性表;第三步,计算这两个表中的属性相似度,如果这个相似度值越大,就表示用户可能喜欢这个物品,反之则代表用户可能不喜欢此物品。计算相似度的方法有欧氏距离(Euclidean Distance)、曼哈顿距离(Manhattan Distance)、夹角余弦(cosine)。本文采用夹角余弦法计算相似度。

3.2基于内容的推荐算法在本系统中的应用

第一步,创建一个菜谱属性表,如表1所示。菜品属性有菜品类型、价格、菜系、口味、评分、烹饪工艺、介绍。

第二步,为目标用户创建一个用户属性表,用户喜好属性表如表2所示。用户喜好属性包括菜品类型、菜系、口味、评分烹饪工艺。用户评分表如表3所示。用户评分表表示某个评过分的菜品。第三步,计算用户的喜好程度。公式如式1所示,式中xi为所有标记有中餐的菜品;Avg是A用户所评菜谱评分的平均分;n为A用户评价过的菜品数量。

计算用户属性模型与菜谱属性模型的相似度,计算相似度通常用余弦相似计算方法。余弦相似度计算公式是计算目标用户“u”和给定的菜品“R”之间的距离,如果计算结果越大说明目标用户“u”越有可能喜欢菜品“R”,具体计算公式如式2所示。

4系统实现

推荐模块伪代码如下:

Input:喜好属性、菜品属性

Output:推荐结果

if(点评菜谱){

提交点评分数到数据库;

通过推荐算法计算,更新数据库内容;if(点评菜谱){重新输入用户喜好属性;重新输入菜品属性;}计算相似度.

5结束语

本文针对在饮食上有“选择困难症”的人群设计并开发了一款个性化推荐系统,利用用户提交到服务端的偏好属性、评分以及菜谱的属性,进而让服务端进行推荐计算,最后把推荐结果反馈给用户。实验结果表明,本系统可以较为准确地给用户推荐菜谱。本文后续的工作会从混合推荐算法的应用入手,改善本系统,提高系统的推荐准确率。endprint

android个性化推荐选择页面,基于Android的菜谱个性化推荐系统的设计与开发相关推荐

  1. android个人理财通项目_基于Android个人理财系统设计与实现.doc

    基于Android个人理财系统设计与实现 基于Android个人理财系统设计与实现 摘要:随着Android移动应用的飞速发展人们的日常生活越来越离不开移动应用设备.该系统是基于Android移动应用 ...

  2. python协同过滤电影推荐_基于协同过滤的电影推荐系统的设计与实现

    龙源期刊网 http://www.qikan.com.cn 基于协同过滤的电影推荐系统的设计与实现 作者:张玉叶

  3. 基于web的在线考试系统的设计与开发

    欢迎添加微信互相交流学习哦! 项目源码:https://gitee.com/oklongmm/biye2 在线考试系统的设计与开发 目录 TOC 1-3 第一章 绪论 1 1.1在线考试系统的研究背景 ...

  4. 基于实时深度学习的推荐系统架构设计和技术演进

    简介:整理自 5 月 29 日 阿里云开发者大会,秦江杰和刘童璇的分享,内容包括实时推荐系统的原理以及什么是实时推荐系统.整体系统的架构及如何在阿里云上面实现,以及关于深度学习的细节介绍 本文整理自 ...

  5. 毕业设计-基于Unity的餐厅经营游戏的设计与开发(附源码、开题报告、论文、答辩PPT、演示视频,带数据库)

    基于Unity的餐厅经营游戏的设计与开发 下载链接: 点我下载资源 一.登陆(Unity2020.3.3f1c1版本) 开始界面 进入游戏后,在开始界面右下角是一个登陆按钮,当玩家点击开始按钮后,会进 ...

  6. oracle 考勤记录表,基于C#+Oracle的考勤管理系统的设计与开发_.doc

    基于C#Oracle的考勤管理系统的设计与开发_ <基于C#+Oracle的考勤管理系统的设计与开发> 年 级: *********** 学 号: *********** 姓 名: *** ...

  7. 基于c#的游戏编程语言,基于C#语法的Unity3d技术,设计和开发一个格斗游戏实战...

    基于C#语法的Unity3d技术,设计和开发一个格斗游戏实战 [资料目录] 001游戏知识介绍.mp4 002架构设计.mp4 003UI设计原理.mp4 004战斗系统.mp4 005.热更新技术. ...

  8. 51单片机8255扩展c语言,参阅:基于51单片机的实时时钟的设计与开发8255扩展io口1V0.1...

    <基于51单片机的实时时钟的设计与开发(8255扩展io口) (1).doc>由会员分享,可免费在线阅读全文,更多与<基于51单片机的实时时钟的设计与开发(8255扩展io口) (1 ...

  9. python房屋租赁管理系统设计与实现报告_基于web的房屋出租管理系统的设计与开发.doc...

    基于web的房屋出租管理系统的设计与开发 JDFJKDHFKAHGJHLKFHJHAKHFLJKDHFKLJASHDFKJHAKLDFHDLSFHKLDSJ PAGE III DFSGSJDFKGHE ...

最新文章

  1. 去大厂面试,说了没高并发经验,面试官还是抓着这个问!
  2. java收银台程序gui_javaSE小项目---简易收银台
  3. MySQL 5.6 手册 第三章 目录
  4. 国际域名转出ICANN投诉
  5. html圆点虚线,html的a标签点击后出现虚线框问题
  6. php 显示对像编码,PHP面向对象之旅:类型提示
  7. CASS删除分幅后图框内部十字丝
  8. 企业级AD域管理部署实战 微软升级版MCSE MCSA必修课程 Windows Server 2016AD管理实战
  9. ADMM之1范数理解
  10. Docker上安装DM8数据库
  11. 如何解决back order中,confirmed qty can't be change的问题
  12. #小米游戏盒子 #小米笔记本驱动 @FDDLC
  13. 启动计算机时听到嘀嘀声,笔记本电脑开机嘀嘀滴声音如何解决
  14. 程序员如何才能写出一篇好的技术文章
  15. 用HTML做树形菜单,jquery实现树形菜单完整代码
  16. 汉森网络谈谈如何才能增加网站权重
  17. Windows命令-解压缩文件-tar
  18. Python下载微信公众号文章和图片保存至本地
  19. AWS上配置Cisco ASAv AnyConnect
  20. 中学生用计算机的警句,中学生常用名言警句

热门文章

  1. 明日之后服务器维护11月8号,明日之后11.8更新了什么_11月8日维护公告_软吧
  2. 唯品会Q3营收、利润环比下滑:高管接连变动,唯代购违规被下架
  3. 三种测试环境中的软件和硬件,硬件需求十分良心 泰坦陨落AN显卡测试
  4. 基于JAVAWEB大学生成长档案系统
  5. P2P网络节点间如何互访——详解STUN方式NAT穿透
  6. Kubernetes v1.23即将发布,有哪些重磅更新?
  7. 版权局:严厉打击网盘分享盗版影视作品等行为
  8. 中兴事件的启示——核心技术才是基业长青的基石
  9. 解决VirtualBox Ubantu网络断线
  10. 21 款 IDEA 神仙插件!