APP下载

基于Android的菜谱个性化推荐系统的设计与开发

2017-10-21汪丽娟钱育蓉

电脑知识与技术 2017年20期
关键词:推荐系统菜谱个性化

汪丽娟+钱育蓉

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

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

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

猜你喜欢

推荐系统菜谱个性化
宇宙菜谱失窃案
新闻的个性化写作
菜谱中的黑米粒儿
基于用户偏好的信任网络随机游走推荐模型
上汽大通:C2B个性化定制未来
满足群众的个性化需求