基于协同过滤的个性化零食推荐微信公众平台设计与实现.docx

上传人:李司机 文档编号:6712875 上传时间:2024-01-08 格式:DOCX 页数:50 大小:393.47KB
返回 下载 相关 举报
基于协同过滤的个性化零食推荐微信公众平台设计与实现.docx_第1页
第1页 / 共50页
基于协同过滤的个性化零食推荐微信公众平台设计与实现.docx_第2页
第2页 / 共50页
基于协同过滤的个性化零食推荐微信公众平台设计与实现.docx_第3页
第3页 / 共50页
基于协同过滤的个性化零食推荐微信公众平台设计与实现.docx_第4页
第4页 / 共50页
基于协同过滤的个性化零食推荐微信公众平台设计与实现.docx_第5页
第5页 / 共50页
点击查看更多>>
资源描述

《基于协同过滤的个性化零食推荐微信公众平台设计与实现.docx》由会员分享,可在线阅读,更多相关《基于协同过滤的个性化零食推荐微信公众平台设计与实现.docx(50页珍藏版)》请在三一办公上搜索。

1、基于协同过滤的个性化零食推荐微信公众平台设计与实现摘要随着社会经济的不断发展和居民消费水平的日益提高,消费者对于零食的需求数量越来越大。但市面上零食的种类很多,用户想要找到一款适合自己口味的零食,需要花费大量的时间和精力。如何快速高效地帮助用户找到自己喜欢的零食是一个问题。由此提出了个性化零食推荐的课题。本课题是设计实现一个基于微信公众平台的零食信息发布系统,每个用户都能将自己喜欢的零食信息发布到系统供其他用户参考,系统会根据用户对零食信息的一些反馈行为,采用协同过滤的算法,为用户个性化推荐零食信息。系统最终经过测试达到了需求标准,并成功的部署在微信公众平台和云服务器上。关键词:微信公众平台;

2、零食推荐;个性化推荐;协同过滤DesignandimplementationofwechatPublicplatformforpersonalizedsnackrecommendationbased on collaborativefilteringABSTRACTWiththecontinuousdevelopmentofsocialeconomyandtheincreasingconsumptionlevelofresidents,thedemandforsnacksisgrowing.Buttherearemanykindsofsnacksonthemarket.lttakesaloto

3、ftimeandenergyforuserstofindasnackthatsuitstheirtaste.Howtohelpusersfindtheirfavoritesnacksquicklyandefficientlyisaproblem.Therefore,thetopicofpersonalizedsnackrecommendationisputforwardThistopicistodesignandimplementasnackinformationpublishingsystembasedonwechatpublicplatform.Eachusercanpublishthei

4、rfavoritesnackinformationtothesystemforotherusers,reference.Accordingtosomefeedbackbehaviorsofusers,thesystemwilladoptcollaborativefilteringalgorithmtopersonalizedrecommendsnackinformationforusers.Finally,thesystemhasbeentestedtomeettherequirementsandsuccessfullydeployedonwechatpublicplatformandclou

5、dserver.Keywords:Wechatpublicplatform;Snackrecommendation;Personalizedrecommendation;ColIaborativefiltering1 .绪论11.1 背景目的及意义11.2 相关工作11.3 本文工作21.4 论文的框架结构错误!未定义书签。2 .需求分析32.1 功能性需求分析32.2 非功能性需求分析42.3 相关技术介绍错误!未定义书签。2.3.1 协同过滤算法42.3.2 微信公众平台52.3.3 Vuejs52.3.4 Django52.4 本章小结53 .推荐算法设计与实现63.1 基于内容的推荐算

6、法错误!未定义书签。3.2 协同过滤算法63.2.1 基于物品的协同过滤算法63.2.2 基于用户的协同过滤算法73.3 系统推荐算法实现83.4 本章小结114 .系统分析与设计121.1.1 总体架构121.1.2 部署架构124.2 功能设计124.2.1 零食推荐模块设计134.2.2 零食搜索模块设计134.2.3 零食管理模块144.2.4 用户中心模块设计144.2.5 后台管理模块设计144.3 数据库设计154.3.1 E-R模型设计154.3.2 表结构设计164.4 本章小结20系统实现与测试215.1 系统实现环境要求215.1.1 开发环境215.1.2 运行环境21

