基于改进协同过滤算法的个性化美食推荐APP开发

合集下载

基于协同过滤混合算法的餐饮推荐系统设计与实现

基于协同过滤混合算法的餐饮推荐系统设计与实现

基于协同过滤混合算法的餐饮推荐系统设计与实现餐饮推荐系统是一种利用技术手段给用户提供个性化餐饮推荐的系统,它通过分析用户的历史喜好和行为,推荐符合用户口味的餐厅、菜品等信息。

当前,随着人工智能和大数据技术的不断发展,基于协同过滤混合算法的餐饮推荐系统逐渐成为了研究热点。

本文将探讨基于协同过滤混合算法的餐饮推荐系统的设计与实现。

一、基于协同过滤混合算法的餐饮推荐系统概述基于协同过滤混合算法的餐饮推荐系统,主要是通过挖掘用户和物品之间的潜在关联,来实现推荐的目的。

协同过滤算法主要分为基于用户的协同过滤和基于物品的协同过滤两种。

基于用户的协同过滤是通过对用户的历史行为进行相似度计算,从而找到和当前用户行为相似的其他用户,在根据这些相似用户对物品的评价,来推荐给当前用户未曾接触过的物品。

而基于物品的协同过滤则是通过计算物品之间的相似度,找到和用户感兴趣的物品相似的其他物品,从而进行推荐。

混合算法的思路则是将不同的推荐算法进行有机的结合,利用各自的优势来进行综合推荐。

二、基于协同过滤混合算法的餐饮推荐系统设计1. 数据采集与处理餐饮推荐系统的数据主要包括用户行为数据、餐厅数据、菜品数据等。

在设计过程中,首先需要对这些数据进行采集和处理。

用户行为数据包括用户对菜品和餐厅的评分、评论等信息,餐厅数据包括餐厅的位置、菜系、评分等信息,菜品数据包括菜品的口味、做法、材料等信息。

处理这些数据时,需要进行数据清洗、特征提取等操作,将数据转化为算法可以处理的格式。

2. 用户画像建模在设计推荐系统时,需要对用户进行画像建模,通过对用户的历史行为和偏好进行分析,建立用户的偏好模型。

这涉及到用户行为数据的分析和挖掘,可以利用基于用户的协同过滤算法来构建用户相似度矩阵,从而实现对用户的分群和画像建模。

3. 物品相似度计算除了对用户进行相似度计算,还需要对物品进行相似度计算。

这一步骤是为了通过用户对某个物品的评价,来找到和该物品相似的其他物品,从而进行推荐。

基于协同过滤算法的个性化推荐系统实现

基于协同过滤算法的个性化推荐系统实现

基于协同过滤算法的个性化推荐系统实现随着互联网的发展和无数的网站、应用不断涌现,人们的信息获取方式也发生了变化。

如何从众多的信息中选取出最符合用户需求的内容,成为了现代化社会中亟待解决的一个问题。

为此,人工智能技术中推荐系统的出现,为我们解决了这个问题,同时也为电商、社交、影视、音乐等行业提供了强有力的推荐功能。

推荐系统是一种利用数据分析、机器学习等技术,根据用户的历史记录和偏好等个性化信息,推荐最适合用户的内容或商品的一种智能化服务。

其中,协同过滤推荐算法是基于用户行为数据的一种常用推荐算法。

它将用户的历史行为和偏好信息与其他用户进行比较,利用共同的喜好或行为模式,向用户推荐相似的、符合个性化需求的内容。

下面我们就介绍下如何通过协同过滤算法实现个性化推荐系统。

一、数据收集在实现个性化推荐系统前,第一步需要做的是对系统的数据进行收集和处理。

数据的来源可以是用户浏览和搜索行为、用户评价和评论、用户关注和收藏、商品信息、社交媒体信息等。

例如,在购物网站中,商品浏览、收藏、购买行为将成为推荐系统的数据来源。

