关键词:智能菜谱;Android平台;推荐系统
中圖分类号:TP311文献标识码:A
1引言
2系统设计
2.1系统需求
2.2系统架构
本系统架构包括表示层(UI)、业务逻辑层(BLL)、数据访问层(DAL)。系统总体架构图如图1所示,表示层主要包括Web浏览器和Android系统;业务逻辑层的菜谱推荐是系统对用户进行智能推荐的具体操作;业务逻辑层的智能语音系统是指用户通过语音交流了解并学习菜谱。数据访问层是数据库的主要操控系统,数据库中的系统数据是实时更新的菜谱数据,通过表示层的菜谱管理提交菜谱信息到业务逻辑层的菜谱管理,菜谱管理会根据提交的需求进行相应的处理,同时会调用数据访问层中的数据库,来实现数据的增加、删除、修改、查询等操作,并把操作结果反馈到业务逻辑层[3]。
2.3智能语音系统模块
本文设计的便携式智能菜谱使用了智能语音技术[4]。智能语音系统先通过语音识别(ASR)形成文档,然后对其进行自然语音理解(NLU)形成Meannicontext,再利用对话管理(DM)产生Action,最后经过语音生成NLG将Action转化文字,并利用TTS技术与用户进行交流,其工作过程如图2所示。
2.4菜谱推荐系统模块
智能菜谱推荐系统模块使用了协同过滤推荐算法,此算法通过对用户搜索历史和学习菜谱的数据进行挖掘,并分析用户的口味,然后根据不同的偏好对用户进行群组划分并推荐其爱好的菜谱。该算法的原理如图3所示。该推荐算法分为基于用户的协同过滤和基于标记物的协同过滤,先计算出用户对物的喜爱度,然后生成个性化推荐[5]。
2.4.1基于用户的协同过滤
基于用户的协同过滤的核心思想是将与该用户最相似的用户喜欢的标记物推荐给该用户。用户u对标记物s的喜好度sim(u,s)采用公式(1)计算。其中,u是与该用户最相似的用户集合,score(ui,s)是用户ui对标记物s的喜好度,sim(u,ui)是用户ui与用户u的相似度。
sim(u,s)=ui,Usim(u,ui)×score(ui,s)(1)[4]
2.4.2基于标记物的协同过滤
基于标记物的协同过滤的核心是计算出每个标记物最相似的标记物列表,然后根据这个列表向用户推荐与其喜爱的标记物相似的标记物。用户u对标记物s的喜好度sim(u,s)采用公式(2)计算。其中,s是所有用户操作过的标记物的列表,score(u,si)是用户u对标记物si的喜好度,sim(si,s)是标记物si与s的相似度。
Sim(u,s)=[si,Sscore(u,si)×sim(si,s)](2)[4]
2.4.3利用矩阵相乘向用户推荐菜谱
在用户行为矩阵中,第i行第j列的元素代表了用户i对标记物j的偏好,将该矩阵记为,其中n是用户数,m是标记物数;将标记物之间的相似度矩阵记为,和都是稀疏矩阵,最后通过计算这两个矩阵的乘积,为用户推荐喜爱的菜谱,如公式(3)所示。
Rn×m=An×m*Sm×n(3)[4]
3功能实现
本文设计的智能菜谱推荐系统App主要功能包括启动功能、搜索功能、最近浏览功能、收藏功能以及分类查询功能。
3.1启动功能
3.2搜索功能
通过对数据库的分析得到全部菜谱信息之后,可以在本菜谱系统主界面最上方的搜索框中进行菜谱搜索的功能性操作,在本系统的搜索框中输入想要搜索的菜谱名称,点击搜索图片(放大镜)调用数据库里面的数据,若查询到数据库中存在该菜谱的数据信息,便会将该菜谱显示在当前界面,若在数据库中没有查询到关于此菜谱的信息,系统将直接给出没有当前菜谱的提示。
3.3最近浏览功能
用户在查看各种菜谱详情信息时,每查看一种菜谱时都会将所看到的菜谱信息保存到Cookie中,Cookie是一个用来存储客户端浏览信息数据的数据字段,Cookie是由服务器端生成的,所有的浏览过的菜谱信息将会自动保存到Cookie中,用户点击最近浏览菜谱界面时本系统会读取Cookie里面保存的数据,并将数据通过listview的形式进行显示,所以当用户想寻找以前浏览过的菜谱但是忘记收藏时,可以在该用户的个人主页界面找到最近浏览一栏,查看以前浏览过的菜谱信息。
3.4收藏功能
用户在查看当前菜谱信息时可以将该菜谱进行收藏的功能性操作。点击收藏按钮就可以将喜欢的菜谱进行收藏,已收藏的菜谱也可以取消收藏,已收藏的菜谱可以在收藏菜谱功能模块中查看,系统会通过mkdir命令将当前收藏的菜谱数据信息保存到数据库中,取消收藏是在数据库里面通过执行drop命令将当前的菜谱信息数据在数据库中进行删除的操作,因此,收藏功能中涉及mkdir(创建)命令、drop(删除)语句,系统是通过对菜谱信息的创建和删除来完成菜谱收藏功能的实现。收藏菜谱功能是通过从数据库中查询是否存在该菜谱数据信息,再将库中存在的数据以listview的形式显示在当前界面中,当数据库里面显示该菜谱信息数据为空时,收藏菜谱界面中也会显示为空,系统将会直接给出没有当前信息的提示。
3.5查看详情功能
4系统测试
4.1系统测试环境及运行环境
本系统测试客户端所使用的硬件设备为Redmi10pro,其基本配置信息为8G内存、MIUI12.5操作系统,服务端使用的硬件设备为笔记本电脑,其基本配置信息为8G内存、I7-8565UCPU、Windows10(64位)操作系统。本文设计的系统在Android平台上运行。
4.2测试流程
软件安装与使用前必须要进行联动调试,需要进行基本的检查操作,查看运行过程中的各项指标是否处于正常范围。针对手机端进行多种软件的使用测试,用于检测手机软件的使用是否出现报错的情况,目的是测试本文设计系统的可用性,如图4所示。
4.2.1App安装测试
4.2.2App升级测试
升级测试的主要内容包括在线升级、安装及使用。为证明App的所有权,验证签名是否一致。测试跨版本升级是否正常,能否跨多个版本更新。在应用软件中升级App,即在一个新系统内升级本软件,需要检查App的可用性。
4.2.3App功能测试
功能测试主要是功能逻辑测试:测试App在点开并使用浏览、搜索等功能时,会不会出现逻辑错误(如打开其他的网页模块等);在进行功能点测试(单元测试)时会不会出现搜索无法查询等问题。
4.2.4手机流量、电量、内存测试
5结束语
综上所述,便携式智能菜谱系统基本实现了传统菜谱App的主要功能,并向用戶展示了比较良好的功能界面。而且该系统利用大数据统计提供给用户不同地区、不同时节、不同年龄人群所喜爱的菜谱,并且会通过用户的数据为用户智能地推荐菜谱。此外该系统拥有语音功能,通过语音交流方便用户了解菜谱,简易方便,可操作性强,是一款安全实用的智能菜谱系统。
参考文献:
[1]戴静,马奇奇,王帅,等.基于Android的智能顺风订餐系统的设计与实现[J].科技风,2019(34):27.
[2]陈雅雪.基于家庭美食健康服务理念的智能调料机设计[J].科技与创新,2020(6):132-133.
[3]汪丽娟,钱育蓉.基于Android的菜谱个性化推荐系统的设计与开发[J].电脑知识与技术,2017,13(20):81-82,100.
[4]潘锋.智能语音控制系统设计与研究[J].电子设计工程,2019,27(22):6-9,14.
[5]刘靖凯.基于深度随机游走的协同过滤推荐算法[J].科学技术创新,2021(6):93-94.
收稿日期:2022-02-25
基金项目:安徽省大学生创新创业训练计划项目(项目编号:S202011305034)
作者简介:田猛(2001—),男,安徽淮北人,本科在读,研究方向为大数据技术;高淑贤(2000—),女,安徽宿州人,本科在读,研究方向为大数据技术;李祝君(2001—),女,安徽安庆人,本科在读,研究方向为大数据技术;李雨(1998—),男,安徽宿州人,本科在读,研究方向为大数据技术;王显龙(1991—),男,安徽亳州人,通信作者,硕士,研究方向为计算机视觉、大数据。