7、5.2 系统实现215.2.1 微信授权模块215.2.2 零食推荐模块235.2.3 零食搜索模块255.2.4 零食管理模块275.2.5 用户中心模块295.2.6 后台管理模块305.3 系统测试315.3.1 测试目的5.3.2 测试用例5.4本章小结错误!未定义书签。错误!未定义书签。33总结与展望346.2 展望错误!未定义书签。参考文献35致谢36LI背景目的及意义近年来,中国的零食行业发展速度较快。根据官方数据统计,中国的零食行业总产值从2006年的4240.36亿元到2016年的22156.4亿元,涨幅高达422.51%。有相关部门预测,2020年的零食产业规模可能会达到3

8、万亿元。但目前市面上零食的种类很多,消费者想要找到一款满足自己口味的零食需要花费大量的时间和精力。个性化推荐技术的出现解决了这个问题。个性化推荐技术可以从用户的浏览内容、频率和时间等多个方面因素分析每个用户的具体情况,并为用户提供他们可能感兴趣的内容。本课题基于微信公众平台,开发实现了一个零食发布系统,每个用户都能将零食信息上传到系统供其他用户参考,系统根据用户对零食信息的浏览、收藏、评论等反馈行为,通过个性化推荐算法,为用户推荐可能喜欢的零食信息。本课题将个性化推荐技术应用在零食信息系统中,可以帮助消费者更高效地找到他们可能喜欢的零食,从而增强用户体验。1. 2相关工作推荐系统早在90年代就

9、开始被研究,它解决了用户难以在海量的信息中高效地找到所需信息的问题。目前常见的推荐系统有三种,分别是协同过滤推荐、基于内容的推荐和混合推荐。推荐系统在国外,从诞生之时就受到广泛关注,也因此得到了很多成功的研究成果。在1992年,推荐系统第一次被应用在系统中,Goldberg和他的团队将协同过滤算法应用在了邮件管理系统上,从而减轻了工作人员的负担,提高了邮件管理的效率。在1994年,GroupLens提出了基于用户的协同过滤算法,并将该算法其应用在新闻推荐上。该系统会收集每个用户对新闻的评分,并将这些评分储备下来供后期推荐使用。后来,亚马逊第一次将推荐系统成功的应用在电商系统中。当消费者在亚马逊

10、书城下单时,会提示出购买本书籍的用户还购买了其他书籍等信息。国内的推荐系统研究起步较晚,但也有不少研究成果。在2009年7月,北京成立了一家专门研究个性化推荐技术和推荐引擎的公司。在2011年的8月,载言网络科技首次提出了在传统的推荐引擎上添加用户的社交信息和隐形反馈。2011年的9月,百度首页增加了智能推荐功能,可以根据用户行为为用户推荐可能喜欢的网站。个性化推荐的发展过程中面临了各种各样的问题,比如为了解决算法的冷启动和数据稀疏问题,研究者们在原有算法的基础上加入了一些其他参数,对算法进行了改进。有研究者在原有的PearSOn相关系数方法上增加惩罚系数机制,改进了PearSon相关系数法,

11、并显著提高了推荐准确性。还有研究者针对评分矩阵稀疏这一问题,提出了根据物品属性和用户特征填充评分矩阵,从而解决了评分矩阵稀疏的问题。个性化推荐系统发展至今已经相对成熟,但个性化推荐系统存在的问题正在被不断研究。目前研究的主流方向有两种,一是在现有的推荐算法基础上优化和改进个性化推荐算法,从而提高个性化推荐算法的准确率。二是如何将个性化推荐算法应用在业务系统中,从而增强用户体验。L3本文工作本课题将协同过滤技术应用在零食推荐上,基于微信公众平台设计开发一个个性化零食推荐系统。该系统可供用户发布自己喜欢的零食介绍信息,后台再运用个性化推荐技术为用户推荐可能喜欢的零食信息,由此提升用户对平台的体验度