在社交媒体中,用户的点赞、评论、转发行为将成为推荐系统的数据来源。

数据的获取可以通过数据挖掘、爬虫等技术实现。

二、数据预处理数据预处理是数据挖掘最重要的步骤之一,因为原始数据可能有很多噪声和缺失值,需要进行处理和清洗。

例如,在建立电商推荐系统时,有些用户可能只是浏览了商品而未进行购买,因此这部分数据需要删除或忽略。

此外,在数据方面还需要进行特征提取、降维等处理,以便后续使用。

三、建立用户-商品矩阵在协同过滤推荐算法中,特别需要建立用户-商品矩阵,即将用户的行为和偏好转化为矩阵,将每个用户与所访问过的商品形成一个向量,矩阵中的每个元素代表了用户对于商品的评价、购买、浏览等行为。

建立好的用户-商品矩阵是后续计算的基础。

四、相似度计算在进行协同过滤推荐时,需要对相似度进行计算,以便确定将那些商品或内容推荐给用户。

基于协同过滤的个性化推荐算法改进与优化

基于协同过滤的个性化推荐算法改进与优化

基于协同过滤的个性化推荐算法改进与优化摘要:个性化推荐算法在当前的信息爆炸时代发挥着重要的作用。

协同过滤是一种常用的个性化推荐算法,它基于用户行为数据进行推荐。

然而,协同过滤算法也存在一些问题,例如冷启动问题、数据稀疏问题和灰羊问题等。

为了解决这些问题,本文对基于协同过滤的个性化推荐算法进行了改进与优化,并通过实验验证了改进算法的有效性。

关键词:个性化推荐;协同过滤;冷启动;数据稀疏;灰羊一、引言随着互联网和移动互联网的快速发展,用户在互联网上产生了大量行为数据。

这些行为数据包含了用户对商品、新闻、音乐等信息资源的偏好和兴趣。

如何利用这些行为数据来实现个性化推荐成为了当前研究和应用中一个重要而具有挑战性的问题。

协同过滤是一种常用且有效的个性化推荐算法。

它通过分析用户之间或物品之间的相似度来进行推荐。

然而,协同过滤算法也存在一些问题,限制了其在实际应用中的效果。

本文将重点研究协同过滤算法的改进与优化,以提高个性化推荐的准确性和效果。

二、协同过滤算法的原理与问题协同过滤算法是一种基于用户行为数据进行推荐的方法。

其基本原理是通过分析用户之间或物品之间的相似度来进行推荐。

具体而言,协同过滤算法分为两种类型:基于用户的协同过滤和基于物品的协同过滤。

然而,协同过滤算法也存在一些问题。

首先是冷启动问题,即在系统初始阶段或新用户加入时,由于缺乏足够的行为数据无法准确进行推荐。

其次是数据稀疏问题,即由于用户行为数据稀疏或物品之间缺乏交互导致相似度计算不准确。

最后是灰羊问题,即某些用户或物品由于个性化偏好不明显或特殊性导致无法被准确推荐。

三、改进与优化方法为了解决上述问题并提高个性化推荐效果,本文提出了以下改进与优化方法:1. 冷启动问题的解决针对冷启动问题,本文提出了基于内容的推荐方法。

该方法利用用户的基本信息和兴趣标签等内容信息来进行推荐。

通过对用户兴趣标签与物品标签的匹配程度进行计算,可以准确推荐给用户感兴趣的物品。

基于协同过滤的推荐系统设计与开发

基于协同过滤的推荐系统设计与开发

基于协同过滤的推荐系统设计与开发推荐系统是现代互联网产品中的重要组成部分,它通过分析用户的行为数据和兴趣偏好,向用户提供个性化的推荐内容,以提升用户体验和产品粘性。

基于协同过滤的推荐系统是推荐系统的一种常见实现方式之一,本文将介绍基于协同过滤的推荐系统的设计与开发过程。

