基于Android的美食推荐系统设计与实现

2017-11-09 09:44何溢漫智静辉陈垡锦南俊马腾西北民族大学数学与计算机科学学院
数码世界 2017年9期
关键词:羊肉矩阵美食

何溢漫 智静辉 陈垡锦 南俊 马腾 西北民族大学数学与计算机科学学院

基于Android的美食推荐系统设计与实现

何溢漫 智静辉 陈垡锦 南俊 马腾 西北民族大学数学与计算机科学学院

设计了一种基于Android的美食推荐系统,该系统以基于内容的推荐算法为核心,使用户可以在移动终端使用该系统获得一系列的美食推荐,既可以解决用户对美食选择困难的问题,又能为用户提供多样化的服务功能和信息交互功能。

推荐算法 MVC模式 Android系统

1 关键技术

本项目采用的关键技术是基于内容的推荐算法,该算法根据用户过去喜欢的产品,为用户推荐和他过去喜欢的产品相似的产品。基于内容的推荐算法主要分为三步:评分矩阵,计算推荐依据,产生推荐项目。

1.1 评分矩阵

假设有一个评分矩阵,其中包含2个用户和3种美食:

用户美食 羊肉泡馍 手抓羊肉 糖醋鲤鱼Alice 4 5 3 Bob 1 1 4

矩阵的含义是:用户Alice对羊肉泡馍、手抓羊肉、糖醋鲤鱼的评分分别为4、5、3分(满分5分)用户Bob对羊肉泡馍、手抓羊肉、糖醋鲤鱼的评分分别为1、1、4分(满分5分,空白的表格表示Bob尚未对该食品打分)经过分析,可以发现Alice相对来讲更喜欢羊肉泡馍和手抓羊肉,而且羊肉是这两种食品的共同食材,由此我们很自然的猜想到:Alice可能喜欢羊肉类的美食!利用这一个消息,就可以开始为Alice构建她的“User Profiles”了,方法如下:

<1>算出Alice所有打分的平均分,在这个例子中Alice的平均分 Avg=(4+5+3)/3=4。

<2>利用公式()/n算出Alice对羊肉的喜好程度。其中是所有涉及到羊肉的,而且是Alice评过分的食品,Avg就是(1)中算出来的平均分,n就是所有涉及到羊肉的,而且是Alice评过分的食品的数量。在这个例子中公式应该等于((4-4)+(5-4))/2=0.5,也就是说,Alice对羊肉的喜好程度可以用0.5这个数值来反应。

<3>类似于食品属性,用户属性也用到了一个1n维的矩阵,与食品属性的矩阵不同的是,用户属性中矩阵的元素不再是0,1,而是由<2>计算得来的对每种食材的喜好程度,所以最终Alice的矩阵可以表示为[0.5,x,y,z,…,xx],假设矩阵的第0个元素代表羊肉,则这里的第0个元素是0.5,表示Alice对羊肉的喜好程度是0.5。同理,可以算出Alice对其它食材的喜好程度。

1.2 计算推荐依据

利用余弦相似度的公式来计算给定的用户“U”和给定的食品“I”之间的距离。余弦相似度的值越大说明U越有可能喜欢I。余弦相似度的具体计算方法如下:

在美食推荐系统中:

Ua表示用户U对食品a的喜好值;

Ia表示美食是否包含食品a。

1.3 产生推荐项目

按照上述计算推荐依据的方法来遍历整个美食库,计算Alice与每个食品的相似度,选择相似度最高的前k个食品,推荐给Alice。

2 美食推荐系统的设计与实现

本项目主要由以下几个模块构成:

(1)管理员管理模块:

管理员登录之后,可以进行个人信息管理和美食管理,如美食更新。(如图1)

图1 管理员管理流图

(2)用户登录与注册模块:

所有用户可以根据美食关键字浏览查询本系统的所有内容,而只有注册过的用户才可以进行美食关注和美食评分。

(3)用户关注美食模块:

用户登录后可以按照菜系、功效、味道或者食材搜索美食,用户在浏览自己感兴趣的美食后,可以点击美食的链接查看详细信息。在美食的显示页面上会有添加关注用户点击关注链接。

(4)美食评分模块:

用户品尝美食后,系统会显示用户评分界面,评分包括非常满意、还行、一般般、没想象中好、不满意五个等级,分别对应5、4、3、2、1分。用户提交评分后,系统会更新美食信息中相应的评分字段。

(5)相似美食模块:

基于内容的算法实现主要分为三步:第一步主要用变量的定义、信息的初始化和用户评分矩阵的构建。构造用户评分矩阵后执行基于内容的算法的第二步,即计算用户的相似美食集。

(6)推荐显示模块:

用户选择本推荐项目后,系统会执行基于内容的算法的第三步,依据相似美食集使用平均加权策略产生推荐的美食。(2、3、4、5、6如图2)

图2 用户操作流图

3 结束语

本文设计的是一种基于Andriod的美食推荐系统,以基于内容的推荐算法为核心提供美食信息。基于内容的推荐算法基本思想是建立在产品的信息上作出推荐的,而不需要依据用户对项目的评价意见,更多地需要用机器学习的方法从关于内容的特征描述的事例中得到用户的兴趣资料,从而智能的提供美食推荐。同时利用Android开发技术将算法实现,最终在移动终端供用户使用。该系统以用户提供的关键字做出智能的美食推荐,并提供美食的做法功效、距离美食最近的地理位置和其他用户对美食的评价,以方便用户做出选择。

[1]刘建国,周涛,汪秉宏.个性化推荐系统的研究与发展[J].自然科学进展,2009.19(1);1-15

猜你喜欢
羊肉矩阵美食
“扒羊肉”
开春食羊肉,滋补健体
冬补一宝 羊肉
多项式理论在矩阵求逆中的应用
美食
羊肉宴引发的惨败
美食都被玩坏了
矩阵
矩阵
矩阵