12、。本文的工作主要包括以下两个方面:应用个性化推荐技术。本系统将个性化推荐技术应用在系统上,根据用户对零食信息的浏览、评论、点赞、收藏等反馈信息和反馈对应的权重,计算出用户对零食的评分,再利用协同过滤算法为用户推荐可能喜欢的零食。搭建个性化零食推荐系统,并运行在微信公众平台。系统实现了零食推荐、零食管理、零食搜索、用户中心、后台管理等模块。系统采用了前后端分离的开发方式,方便维护和功能扩展。同时系统部署在服务器上,采用了CDN加速技术,有效提高了静态资源的加载速度,优化用户体验。第2章需求分析2. 1功能性需求分析系统主要用例包括微信授权登录、零食信息推荐、零食信息管理、零食信息搜索、个人中心管

13、理、后台信息管理。系统用例图如图2-1所示。图2-1系统用例图(1)微信授权登录用户应该可以通过点击微信公众号底部的菜单进行微信自动授权进入到系统中,而不是输入账号密码登录,从而免去繁琐的注册登录步骤。(2)零食信息推荐作为一款零食推荐系统,零食的推荐自然必不可少。系统应该能够利用个性化推荐算法,在首页为不同的用户推荐不同的零食信息。同时系统需要接受用户对零食信息的反馈,所以应该提供零食浏览、零食点赞、零食收藏、零食评论等反馈功能。(3)零食信息管理本系统的零食数据库需要不断的完善扩充,系统应提供给用户可以上传零食信息的入口。用户应该可以在系统上传零食介绍、零食图片等信息。(4)零食信息搜索为

14、了使得用户可以方便地查询到相关的零食信息,系统应提供零食搜索功能,应该可以根据零食关键词查询到相关的零食信息。(5)个人中心管理用户应该可以看到自己的昵称、头像等个人信息,也应该能对其他用户进行关注操作。(6)后台信息管理管理员应该能对系统数据信息进行管理,包括零食信息、用户信息、评论信息、推荐信息、轮播图信息、搜索历史信息等。3. 2非功能性需求分析本系统有以下五个方面的非功能性需求:(1)性能需求在90%的情况下,一般时间段响应时间不超过2秒,高峰时间段不超过5秒。第一次进入系统时间不超过5秒。(2)安全需求系统要经过授权认证登录后才能进入,在未登录时严禁使用系统的各个功能。用户在系统内只

15、能访问操作权限内的数据。(3)可维护性需求系统要保证模块化开发,各个模块独立,要易于扩展,编写代码整洁,变量或函数命名规范,关键地方要加注释。(4)可用性需求在90%的系统故障中,系统最多只需要60秒重启,若系统出现严重故障要在24小时内恢复正常。(5)易用性需求要求界面美观,操作简单,用户能方便地使用系统的各个功能,无复杂操作。2.3技术需求分析2.3.1协同过滤算法协同过滤算法主要分为两个类型,分别是基于物品的协同过滤算法即ItemCF,和基于用户的协同过滤即USCrCF。ItemCF算法较为简单,自诞生至今一直被广泛的使用。UserCF算法的推荐效果更显著,能帮助用户发现以前未涉及到的领

16、域,有着悠久的历史10。协同过滤算法认为兴趣和爱好相似的两个用户可能会喜欢相似的物品,或者两个用户可能会对相似的物品表现出相似的兴趣爱好7。其基本思想是根据相似用户的评分或者用户对相似项目的评分进行个性化推荐。2. 3.2微信公众平台微信公众平台是微信官方推出的一款用户服务平台,主要面向个人、组织和企业回。微信公众平台又叫做公众号,它支持多种形式的媒体资源信息1。微信公众平台可以进行二次开发,开发者可以将前端页面链接到公众号底部菜单,用户通过点击菜单进入到应用页面。微信公众平台官方还提供了第三方的api,通过对接开发服务器,可以实现开发服务器与微信公众平台的交互,从而使用微信公众平台丰富的功能