首先,基于协同过滤的推荐系统需要收集和存储用户的行为数据,例如用户的浏览记录、购买记录、评分记录等。

这些数据可以通过日志记录、浏览器 cookie、数据库等方式进行收集和存储。

为了保护用户的隐私,推荐系统应该注重数据的安全性和合规性,并遵守相关法规和政策。

接下来,推荐系统需要根据用户的行为数据计算用户之间的相似度。

常见的计算相似度的方法包括基于用户的协同过滤和基于物品的协同过滤。

基于用户的协同过滤通过比较用户之间的行为历史,来计算他们之间的相似度。

基于物品的协同过滤则通过比较物品被用户喜欢的程度,来计算物品之间的相似度。

这些相似度计算方法可以使用机器学习算法、统计算法等进行实现。

在计算得到用户之间的相似度后,推荐系统可以根据相似用户的行为,向用户推荐他们感兴趣的物品。

比如,可以根据相似用户的购买记录,向用户推荐他们购买过的物品。

同时,推荐系统还可以根据用户的历史行为和兴趣偏好,对推荐结果进行个性化的排序和过滤,以提供更精准的推荐结果。

此外,为了提升推荐系统的效果和用户体验,可以结合其他算法和技术进行优化。

例如,可以使用深度学习算法进行特征提取和模式识别,以提升推荐系统的准确度和效果。

同时,推荐系统还可以引入用户反馈机制,例如用户评分、评论等,来改进推荐结果和推荐算法。

在推荐系统的开发过程中,需进行系统的架构设计和技术选型。

推荐系统通常需要与前端页面、后端服务器、数据库等进行交互,需要考虑系统的可扩展性、并发性和稳定性。

常见的开发技术包括Python、Java、C++等,数据库可以选择关系型数据库或者NoSQL数据库,存储和计算可以选择云计算平台或者分布式系统。

基于协同过滤的用户个性化推荐算法

基于协同过滤的用户个性化推荐算法

基于协同过滤的用户个性化推荐算法随着互联网技术的发展,越来越多的企业和网站对个性化推荐算法越来越重视,这也是一种不断进步的方式。

个性化推荐算法已经成为影响用户体验的一项重要功能,在电子商务、社交网络、搜索引擎等领域得到广泛应用。

基于协同过滤的用户个性化推荐算法是目前应用最广泛的推荐算法之一,其核心思想是利用相似用户的行为模式推荐给当前用户未浏览过的物品。

所谓协同过滤,就是一种基于人与人之间相似性的一种数据分析方法。

在推荐系统中,协同过滤算法是指从众多用户的行为数据中,找到和当前用户相似的用户,然后根据相似用户和当前用户的相似程度,推荐相似用户喜欢的物品给当前用户。

这种方法在Netflix、YouTube、淘宝等平台中得到广泛应用。

协同过滤算法的核心思想是寻找相似的用户,具体实现有两种方式:基于用户的协同过滤和基于物品的协同过滤。

基于用户的协同过滤通过挖掘用户历史记录,计算相似用户之间的距离,找到最相似的用户,从而将这些用户喜欢的物品推荐给当前用户。

基于物品的协同过滤则是通过挖掘物品的特征和用户对物品的评价,计算物品之间的相似度,找到与当前用户喜欢的物品相似的物品进行推荐。

对于上面所提到的两种协同过滤算法,根据数据的不同,应用场景也有所不同。

如果数据量比较大且稀疏,可以采用基于物品的协同过滤算法;如果数据量较小且密度较高,可以采用基于用户的协同过滤算法。

除了协同过滤算法,还有很多其他的个性化推荐算法,例如加权截尾奇异值分解、内容过滤算法、混合推荐算法等。

每种算法都有自身的优缺点,需要根据具体场景选择适合的算法进行推荐。

在实际应用中,用户个性化推荐算法需要考虑多个因素,如用户行为数据、用户历史记录、物品特征、用户兴趣爱好等。

因此,在实现个性化推荐时需要综合考虑,将多种算法相结合,从而提高推荐的准确率和精度。

总之,个性化推荐算法在电子商务、社交网络、搜索引擎等领域得到广泛应用,协同过滤算法是其中最常使用的一种方法。

基于协同过滤的美食推荐算法

基于协同过滤的美食推荐算法

fS o c i e ce& T n e c h n o l o g y , 。 n 3 0 0 2 2 2 ,C h i n a )
Ab s t r a c t :I n v i e w o f t h e p r o b l e m o f d a t a s p a r s e n e s s i n t h e t r a d i t i o n a l u s e r — b a s e d c o l l a b o r a t i v e i f l t e i r n g a l g o it r h m ,t o i mp r o v e t h e r e c o mme n d e d a c c u r a c y ,t h i s p a p e r p u t f o r w a r d a l l i mp r o v e d a l g o r i t h m a n d u s e d t h i s a l g o it r h m t o t h e i f e l d o f f o o d r e c o m— me n d a t i o n .F i st r l y。i n o r d e r t o r e d u c e t h e r e c o mme n d e d e r r o r c a u s e d b y d i f f e r e n t p e r s o n a l r  ̄i n g h a b i t s ,t h i s p a p e r u s e d t h e me a n e e n t r a l i z e d me t h o d t o d i s p o s e t h e s c o r e d a t a .S e c o n d l y .i t u s e d t h e i mp r o v e d n u l l v a l u e s i f l l me t h o d t o r e d u c e t h e s p a r s e o f t h e r a n k ma t r i x .F i n a l l y ,w h e n c a l c u l a t i n g t h e s i mi l a r i t y b e t w e e n u s e r s ,t h i s p a p e r c o n s i d e r e d t h e f a c t o r s o f t h e f o r g o t t e n f u n c t i o n a n d t r u s t r e l a t i o n s h i p b e t w e e n u s e r s .i n o r d e r t o i mp r o v e t h e a c c u r a c y o f r e c o mme n d a t i o n s y s t e m. T h e e x p e r i me n t s h o ws t h a t t h e p r o p o s e d a l g o r i t h m c a n g e t h i g h e r a c c u r a c y t h a n t h e t r a d i t i o n a l a l g o i r t h m, a n d i t i s c o n c l u d e d t h a t i n t h e p r o c e s s

协同过滤算法在个性化推荐系统优化

协同过滤算法在个性化推荐系统优化

协同过滤算法在个性化推荐系统优化协同过滤算法作为个性化推荐系统的核心技术之一,其在优化用户体验、提升商品或内容推荐准确度方面发挥着至关重要的作用。

该算法通过挖掘用户行为数据中的隐藏模式,发现用户与物品之间的相似性,从而实现个性化的推荐服务。

本文将从六个方面深入探讨协同过滤算法在个性化推荐系统优化中的应用与挑战。

一、协同过滤算法的基本原理与类型协同过滤算法主要分为两大类:用户-用户协同过滤和物品-物品协同过滤。

用户-用户协同过滤侧重于寻找具有相似兴趣偏好的用户群,基于这些用户的喜好来推荐给目标用户未曾接触过的物品。

而物品-物品协同过滤则是通过分析用户对物品的评分或偏好,找出相似的物品,进而根据用户的历史行为推荐相似的未接触物品。

这两种方法都是基于“物以类聚,人以群分”的原则,通过计算相似度来实现推荐。

二、数据预处理与稀疏性问题解决在实际应用中,用户行为数据往往呈现出高度稀疏的特性,即大多数用户只对少数物品有所评价或互动,这给协同过滤算法带来了挑战。

为解决这一问题,通常采取以下策略:首先,通过降维技术如主成分分析(PCA)减少特征空间维度;其次,引入基于矩阵分解的技术,如奇异值分解(SVD)或非负矩阵分解(NMF),以填充缺失值并提取隐含特征;最后,利用基于图的模型或集体推理方法,增强用户或物品间的连接,从而缓解稀疏性问题。