17、。3. 3.3VuejsVue是一个目前比较流行的前端框架。Vue的最大特点在于数据驱动视图,开发者只需要通过操作视图绑定的数据,视图就能自动刷新,而不必再获取视图的dom元素更新数据,极大地方便了应用开发。并且VUe有着搭建速度快、学习成本低、使用简单等特点,适合用于应用开发。4. 3.4DjangoDjango是一个web后台开发框架,基于Python开发。使用Django框架可以帮助开发者快速构建web系统框架3。Django还有强大的后台管理功能,只需要通过一些参数化配置,就能实现一个简单的后台管理系统。Django在网上也有大量的学习资源,非常适合开发。5. 4本章小结本章主要对系统

18、进行了功能性需求分析、非功能性需求分析,并对系统开发中可能会用到的技术进行了技术需求分析。第3章推荐算法设计与实现6. 1协同过滤算法协同过滤算法是根据用户的行为信息进行推荐的。协同过滤算法认为,两个用户或者物品没有直接的联系,内容属性完全不一样,但只要发生过相同的行为,就具有相似性。例如一个用户是年轻女性,而另一个用户是一名老年男性,两个用户信息有着较大差异,但由于他们浏览过相同的东西,就认为他们具有较高的相似度。协同过滤算法分为基于物品的协同过滤算法(ItemCF)和基于用户的协同过滤算法(UserCF)07. Ll基于物品的协同过滤算法基于物品的协同过滤算法是为用户推荐他们之间喜欢相似的

19、商品。基于物品的协同过滤算法根据用户对物品的行为信息来计算两个物品是否相似,其核心是目标物品的相似物品,将相似物品推荐给喜欢目标物品的用户。基于物品的系统过滤最大特点是推荐结果可解释。由图3-2可以看出,用户A、用户C、用户D都喜欢物品a,并且他们又都喜欢物品d,可以认为物品a和物品d相似,所以就能将物品d推荐给同样喜欢物品a的用户B。给用户B推荐物品d的原因可以解释为喜欢物品a的用户还喜欢物品d。图3-1基于物品的协同过滤基于物品的协同过滤算法是根据用户-项目评分矩阵,用相似度计算公式计算出物品的相似性,找到与目标物品相似的k个物品,然后根据用户对物品的历史行为和物品相似度,然后计算用户对物

20、品的兴趣度,再从近邻物品中选取N个用户相似度最高的物品,并形成推荐结果。7.1. 2基于用户的协同过滤算法基于用户的协同过滤算法的基本原理是先将用户的行为信息转换为对物品的评价,再将根据对物品的评价计算出用户的相似性,再把相似用户喜欢的物品推荐给目标用户。由图3-3可以看出,用户A和用户C共同喜欢物品a和物品c,可以认为用户A和用户C相似,用户C即为用户A的临近邻居,所以可以将用户C喜欢的物品d推荐给用户A。图3-2基于用户的协同过滤在基于用户的协同过滤中,计算用户的相似度非常关键,相似度的计算对推荐结果的准确度有着重要的影响10。常见的计算公式有欧儿里得距离公式、余弦相似度公式、Person

21、相关系数等。(1)欧几里得距离公式欧几里得距离公式用于计算空间内两点之间的实际距离。将用户Ul(rll,r12,.rlm)和用户u2(r2l,r22,.r2m)看作空间内的两个点,则他们之间的相似度可以通过欧几里得距离公式来计算,两点之间的距离越短越相似。公式如下:sim(ul,u2)=d(u1,u2)=(rll-r21)2+(r21-r22)2+(r1m-r2m)2(2)余弦相似度公式余弦相似度的计算方法是获取空间内两个向量的坐标,再利用空间余弦距离公式求得两个向量之间的距离,依此来衡量两个用户直接的相似度。假设控件内有两个向量点X和Y分别代表两个用户,那么利用公式计算两个用户的相似度如下:

22、XySim(X,s=而而(3)Person相关系数皮尔逊相关系的优点是可以根据结果判断人们之间的兴趣爱好的相似程度,他的缺点是在数据不是很规范的情况下往往会把结果趋向于好的结果。相似度的计算公式如下,其中X和Y分别代表两个变量。P(x-X)(r-F)W.J.一,.3.2零食推荐算法实现本文采用的是基于用户的协同过滤算法。零食推荐系统的构建主要经过四个步骤:计算零食评分,建立用户模型,寻找最近邻居,产生推荐零食。3.2.1计算零食评分计算零食评分是将用户的反馈行为根据权重转换成用户对零食的评分,影响推荐效果的最主要的因素就是用户对物品的评分。零食推荐系统的反馈行为主要包括浏览反馈、评论反馈、喜欢

23、反馈、收藏反馈,定义对应的权值分别是1、2、3、4。规定零食评分的满分值是10,则将用户的行为转换为评分值就是1到10,若用户对某个零食没有反馈记录就为0分,根据此规则计算出用户对每个零食的评分值。最后将生成的零食评分数据保存在数据表中,如图3-3所示。其中USerid、snack.idSCOre字段对应的分别是用户id、零食id和零食评分。user_idsnack_idscore2538415161101201211281133113611 3712 18221图3-3零食评分数据3.2.2建立用户模型建立用户模型需要生成一个用户-零食-评分矩阵Ro用户零食评分矩阵如图3-4所示。其中USe

24、rid是用户id,snackid是零食id,userid与snackid相交的值是对零食的评分。snack_id12345678373839404143.4546user-id195811100028J00031000001212I18101341031010141000010i.015000000000163100017OoO0181010190211410001图3-4用户零食评分矩阵3.2.3寻找最近邻居首先使用余弦相似度公式,计算出当前用户同其他用户直接的相似性,得到与目标用户最相似的用户集合。余弦相似度计算核心代码如图3-5所示。其中传入IiStl和list2的是两个用户对所有零食的

25、评分列表,返回的是两个用户之间的相似度。#利用余弦相似度计要用户之间的相以度defcalCosineSimilarity(list1,list2):res=0denominator1=0由硼弟IqaI2)inzip(list1jlist2):res+=(val1*val2)denominator1+=val1*2denominator2+=val2*2returnres/(math.sqrt(deominator1*denominator2)图3-5余弦相似度计算核心代码再通过两两计算用户相似度,得到用户相似度列表,根据相似度从高到低排序,选取K个最相似用户,即临近邻居用户。其中侬ingVak

26、es是零食评分矩阵,IISerSimMatriX是用户相似度列表,UserMostSimDict是最相似的K个用户结果字典。计算最相似K个用户的代码如图3-6所示。foriin.range(len(rtingValues)-J):rUMSITnAbf?或()*c到C(嚷和g:i?,ity(ratingvaluesi,ralingValues|jDUserSimsatrixO.i=userSimMatrixi,jprint(,IiserSimMatrixan,UserSimMatrix)UserllostSimDict=dict()foriinrange(len(ratingvalues):us

27、erMostSimoicti=sorted(enumerate(list(userSiMatrix),key=lambdax:*1.reverse=True)jk图3-6计算最相似K个用户代码3.2.4产生推荐零食根据上一步得到的K个临近邻居用户相似度集合,采用加权平均的方法,计算出零食的推荐评分列表,再对推荐评分值按从高到低排序,生成最终的推荐零食并插入到推荐数据表。产生推荐零食代码如图3-7所示。#行本子给itingvelue;#Dix.UserRecommendVaIuesZnp.zeros(leBdtype=np.float32)forIinrange(len(ratinValues)

28、:forjinrange(leri(ratingvaluesi):ifratingValuesi11jl=6;val=0for(user,sim)inserMostsimDicti:val+=(ratingValuesuserjsim)userRecommendValuesi,j=valprint(,userRecommendValues=nuserRecommendValues)UserRecommendDict=dictQforiinrange(len(ratingValues):userRecommendDictf-sorted(enumerate(list(userRecommendV

29、aluesi),key=lambdax;x|l,revese=True)prin(UscrRccomniendDici=XnluserRccommcndDici)图3-7产生推荐零食代码3. 3本章小结本章介绍了IIemCF和USerCF的基本原理,并基于此系统设计实现了USerCF算法并应用在该系统的零食推荐中。第4章系统分析与设计4. 1架构设计4.1.1总体架构本系统采用的是B/S架构,其中的B是指Browser即微信公众平台,S是指Server服务器即部署服务器。B/S架构的系统,用户端不需要安装专门的软件,不仅方便了用户,还减少了系统维护的工作量。B/S架构的系统还具有开发管理方便,

30、运行速度快,显示效果良好等特点。4.1.2部署架构本系统的部署采用了UWSGI、NginxCDN等技术。UWSGI是一个用于部署Web程序的服务器软件,它集成了WSGI、UWSGI、HTTP等多个互联网数据传输协议,一般用于部署Python开发的Web应用程序。Nginx是一款具有高性能的HTTP和反向代理的web服务器,同时也提供了IMAP/POP3/SMTP服务,它具有占用内存小、并发能力强等特点,常用与Web应用部署。CDN又叫做内容分发网络,它通过全国各个地区的服务器节点缓存web服务器上的静态资源,通过CDN控制中心,在用户请求静态资源时,就近选择节点返回资源内容,从而使得静态资源的

31、加载速度更快,优化了用户体验。4.2功能设计系统的功能模块图如图4T所示。图4T系统功能模块层次直方图(1)零食推荐模块零食推荐模块包括零食个性化推荐,热门推荐,最新推荐,关注用户推荐。(2)零食搜索模块零食搜索模块包括字符串匹配搜索,历史搜索,热门搜索。(3)零食管理模块零食管理模块包括零食发布,零食编辑,零食点赞收藏,零食评论。(4)用户中心模块用户中心模块包括粉丝与关注管理,个人资料管理。(5)后台管理模块后台管理模块包括零食管理,用户管理,评论管理,推荐管理,轮播图管理,搜索历史管理。4.2.1零食推荐模块设计本模块功能为零食推荐,按照来源可分为个性化零食推荐、热门零食推荐、最新零食推

32、荐和关注用户零食推荐。个性化零食推荐是由基于用户的协同过滤算法计算出来的零食信息推荐,推荐信息与用户的个人行为记录有关,按照推荐度排列展示。热门零食推荐是根据零食信息的浏览人数、点赞人数、评论人数和收藏人数进行加权平均计算,按计算出的零食热度从高到低排列展示。最新零食推荐是根据用户发布零食信息的时间来展示零食推荐,优先展示发布时间较新的零食。关注用户零食推荐是查询用户关注的其他用户发布的零食信息,并按时间顺序倒排展示,推荐给用户。在系统首页分栏展示这四种推荐的零食图片、介绍信息、热度信息等,当用户点击任意零食后进入零食的详情信息界面。详情信息界面包括零食的详情介绍图、推荐信息、热度信息(浏览、

33、评论、点赞、收藏次数)、其他用户的评论信息等。4.2.2零食搜索模块设计本模块功能为零食搜索,包括字符匹配搜索,历史搜索和热门搜索。字符匹配搜索是通过用户在输入框输入零食介绍信息的关键词、标签或发布用户,系统查询出与输入的字符串相匹配的零食列表返回给用户。历史搜索是记录用户每次的搜索关键词,并展示在搜索输入框下方,用户可点击历史关键词再次搜索。热门搜索是根据每个用户的搜索关键词,后台统计计算每个关键词搜索的频次,取搜索频次最多的前20个关键词作为热门搜索关键词,并展示在搜索输入框下方,用户可点击热门关键词搜索零食。4.2.3零食管理模块设计本模块功能为零食管理,包括零食发布,零食编辑,零食点赞

34、收藏,零食评论。零食发布是用户在进入发布页面后,可编写零食介绍信息,上传零食图片,添加零食标签,然后发布到系统中,就能被系统推荐给其他用户浏览。零食编辑是用户可对之前发布过的零食修改介绍信息、修改上传图片、修改标签,并再次提交。也可对之前发布过的零食进行删除,被删除的零食将不会再在系统内展示。零食点赞收藏是用户可以对自己喜欢的零食点赞和收藏,被点赞的零食将会增加热度,提高推荐权重。被收藏的零食会在我的收藏栏目下展示,方便用户下次浏览,被收藏的零食也会提升热度。零食评论是用户可在零食详情页进行评论发布,与其他用户一起交流。4.2.4用户中心模块设计本模块功能为用户个人中心,包括粉丝与关注管理,个

35、人资料管理。粉丝与关注管理是用户可在个人中心查看关注的用户列表和粉丝列表,对己关注的用户可以取消关注,也可对未关注的用户进行关注,用户可在零食详情页上方的发布用户信息处或其他用户的首页关注其他用户。关注其他用户后可在首页的关注板块下看到关注用户近期发布的零食信息。个人资料管理是用户在第一次进入系统时,会调用微信授权获取用户的微信头像,微信昵称和微信性别,记录在系统数据库中,并在用户个人中心展示。4.2.5后台管理模块设计本模块功能为后台管理,包括零食管理,用户管理,评论管理,推荐管理,轮播图管理,搜索历史管理。零食管理是管理员可在后台查看系统内所有的零食信息,包括零食介绍内容、零食图片、零食发

36、布用户、零食发布时间和更新时间、零食状态,并能将数据导出EXCel文件。还可对零食信息进行关键词过滤,可手动添加、删除或修改零食信息,若发现有违规零食信息还可对其进行封禁处理。用户管理是管理员可在后台查看所有用户的信息,包括用户的昵称、用户头像、用户微信的。Penid、用户性别、用户创建时间和用户状态,并能将用户数据导出至EXCeI文件。管理员可根据关键词过滤用户,还能修改或删除用户。若管理员发现有违规用户可对其进行封禁处理。评论管理是管理员可在后台看到系统的所有评论信息,包括评论内容、评论发布者、评论的零食信息、评论创建时间、评论状态和评论的喜欢数,并能将数据导出Excel。管理员可对这些信

37、息进行关键词过滤查看。若管理员发现有违规评论可对其进行封禁处理。推荐管理是管理员可在后台查看系统利用协同过滤算法为每个用户推荐的零食记录,并能将数据导出EXCeI文件。其中包括推荐零食id、推荐用户id,推荐时间和状态。管理员可对其进行关键词过滤查找。轮播图管理是管理员可在后台管理系统首页的轮播图,轮播图包括名称、展示图片、点击跳转链接和状态。管理员可对轮播图进行查询、添加、修改和删除。可控制轮播图是否在首页展示。轮播图可用于活动发布、广告推送等。搜索历史管理是管理员可在后台看到系统所有用户的搜索历史信息,包括搜索关键词,搜索用户和搜索时间,并能将数据导出EXCeI文件。管理员可对这些信息进行

38、关键词过滤。4.3数据库设计4.3.IE-R模型设计ER模型即实体-联系模型,由实体、属性和联系集构成。E-R模型的作用是现实世界中的系统概念结构抽象成一个数据库管理系统的模型6o经过对系统的需求分析和功能设计,绘制出本系统的总体E-R模型如图4-2所示。图4-2系统E-R模型图4.3.2表结构设计根据E-R模型,进行系统数据库表结构的设计。系统的数据库主要包括零食信息表、用户信息表、评论信息表、评论点赞表、关注信息表、零食操作信息表、查询历史表、零食推荐记录表、轮播图信息表。(1)零食信息表零食信息表用于存储零食的信息,主要属性包括自增长零食id、零食介绍、零食首页展示图片、零食图片列表、零

39、食标签、零食发布用户id、零食发布时间、零食更新时间、零食展示状态。零食信息表的表结构如表4-1所示。idntcontenttexthead_imgvarcharimglisttexttagsvarcharuser idintcreate timedatetimeupdate timedatetimestatuschar否否否否否否否否否是否否否否否否否否零食id零食介绍 首页图片 图片列表零食标签 发布用户id 发布时间 更新时间 展示状态(2)用户信息表用户信息表主要用于存储用户信息,主要属性包括自增长用户id、用户昵称、用户头像、微信。Penid、用户生日、用户性别、用户注册时间、用户状

40、态。用户信息表的表结构如表4-2所示。表4-2用户信息表字段名数据类型长度是否为空是否主键备注idint11否是用户idnick_namevarchar50是否用户昵称headimgvarchar255是否用户头像open_idvarchar255否否微信OPCnidbirthdaydatetime0是否生日sexchar1是否性别1-男。-女Createtimedatetime0否否注册时间statuschar1否否用户状态(3)评论信息表评论信息表用于存储用户对零食的评论信息,主要属性包括自增长评论id、评论内容、评论用户id、评论零食id、评论时间、评论状态。评论信息表的表结构如表4-3

41、所示。idintcontentvarcharuser idintsnack idintcreate timedatetimestatuschar否否 否否否是否否评论id 评论内容评论用户id 评论零食id 评论时间 评论状态(4)评论点赞表评论点赞表用于存储用户对评论的点赞信息,主要属性包括自增长点赞id、评论id、用户id、点赞时间。评论点赞表的表结构如表4-4所示。表4-4评论点赞表字段名数据类型长度是否为空是否主键备注idmtcomment id intuser idintcreate timedatetime否否否否 O足点赞id评论id否用户id点赞时间(5)关注信息表关注信息表用

42、于存储用户的关注详情和粉丝详情,主要属性包括自增长关注id、关注用户id、被关注用户id、关注时间。关注信息表的表结构如表4-5所示。表4-5关注信息表字段名数据类型长度是否为空是否主键备注idint11否是关注iduseridlint11否否关注用户iduserid2int11否否被关注用户idcreate_timedatetime0否否关注时间(6)零食操作信息表零食操作信息表用于存储用户对零食的操作详情,主要属性包括自增长操作id、用户id、零食id、操作类型、操作时间。零食操作信息表的表结构如表4-6所示。字段名数据类型长度是否为空是否主键备注idint11否是操作iduseridin

43、t11否否用户idsnackidint11否否零食idtypechar1否否操作类型:1-浏览2-喜欢3-收藏4-评论create_timedatetimeO否否操作时间(7)查询历史表查询历史表用于存储用户的搜索记录,主要属性包括自增长查询id、查询内容、搜索用户id、查询时间。查询历史表的表结构如表4-7所示。表4-7查询历史表字段名数据类型长度是否为空是否主键备注idsearchuseridcreatetimeint11否是查询idvarchar255否查询内容intU否否搜索用户iddatetimeO否查询时间(8)零食推荐记录表零食推荐记录表用于存储后台每天为用户生成的零食推荐记录,

44、主要属性包括自增长推荐id、用户id、零食id、推荐创建时间、状态。零食推荐记录表的表结构如表4-8所示。表4-8零食推荐记录表字段名数据类型长度是否为空是否主键备注idint11否是推荐iduseridint11否否用户idsnackidint11否否否零食idcreatetimedatetimeO否推荐创建时间statuschar1否否状态(9)轮播图信息表轮播图信息表用于存储首页展示的轮播图信息,主要属性包括自增长轮播图id、轮播图名称、轮播图图片地址、点击轮播图跳转地址、是否展示。轮播图信息表的表结构如表4-9所示。idintnamevarcharimg_urlvarcharurlva

45、rcharshbxchar是否否否否 否否否是否 15 5 55 ro 5 12 2 2轮播图id 轮播图名称 图片地址 跳转UlT 是否展示4.4本早小结本章确定了系统的整体架构,对系统的各个功能模块进行了划分与设计,并对系统数据库进行了E-R模型设计和表结构设计。第5章系统实现与测试51系统实现环境要求5.L1开发环境(1)系统环境:WindOWSlO操作系统(2)开发工具:Pycharm2017(3)开发语言:Python、VueMySQL等。5.1.2运行环境服务器系统:Ubuntu16.04.1(2)HTP服务器:Nginx(3)微信客户端:Version7.0.55.2系统实现5.2.1微信授权模块实现由于本系统运行在微信公众平台上,用户在进入系统时不必输入账号密码,只需要通过微信授权就能完成自动登录。系统

展开阅读全文
相关资源
猜你喜欢
相关搜索
资源标签

当前位置:首页 > 生活休闲 > 在线阅读


备案号:宁ICP备20000045号-2

经营许可证:宁B2-20210002

宁公网安备 64010402000987号