三、相似度计算方法的优化相似度计算是协同过滤算法的核心,直接影响推荐的准确性。

常用的相似度度量方法包括皮尔逊相关系数、余弦相似度、Jaccard相似度等。

为了提高推荐质量,研究者不断探索新的相似度计算方式,例如考虑时间衰减因素的动态相似度,或是结合内容信息的混合相似度计算。

这些方法旨在更精细地刻画用户或物品间的关联,提升推荐的相关性和新颖性。

四、冷启动问题与多样性增强冷启动问题是推荐系统面临的另一大难题,涉及新用户或新物品的推荐。

协同过滤算法对此的应对策略包括:利用用户的注册信息或初步行为快速构建用户画像;引入基于内容的推荐作为补充,利用物品的元数据信息进行初步推荐;实施探索性推荐策略,鼓励用户尝试未被广泛评价的新物品。

基于协同过滤算法的个性化推荐系统研究

基于协同过滤算法的个性化推荐系统研究

基于协同过滤算法的个性化推荐系统研究引言个性化推荐系统是商业应用中非常重要的一个领域,在互联网时代的到来后,不同领域为了更好地服务用户也开始引入推荐系统。

然而随着互联网使用逐渐普及,面临的一个问题就是如何更好地根据用户的兴趣和需求提供准确的推荐服务。

我们可以通过协同过滤算法实现更加智能化的推荐系统。

第一章协同过滤算法的原理协同过滤是一种基于用户行为的推荐算法,根据用户的偏好和行为习惯,向其推荐他可能感兴趣的物品或服务。

其核心思想是利用用户行为数据,挖掘出相似用户群体和物品属性,在相似用户之间进行物品推荐。

在协同过滤算法中,常用的有两种方法:基于用户的协同过滤和基于物品的协同过滤。

基于用户的协同过滤是通过找出与目标用户在行为上相似的其他用户,然后推荐这些用户感兴趣的物品。

基于物品的协同过滤则从推荐的物品入手,向用户推荐与其已经喜欢的物品相似的新物品。

协同过滤算法在推荐过程中,一般需要考虑以下三个步骤:相似度计算、邻居选择和推荐结果生成。

首先是相似度计算,它是协同过滤算法的核心部分,常见的相似度计算方法有余弦相似度、皮尔逊相关系数、欧几里得距离等。

通过计算不同用户之间或不同物品之间的相似度,可以找到相似的用户或物品。

其次是邻居选择,通过设定K值确定搜寻相似用户或物品的数目,然后按照相似度排序选择前K个相似的邻居。

最后是推荐结果生成,通过计算所有邻居的物品评分值,用平均、加权平均等方法实现对目标物品的推荐。

第二章推荐系统中的数据获取和预处理推荐系统的数据获取很关键,主要涉及到数据的来源和数据的组织。

数据来源可能是用户浏览,购物车商品选择,投票访问等,不同来源的数据对推荐结果影响较大,因此必须根据情况进行调整。

数据组织很关键,可能需要考虑数据的存储、格式、处理等多个因素,对于海量数据还需要考虑分布式存储和计算等问题。

推荐系统中的预处理主要包括数据清洗、数据编辑、数据转换等工作,它们能够有效地提高推荐系统的精度和性能。

  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。

基于改进协同过滤算法的个性化美食推荐APP开发作者:周显春邓雨吴世雄杨宇鑫王晗来源:《软件导刊》2019年第02期摘要:为了改善基于个人喜好或营养成分等单一特征的传统协同过滤算法推荐效果不好、缺乏实时性及使用不方便等问题,将中医体质、地方口味、营养成分等多种特征相结合,利用基于Spark Streaming的协同过滤算法,设计一款基于 Android 平台的智能饮食推荐APP。

实验结果表明,改进协同过滤算法能够大幅改善推荐效果,该APP不仅可为用户推荐符合身体健康需要,且合乎口味的饮食,而且能够较好地满足用户对实时性与便捷性的要求。

关键词:协同过滤算法;Spark Streaming;特征融合;智能推荐;饮食推荐DOI:10. 11907/rjdk. 182698中图分类号:TP319 文献标识码:A 文章编号:1672-7800(2019)002-0088-03Abstract:In order to improve the recommendation effect of traditional collaborative filtering algorithms based on individual preferences or nutritional components, lack of real-time performance and inconvenience in use, a collaborative filtering algorithm based on SparkStreaming platform is used to realize online real-time recommendation according to the characteristics of traditional diet,traditional Chinese medicine constitution and nutritional components. On this basis, a smart diet recommendation APP based on Android platform is designed. Practice has proved that the improved algorithm based on Android can greatly improve the recommendation efficiency and provide convenience. This APP can not only recommend a healthy and tasty diet for users, but also meet the real-time and convenient requirements of users.Key Words:collaborative filtering algorithm;Spark Streaming;feature fusion;Intelligent recommendation;food recommendation0 引言近年来,随着生活节奏的加快、生活压力的增大,生活中形成的一些不良陋习使很多人身体处于亚健康状态,尤其是不科学的饮食结构,严重威胁着人们身体健康。

因此,合理、科学且能充分满足身体营养需求的美食开始引起人们重视[1-2]。

然而,能够根据每人的个性化身体特征搭配食物的营养师或专家不仅数量有限,而且收费高、效率低。

随着人工智能、大数据及互联网技术的发展,基于智能算法的美食推荐系统逐渐受到人们欢迎[3]。

国内外学者对饮食推荐进行了大量研究。

Zhang等[4]利用信息技术与数学回归分析方法建立各种营养输入、输出反馈的非线性模型,研究不同营养成分对人体身体组织的影响;寇文心[5]根据营养成分及个人身体体质情况,采用加权随机抽样算法与多元线性回归模型设计营养配餐系统,并且建立反馈机制对配餐结构进行修正,使之更加科学;唐南沙[6-7]推出一款基于Android的智能点餐APP,能夠智能推荐多种品种的餐饮;邢磊[8]利用范例推理算法与基于Hadoop 分布式平台的用户协同过滤方法,通过Android平台为糖尿病患者自动推荐饮食。

然而,目前对于可将中医体质、营养成分等特征相结合的智能饮食推荐方法的研究仍然较少。

针对上述问题,本文设计一款基于Android 平台的智能饮食推荐APP,可根据中医体质、地方口味、营养成分等多种特征,推荐满足用户健康需求,且合乎其口味的饮食。

1 协同过滤算法改进协同过滤算法自提出以来,在个性化推荐领域得到了广泛应用。

其首先计算用户间知识水平与兴趣等偏好的相似性,然后为相似用户自动推荐相似信息[9]。

协同过滤主要分为基于用户与基于物品两种类型[10]。

协同过滤算法面临的两个最大问题是如何解决评分稀疏性及算法扩展性问题[11]。

在海量数据和集中式数据处理环境下,相关问题尤其突出。

针对上述问题,研究人员分别提出基于SVD[12-13]与Spark平台[11,14-15]的协同过滤改进算法。

Spark Streaming是构建在Spark平台上的一种流式实时计算框架,其编程方式和接口与Spark类似,但处理速度比Spark平台快,可以达到亚秒级,能够提高推荐实时性。

为了更好地满足协同过滤算法实时性、可扩展性,以及个性化推荐的需要,本文研究基于Spark Streaming平台的协同过滤方案,并利用MovieLens 公开数据集对方案推荐的准确性及时效性进行验证。

1.1 基于Spark Streaming平台的协同过滤算法实现基于用户的协同过滤(User-Based Collaborative Filtering,简称为User-Based CF),其伪代码分为4个步骤:数据处理、相似用户查找、实时推荐、结果显示。

(1)__init__(self) ;初始化基本参数和变量(2)SparkContext(); //读取物品相似矩阵(3)StreamingContex(); //初始化Streaming對象(4)fileStream(). map(). checkpoint(); //设置监听目录(5)reduceByKeyAndWindow(). reduceByKey(); //采用流式窗口技术处理数据(6)map(),reduceByKey(),groupByKey(),flatMap(); //计算矩阵,完成实时推荐(7)saveAsTextFiles (); //保存结果1.2 实验与结果分析1.2.1 实验平台搭建实验平台:在虚拟机上安装ubuntu server 17.10,以及Java 8、Hadoop 2.7、Spark2.3.2,搭建Spark计算集群平台,具体配置如表1所示[16]。

实验数据:采用 UCI 公开MovieLens数据集分别进行4组实验,100K、1M、10M和100MB各自对应10 万条、100 万条、1000 万条、1 亿条数据。

评分分为1~5等级,数值越大表示使用者对该物品评价越高。

1.2.2 评分预测准确性测试均方根误差(RMSE)、平均绝对误差(MAE)是衡量推荐系统推荐准确度最常用的指标,两者值越小表示推荐效果越好。

由表2数据可知,相比于传统协同过滤算法,基于Spark Streaming协同过滤算法的MAE、 RMSE值较小,说明Spark分布架构能够推高推荐精度。

1.2.3 算法执行时间测试比较传统协同过滤算法、基于Spark的协同过滤算法与基于Spark Steaming的协同过滤算法分别针对不同数据集进行对比实验,结果如图1所示。

由图1数据可知,随着处理数据量的增加,基于Spark Streaming平台协同过滤算法的时间效率优势越来越明显,为实时精准推荐提供了可能。

2 基于改进协同过滤算法的美食推荐APP开发2.1 关键技术(1)APP Inventor。

APP Inventor为APP Inventor Google Lab的一个子计划,是一款面向非专业人员的Android开发程序工具,让使用者开发程序类似玩乐高积木一样简单、有趣。

(2)Scrapy爬虫架构。

Scrapy是一款基于Python、能够高速从Web抓取结构化数据的框架,其最大优点是可根据现实场景要求对其基类进行灵活修改,使其更好地满足用户需要。

(3)Redis 数据库。

为提高数据爬取、存取速度,该APP采用分布式Redis数据库,能够实现高速异步存取,并提高推荐实时性。

该数据库内保存了用户体质、菜谱、地域口味等信息。

2.2 系统设计2.2.1 系统需求分析用户需求:每天根据不同用户体质及地方口味,结合营养价值推荐不仅满足用户健康需求,且合乎其口味的饮食。

2.2.2 系统整体架构本系统架构如图2所示,共分为3个环节:首先从Android客户端通过Http协议获取用户体质、口味等相关信息,通过Json反馈给Android客户端;其次,利用Scrapy爬虫框架进行网络相关食谱的信息获取;最后,采用基于Spark Streaming平台的协同过滤算法完成食谱与不同体质、口味的相关性分析并进行推荐。

2.2.3 Android端系统功能设计客户端界面主要完成用户登录、用户注册、菜谱推荐、用户信息管理等相关功能的可视化设计[17-18],具体功能设计如图3所示。

3 系统实现(1)首页。

双击APP,启动程序即可进入首页。

该页面有上一次推荐的菜谱图片及名称,以及美食推荐、美食搜索、个人中心与菜单设置板块,效果如图4所示。

(2)推荐菜单页。

推荐算法根据用户个人体质与口味基本信息推荐适合该用户的菜单,具体内容包括口味、食效、适合人群,如果用户感兴趣还可通过菜单进入详情页,效果如图5所示。

(3)菜单详情页。

该页面内容包括特征、主料、调料及详细推荐做法,效果如图6所示。

(4)中医体质检测页。

根据中医体质检测题目推测用户体质类型[19-20] ,题目选项分为:没有、很少、有时、经常、总分,对应分值比重分别为1~5,效果如图7所示。

4 结语本文利用基于Spark Streaming平台的协同过滤算法设计一款智能饮食推荐APP,可根据中医体质、地方口味、营养成分等多种特征,实时推荐满足用户身体健康需求,且合乎其口味的饮食。

然而,对各种特征的识别与提取需要花费大量成本,因此与人工智能技术相结合进行智能提取将是未来的研究方向。

参考文献:[1] 张秉辉,闫凤云,张玉芝. 关于青少年饮食行为与健康的思考[J]. 中国药物经济学,2014(12):71-72.[2] 彭亚红.; 中小学生营养知识及饮食健康行为的调查与分析[J].; 中国卫生标准管理,2015(19):6-7.[3] SCHAFER J B, KONSTAN J A, RIEDL J. E-Commerce recommendation applications[J]. Data Mining & Knowledge Discovery, 2001, 5:115-153.[4] ZHANG Z,VEDENOV D,WETZSTEIN M. Can the U.S. ethanol industry compete in the alternative fuels market[J]. Agricultural Economics,2007,37(1):105-112.[5] 寇文心. 智能营养配餐系统及其核心算法的研究[D]. 北京:北京工业大学,2015.[6] 陈雪丽. 基于Android的无线点餐系统的设计与实现[D]. 西安:西安电子科技大学,2015.[7] 唐南沙. 基于Android的智能点餐系统[D]. 长沙:湖南大学,2017.[8] 邢磊. 基于改进协同过滤的糖尿病饮食推荐系统[D]. 兰州:兰州大学,2016.[9] 黄晓斌. 网络信息过滤原理与应用[M]. 北京:北京图书馆出版社,2005.[10] DESHPANDE M,KARYPIS G. Item-based top-N recommendation algorithms[J]. ACM Transactions on Information Systems,2004,22(1):143-177.[11] 王源龍,孙卫真,向勇. 基于Spark的混合协同过滤算法改进与实现[J/OL]. 计算机应用研究,2019(3):1-2[2018-12-30]. http:///kcms/detail/51.1196.TP.20180209.1115.058.html.[12] 方耀宁,郭云飞,丁雪涛,等. 一种基于局部结构的改进奇异值分解推荐算法[J]. 电子与信息学报, 2013, 35(6):1284-1289.[13] 刘雯. 基于奇异值分解和K-means聚类的电子商务推荐算法研究[D]. 武汉:华中师范大学,2015.[14] 于娜娜,王中杰. 基于Spark的协同过滤算法的研究[J]. 系统仿真技术,2016,12(1):40-45.[15] 许智宏,蒋新宇,董永峰,等. 一种基于Spark的改进协同过滤算法研究[J]. 计算机应用与软件, 2017(5):247-254.[16] 周显春,肖衡. Spark框架下聚类模型在网络流量异常检测中的应用[J]. 网络安全技术与应用, 2017(5):62-63.[17] 李勇. 指尖上的美味——手机里不可或缺的美食APP推荐[J].; 电脑知识与技术:经验技巧,2017(5):5-15.[18] 徐怡雯,鲍懿喜. 基于用户社交特征的美食类APP用户体验设计研究[J]. 设计, 2017(1):20-21.[19] 梁永林,高彩霞,张云展,等. 应用中医体质量表对大学生三种体质相关性的研究[C]. 国际体质医学论坛暨中华中医药学会中医体质分会全国中医体质学术年会,2013.[20] 漆亚学,梁永林,高彩霞,等. 应用中医体质量表对大学生兼夹体质情况的研究[J]. 甘肃中医学院学报,2013,30(2):92-95.(责任编辑:黄健)。

相关文档
最新文档