已阅读5页,还剩40页未读, 继续免费阅读
版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
全套设计加扣 3012250582 本科生毕业设计(论文) 题 目: 美食信息的智能化集成化推荐平台 姓 名: 学 号: 学 院: 数学与计算机科学学院 专 业: 软件工程 年 级: 2013级 校内指导教师: (签名) 校外指导教师: (签名) 2017 年 6月 1 日 福州大学本科生毕业设计(论文)诚信承诺书学生姓名年 级2013级学 号所在学院软件学院所学专业软件工程毕业设计(论文)题目中文:美食信息的智能化集成化推荐平台外文:Food information intelligent integrated recommendation platform学生承诺我承诺在毕业设计(论文)活动中遵守学校有关规定,恪守学术规范,在本人的毕业设计(论文)中未剽窃、抄袭他人的学术观点、思想和成果,未篡改实验数据,如有违规行为发生我愿承担一切责任,接受学校的处理。学生(签名): 年 月 日指导教师承诺我承诺在指导学生毕业设计(论文)活动中遵守学校有关规定,恪守学术规范,经过本人认真的核查,该同学的毕业设计(论文)中未发现有剽窃、抄袭他人的学术观点、思想和成果的现象,未发现篡改实验数据。指导教师(签名): 年 月 日 美食信息的智能化集成化推荐平台摘 要人人都是喜欢享受美食的,但是面对网络上繁琐的信息和太多的选择,往往会浪费很多时间。因此对综合全面的美食信息和推荐符合用户喜好的需求,使得这个美食推荐平台应势而生,这就使人们现在越来越快的生活节奏和对美食信息繁琐的检索和比较之间的矛盾得到了基本解决。本推荐平台集成了美团、百度糯米和大众点评这三个主流美食网站的数据信息,对其进行数据爬取、比较个分析,给用户展示全面的美食店铺信息和优惠套餐,且为用户推荐符合其喜好和要求的美食店铺。主要涉及的技术:(1)网络爬虫,主要采用jsoup和httpclient对网络上需要的内容进行采集;(2)在推荐和搜索模块加入推荐算法,来推荐或搜索符合用户喜好的美食店铺;(3)自定义美食特征的领域知识库,各美食店铺基于评论形成自己的标签向量便于对需求的比较和推荐;(4)使用struct+spring+hibonate框架开发web 网站做为该推荐系统的展示平台。实现的主要功能模块有:(1)查询展示模块:用户选择需求,系统显示出符合需求的美食店铺;(2)详情对比模块:展示该店铺的上述网站对比详细信息和评价列表;(3)推荐模块:以用户收藏或浏览过的店铺为基础,用算法得到推荐列表;(4)用户点评模块:用户可根据体验提交自己的评价或删除修改该评价;(5)收藏店铺模块:可点击收藏自己浏览过的美食店铺。本系统的集成化表现在采集了三大主流美食信息网站的数据,智能化表现在采用了协同过滤推荐算法实现为用户推荐美食信息。美食信息的智能化集成化推荐平台旨在为喜欢美食的用户提供完善的美食店铺信息和推荐功能,从而使用户从各网站繁琐的比较和选择中解脱出来,得到合乎心意的美食推荐。关键词:推荐系统,网络爬虫,推荐算法,ssh框架Food information intelligent integrated recommendation platformAbstractEveryone likes to enjoy the food, but the face of the network on the cumbersome information and too many choices, often wasted a lot of time. So the comprehensive and comprehensive food information and recommendations meet the needs of users preferences, making this food recommended platform should be born 1, which makes people now faster and faster pace of life and food information cumbersome search and comparison The contradiction between the basic solution.The recommended platform integrates the US group, Baidu glutinous rice and the public comment on the three mainstream food website data information, its data crawl, compare analysis, to show users a comprehensive food shop information and discount packages, and recommended for the user Meet their preferences and requirements of the food shop. Mainly involved in the technology: (1) network crawler, mainly using jsoup and httpclient on the network need to collect the content; (2) in the recommendation and search module to join the collaborative filtering recommendation algorithm to recommend or search for food preferences in line with the user shop; (4) the use of struct + spring + hibonate framework to develop web sites as the recommendation of the system display (3) the use of struct + spring + hibonate framework for the development of the web site as the recommendation of the system display (3) custom food characteristics of the field of knowledge base, the food shop based on comments to form their own label vector to facilitate the comparison and recommendations; platform.The main function modules are: (1) query display module: the user chooses the demand, the system shows the food shop which meets the demand; (2) the detailed comparison module: shows the website comparison details and the evaluation list; (3) (4) user review module: the user can submit their own evaluation or delete the experience to modify the evaluation; (5) collection store module: the user can be based on the experience of the evaluation, You can click on the collection of their own food shop.The integrated performance of the system in the collection of the three major food information website data, intelligent performance in the use of collaborative filtering recommended algorithm for the user to recommend food information. The intelligent and integrated platform for gourmet information is designed to provide the perfect food shop information and recommended functions for users who like food, so that users can be freed from the cumbersome comparison and selection of the websites and get the food recommended.Keywords:recommendation system,web crawler, recommended algorithm, ssh framework目录摘 要IAbstractII第1章 绪论11.1研究背景11.2研究现状11.3主要内容21.4研究目的及意义21.5论文组织结构3第2章 系统开发环境及相关技术点42.1系统开发环境42.2网络爬虫42.3推荐算法52.4相关框架62.4.1 ssh框架62.4.2 bootstrap框架8第3章系统分析与设计93.1系统用例分析93.2系统概述103.2.1 系统架构103.2.2 功能架构103.2.3 系统特点113.3系统界面设计特点123.4系统各功能模块设计123.4.1 数据爬取模块123.4.2 搜索显示模块133.4.3 详情对比模块143.4.4 账户管理模块153.4.5 收藏模块163.4.6 评论模块173.4.7 推荐模块183.5数据库设计19第4章 系统实现与展示224.1 系统架构层实现224.1.1 表现层224.1.2 业务层224.1.3 数据层234.2 各功能模块的实现234.2.1 数据爬取模块234.2.2 搜索显示模块244.2.3 详情对比模块254.2.4 账户管理模块274.2.5 收藏模块284.2.6 评论模块294.2.7 推荐模块294.3 运行效果与使用314.3.1 搜索显示模块314.3.2 详情对比模块324.3.3 用户管理模块324.3.4 收藏模块334.3.5 推荐模块334.3.6 评论模块34总结35参考文献36致谢37V美食信息的智能化集成化推荐平台第1章 绪论1.1研究背景餐饮业迅速发展,人民的生活水平迅猛提高。人们已经不再满足于填饱肚子,人们对于美食的追求与日俱增,物美价廉,符合口味和环境要求等使得这个推荐平台应势而生,这使得人们现在越来越快的生活节奏和对美食信息繁琐的检索和比较之间的矛盾得到了基本解决。而网络爬虫的需求爆炸式增长的趋势已经成为大数据时代的新常态,所以我们得以利用爬虫得到网上美食餐厅的基本信息。今天吃什么,我们可以根据要求给出满意的智能化推荐;这家餐厅好不好,我们有集成多个网站的餐厅信息,给出最综合立体的印象;怎么吃才优惠,我们对比网站优惠活动,推荐出最优惠的网站。本推荐平台的集成化体现在:本推荐平台是基于美团、百度糯米、大众点评这三大主流团购美食的网站,对其进行数据爬取,数据融合和分析。用户得以从庞大的数据中到得对比处理后的自己需要的信息。本推荐平台的智能化表现在采用了协同过滤推荐算法实现为用户推荐美食信息,让用户从爆炸式繁琐的网络信息的选择中解脱出来,不再花费大量时间纠结选择,得到合乎心意的推荐服务。这样用户可以快速便捷的进行餐厅选择和美食享用。1.2研究现状网络爬虫在网络刚开始发展时就已经有了。现在对网络爬虫的研究成果也特别的多,最初的是google爬虫。百度和google爬虫应用非常广泛,但遗憾的是他们的技术都是对外不公开的。爬虫技术的发展说明现在的市场也迫切的需要爬虫技术的继续发展和研究2。随着网络上面信息过载的情况越来越严重。近年来推荐系统作为一种解决这些问题的技术和手段,备受欢迎。现在,各种大型多媒体和电子商务的网站上都有推荐系统的身影。推荐算法决定该推荐系统的性能好坏,所以是非常重要的。目前的推荐算法主要有三种。分别为:基于内容的推荐,协同过滤推荐和混合推荐这三种算法。协同过滤推荐是使用非常广泛的推荐算法,本系统主要使用该算法。1.3主要内容本次毕业设计主要包含一下工作:(1)毕设前的准备内容。掌握java语言、structs+spring+hibonate框架、bootstrap框架和mysql相关知识。在学习java爬虫技术时,学习了httpclient和jsoup技术。学习且了解推荐算法,并能够对这些算法进行相关的应用。(2) 网络爬虫的实现和数据采集。 对美团、糯米和大众点评这些网站上大量数据进行采集,然后存入mysql数据库中。以备后续开发使用(3) 数据的分析与处理。 将不同网站采集到的数据信息进行汇总,处理。利用各美食店铺爬取下来的评论,将该美食店铺贴上对应的特征标签向量作为该店铺的特征。(4) 推荐算法。加入推荐算法,让用户从爆炸式繁琐的网络信息的选择中解脱出来,不再花费大量时间纠结选择,得到合乎心意的推荐服务。 (5)利用java web知识开发网站作为平台。基于以上工作,开发一个美食推荐的系统作为该推荐平台,使用structs+spring+hibonate框架搭建后台,bootstrap框架和html、css相关知识开发前端。该网站的主要模块有以下五个:1) 查询展示模块:用户选择需求,系统显示出符合需求的美食店铺。2) 详情对比模块:展示该店铺的上述网站对比详细信息和评价列表。3) 推荐模块:根据用户收藏的店铺,用协同过滤算法得到推荐列表。4) 用户点评模块:用户可根据体验提交自己的评价或删除修改该评价。5) 收藏店铺模块:可点击收藏自己浏览过的美食店铺。1.4研究目的及意义我们在搜索美食餐厅时,经常要找好几个网站(美团、百度糯米,大众点评等)才能得到最优惠的购买方案,和全面的评价印象,可以类比现在的一些商品价格对比网站,做出这样一个美食价格对比的功能,可以尽其所能的节约在对比购买上的时间精力和金钱。民以食为天,经常困扰我们的一个大问题就是今天吃什么,所以,在价格对比功能以外,利用协同过滤推荐算法,还有为消费者推荐美食的功能。目前,数据的处理和研究还有推荐系统比较热门,也确实能方便大家的生活,提高生活效率,这就是做美食信息的智能化集成化推荐平台的意义。1.5论文组织结构本文共分六章,组织如下:第一章,首先简述了选题的背景和意义,同时分析了爬虫和推荐系统的发展现状,概括了该系统的主要内容。第二章,介绍了本美食信息的智能化集成化推荐平台用到的相关技术和算法。第三章,介绍本系统的分析与设计。包括需求分析、系统概述、界面设计和功能模块、数据库设计等等。第四章,介绍了系统的实现与展示。详细说明了系统如何实现以及最终结果展示。第六章,总结该课题,展望以后要继续完善的工作。第2章 系统开发环境及相关技术点2.1系统开发环境本系统发开过程中主要使用以下开发环境:(1) 操作系统:window7 Windows 7 是内核版本号为Windows NT6.1的操作系统。它由微软开发。且可供家庭工作环境、商业工作环境、各种类型电脑使用。(2) Java环境:jdk1.8 Jdk是一种java开发的工具包。功能强大,是开发java web必不可少的核心。(3) Web容器:tomcat8.0 Tomcat普遍适用于中小型系统开发,是一种web应用服务器。其轻量级的特点使其方便开发和调试。(4) 开发工具:myeclipse2014 用于java web开发。(5) 浏览器:chrome、Mozilla firefox(6) 数据库开发工具:mysql+navicate for mysqlMysql可以用来存储用户从网络上爬取下来的结构化数据和非结构化(自由文本)数据。Navicat用来包装的,提供图形化的操作界面。(7) 需求设计工具:ProcessOnProcessOn可以方便快捷的制作自己所需的各种uml图形。2.2网络爬虫在网上时,有一类特殊的网络用户也在网络上面默默的工作着。它就是网络爬虫。这些爬虫按照开发者事前编写开发的流程,在网络中工作。然后进行对这些信息进行分类、整理。最后将其结果返回给用户。这样就方便了那些在网络上花费大量时间和精力去查找有用信息的用户。近年来,由于爬虫的实用性,提起了大家的兴趣3。 图2-1 网络爬虫本课题用到的爬虫技术主要有httpclient和jsoup,下面是它们的主要内容介绍:(1) Httpclient技术 Httpclient是apache子项目4,提供各种支持http协议的编程工具包。其主要功能有: 1)支持http协议并且实现了http的方法如:get,post等。 2)支持自动转向。 3)支持代理服务。(2) Jsoup技术简单来说,jsoup是一种基于java的html文本解析器5。可以从各种来源实现加载html文档,然后生成对象实例。不仅如此,jsoup可以如:对文档的各种检索、对结果处理和抽取的方法、可扩展的APIi设计等等,这里不一一列举。这样就很方便的实现了开发者对大量的网页数据进行有目的的数据抽取和操作。Jsoup的主要功能如下: 1)去对html元素、属性和文本进行操作。 2)能够用dom选择器去得到数据。另外还可以使用css选择器去查找开发者所需要的数据。 3)从各种来源中解析html文档。这些来源包括:url,文件和字符串等。2.3推荐算法协同过滤算法主要分为基于内存(MemoryBased)和基于模型(Model-Based)两类算法6。基于用户的协同过滤算法是基于内存的协同过滤算法中的一类重要推荐算法,其主要实现思想是通过用户间的共同评分项来计算用户间的相似度,之后,使用用户间的相似度大小得到目标用户7,最后对目标用户进行推荐。过程如下:(1) 首先自定义美食店铺的标签印象,用意思相近的关键字延伸这些特征标签,最后形成一个二维的标签向量组。(2) 遍历每个店铺的评论,由评论去对应标签向量组,含有标签中关键字的标签特征就可以得到该标签,并且进行标签计数。最后根据所有的评论得到一个该店铺的标签向量。这里的店铺就相当于协同过滤推荐算法中的用户。(3) 每个店铺和标签形成一个对应的二维表格。我们用标签向量去和其他店铺的标签向量进行余弦相似度计算8。余弦相似度公式: 公式(2-1) (4) 我们计算得到相似度高的店铺,作为该用户喜欢的类型店铺,且去掉已有的店铺。把它们加入推荐队列中,推荐出去。2.4相关框架2.4.1 ssh框架SSH框架是struts+spring+hibonate框架的简称,由此可以知道,ssh框架是一个集成了structs、spring和hibonate框架的一个框架集合。它搭建的系统灵活、易于扩展,深受web程序员的喜爱。系统一般分为表示层、业务逻辑层、数据持久层和实体层9。下面分别介绍这三个框架:(1) struts框架:Struts是基于web应用的MVC设计模式的应用框架。它在系统中有一个xml配置文件,通过该配置文件,开发者可以掌握开发系统之间各部分的联系。除此之外,该配置文件,便于开发者的协作开发和后续维护。需要提到的是,之前我们用到的structs框架是struts1。后来在Struts1和webwork的基础上,开发了新的struts2框架。现在都是使用struts2框架进行开发工作。(2) Spring框架:spring框架有控制反转的功能。它还有面向切面的功能。他可以使Struts和Hibernate更加谐和的在一起工作。以前只能用EJB完成的工作,在有了spring之后可以方便快捷的使用基本的javabean来完成。Spring的一些优秀特性如可测试性、松耦合和简单性深受开发人员的喜爱。(3) Hibonate框架:它有非常轻量级的封装。它是一个对象关系映射框架并且它开放了源代码给广大开发人员。自从有了hibonate框架之后,Java开发者控制数据库更加方便。Hibernate应完成数据的持久化的重任。如下所示为开发过程: (1)确定数据库中的表和数据,然后分析模块索要涉及的表,以及确定他们的关系。然后编写hibonate mapping这个文件和对应数据库中的持久化类。这部分是持久层。(2) 在项目里建立dao层的package,然后根据模块所需要的各种持久化操作,确定以及编写对应的方法。如基本的增删改查各种方法,这些方法也就是最基本的原子方法。然后编写dao的接口和实现类。(3) 下面是建立service层,也就是业务层。整理好业务逻辑,编写各个对应的service接口和实现类。这些实现类里面的实现的方法是基于dao层的原子方法实现的。(4) 编写action和form,也就是要处理页面和业务的交互,做出必要的验证转换。Struts的配置文件决定了对于不同的响应需要用到哪些action中的方法。(5) 使用html和css,js等前端知识进行jsp页面的编写。Jsp页面是web展现,还需要实现简单的非法操作控制等等。struts标签功能强大,可以用来实现数据的展示和传递等等功能。 图2-2 ssh架构图2.4.2 bootstrap框架 bootstrap框架作用在前端,很收开发者的欢迎。Bootstrap的结构中包含有html、css和js。它可以快速应用于任何web项目。其文档章节里面有四个部分。分别为:框架、基本css样式、组件和javascript插件(所有的javascript插件都依赖于jQuery库)10。它包含了两个简单的基本布局结构。组件是一些如标签圆角、导航和警告之类的常见的界面组件。最后是javascript插件,可以用来实现弹出框、提示和模态对话框这些。37第3章系统分析与设计3.1系统用例分析 系统用例分析图本质是表示一系列活动。这些活动是对系统功能的一种描述。本美食信息的智能化集成化推荐平台的系统用户可以有登陆、修改密码、退出、查看店铺列表、查看美食店铺详情、查看评论列表、查看推荐店铺和收藏店铺等主要功能。其中查看店铺列表可以选择按照福州地区的地点或者类型查看,也可以按照美食店铺的特征多选去查看。除此之外,用户可以输入一句话表达自己的需求,后台分析处理后返回符合要求的美食店铺列表。查看店铺详情,其中可以清晰看到美团、糯米和大众点评的详情对比,其中包括各网站的优惠套餐对比。在详情页面还有点击收藏按钮,查看评论按钮和填写评论功能。在查看评论列表的功能后可以对自己之前提交的评论进行修改和删除。 图3-1 系统用例图3.2系统概述3.2.1 系统架构 本美食信息的智能化集成化推荐平台使用的是浏览器/服务器(B/S)结构。这种结构是在web蓬勃发展后,也接着迅速发展起来的一种结构。它将系统的最核心的功能实现模块统一集中到服务器上。这样使得web开发者从繁琐费力的开发和维护中解脱出来。同时这样也方便了系统使用。用户操作的浏览器客户端采用的是bootstrap搭建的前端界面。简便了前端开发,同时也有很好的用户体验。后台使用的是ssh框架来进行逻辑处理和进行数据库的交互。本系统的架构图如下图3-2所示: 图3-2 系统架构图3.2.2 功能架构 本美食信息的智能化集成化推荐平台的系统用户可以有登陆、修改密码、退出、查看店铺列表、查看美食店铺详情、查看评论列表、查看推荐店铺和收藏店铺等主要功能。各个大功能下还有分小功能,系统的功能逻辑图如图3-3所示: 图3-3 系统功能架构图3.2.3 系统特点 本系统取得数据库中的数据是利用网络爬虫来得到的,得到的数据具有真实有效,数据量巨大的特点。爬虫技术主要使用了httpclient和jsoup。使用这两个技术爬取了美团、百度糯米和大众点评这三大主流美食购买网站。集成他们的数据于本系统,使得本系统用户具有全面方便快捷的获取所需要的数据的体验感。数据全面、对比性强是本系统的特点。在用户按照需求选择显示美食店铺列表时,除了点击固定的单选或者多选按钮,还可以按照自己需要输入一句话表达自己需求,系统进行分析处理得到显示美食店铺列表。本美食的智能化集成化推荐平台还可以按照用户的浏览记录,评论记录和收藏记录给出个性化的美食推荐。为用户在选择美食时尽可能的节约选择时间。为此,该系统为每个用户都创建了自己的一个账户信息。此外,本系统还有一个很实用的功能是能够对比美团、百度糯米和大众点评的优惠套餐信息。这样价格对比一目了然,用户就可以不用浏览全部美食团购网站就能够立刻得到最优惠的购买方案,点击链接跳转对应网站立刻购买。3.3系统界面设计特点 (1)减少浏览的层数。把最主要的功能放在用户最容易看到和得到的地方。如果层次太多,结构太过于复杂就容易让实际访问内容无法一次得到,用户没很多耐心,这就使得实际的访问率变低,信息很难快速传递给用户。 (2)界面设计布局简约清爽,色彩搭配舒服且合乎主题。特点明确,这样的网页界面才能在打开的一瞬间打动浏览者。 (3)尽量保持各个网页界面的一致性和可读性。能够让用户迅速确定自己浏览网页的主题,给用户留下深刻的印象。3.4系统各功能模块设计3.4.1 数据爬取模块 功能说明 数据爬取模块设计时与本系统分离为一个单独程序,只用于采集数据存入数据库。它的功能是爬取美团、百度糯米和大众点评在福州的美食店铺数据,如店铺url,平均花费,优惠套餐,评分和评论等等,将这些数据存入后台数据库中。 流程设计 图3-4 数据爬取活动图 3.4.2 搜索显示模块 功能说明本模块在用户登录进去时,首页显示了福州的所有店铺,但是显示区上方有表单可以让用户根据自己的意志选择所需要的店铺。有以下四种形式可以供用户选择。 (1)用户可以按照网页中显示的地区,单击选择。下方就会显示该选择地区的所有美食店铺。 (2)用户可以按照菜品类型,单击选择。下方就会显示该菜品类型的全部美食店铺。(3)用户可以根据需求类型,比如说“好吃”,“环境好”等等美食店铺的特征,多项选择。(4)用户根据需要输入一句话表达自己的需求,如:“想要带女朋友去高大上并且有表演的地方吃饭”,下方就会显示符合该要求的美食店铺。 流程设计 图3-5 搜索活动图 3.4.3 详情对比模块 功能说明本模块是在用户点击具体美食店铺之后出现的详情对比页面。该页面关于该美食店铺的详细信息有:图片,店铺名称,电话,地址,推荐菜系,平均花费等等。除此之外,该页面还会出现美团、百度糯米和大众点评三个主流美食团购网站的各优惠信息、现价、原价、购买人数等信息。用户可以根据这些集成化的对比信息去选择适合自己的最优惠的购买方案。可以点击链接直接跳转到选择的网站的购买页面。用户还可以点击该页面的查看评论按钮,页面会跳转评论页面查看到所有的评论和从评论中提取的印象词。并且还可以点击提交评论按钮跳转到填写评论页面,用户可以填写自己的评论,并且提交。该店铺的评论列表中就会出现本用户的评论,这样也会直接影响了该店铺的印象词。在该页面详情中,用户点击收藏的按钮就可以把该店铺收藏到自己用户信息中,在我的收藏那里查看。当然也可以取消收藏。 流程设计 图3-6 详情对比活动图 3.4.4 账户管理模块 功能说明用户可以登录退出或者是新用户注册,有单独的注册或者登录界面。在整个系统的头部有一个修改密码的按钮,点击该按钮,会出现修改密码的页面。在表单中输入原来的密码,如果输入错误会提示错误。之后输入两次新密码,输入正确后,点击确定,密码修改成功。跳转到登陆页面,如果修改失败,需要重新输入。 流程设计 图3-7 账户管理活动图3.4.5 收藏模块 功能说明在详情页面中点击搜藏该店铺,该店铺就会出现在我的收藏里面,在我的收藏里可以点击删除相关店铺。 流程设计 图3-8 收藏活动图3.4.6 评论模块 功能说明 在店铺详情模块里会有填写评论的按钮,在填写评论后,填写的评论和对应的店铺名会出现在的我评论列表中。可以选择评论删除,或者选择评论进行修改,即点击对应评论的修改按钮,就可以跳转到修改评论页面进行评论的修改,填写修改后的评论,点击确定修改,完成修改。 流程设计 图3-9 评论活动图3.4.7 推荐模块 功能说明 在推荐功能中,主要是根据一个美食店铺的用户评论得到该店铺的特征。然后根据个体用户的收藏店铺的特征进行对比,得到最接近要求的推荐店铺列表,进行输出推荐。具体推荐流程如下几个步骤:(1) 自定义美食店铺的标签印象,这些标签是具有代表性的店铺特征。比如说:“实惠”,“高大上”,“服务周到”等等。用意思相近的关键字延伸这些特征标签,最后形成一个二维的标签向量组。(2) 遍历每个店铺的评论,由评论去对应标签向量组,含有标签中关键字的标签特征就可以得到该标签,并且进行标签计数。最后根据所有的评论得到一个该店铺的标签向量。(3) 每个店铺都有自己的唯一标签向量。用户收藏自己喜欢的店铺,或者是浏览过该店铺。我们就有理由用该店铺的标签向量去和其他店铺的标签向量进行余弦相似度计算11。(4) 我们计算得到相似度高的店铺,作为该用户喜欢的类型店铺。把它们加入推荐队列中,推荐出去。在该推荐模块中,点击导航栏中的推荐店铺,就可以出现推荐的店铺列表。 流程设计 图3-10 推荐模块活动图3.5数据库设计 本部分介绍的是数据库中的数据表,如下: (1)用户信息表。用户信息表是注册用户的用户名和密码的记录表。 表3-1 user表字段名数据类型备注idint用户idusernamevarchar用户名passwordvarchar密码 (2)店铺信息表。店铺信息表主要是爬虫爬取大众点评的内容。由于大众点评在福州的店铺注册数是最多的,约有2000家。所以取得大众点评的基本店铺信息,如名称,地点,电话,推荐菜色等等。 表3-2 shopinfo表 字段名数据类型备注idint店铺id_urllongtext店铺网页链接shop_namevarchar店铺名称shop_thumbnaillongtext图片地址shop_activitieslongtext店铺优惠活动shop_rankvarchar店铺等级can_takeoutvarchar是否可以送外卖shop_addresslongtext店铺地址shop_telephonevarchar电话号码shop_spendvarchar平均花费shop_scoresvarchar评分open_timevarchar开业时间shop_comment_numvarchar评论条数shop_brancheslongtext其他分店recommendslongtext推荐菜色tagvarchar标签向量big_addrvarchar福州各地区typevarchar菜品类型 (3)评论表。该评论表是从美团,百度糯米和大众点评上取得的每个店铺的评论内容。 表3-3 comment表 字段名数据类型备注comment_idint评论idshop_idvarchar店铺idshop_namevarchar店铺名称commentlongtext评论内容 (4) 美团信息表。该表是爬虫爬取的美团上面的各店铺的评分和优惠活动的详细信息。 表3-4 mt_shopinfo表 字段名数据类型备注idintidnamevarchar店铺名称activelongtext优惠活动oripricevarchar原价pricevarchar现价salevarchar已售份数shop_scoresvarchar评分 (5)百度糯米信息表。该表是爬虫爬取的百度糯米上面的各店铺的评分和优惠活动的详细信息。 表3-5 nm_shopinfo表字段名数据类型备注idintidnamevarchar店铺名称activelongtext优惠活动oripricevarchar原价pricevarchar现价salevarchar已售份数shop_scoresvarchar评分 (6)收藏店铺表。各用户点击收藏的店铺列表。 表3-6 myshop表字段名数据类型备注idintiduser_idvarchar用户idshop_idvarchar店铺idnamevarchar店铺名称uservarchar用户taglongtext向量标签(7)评论列表。各用户对美食店铺的评论集合,用户和评论对应的列表。 表3-7 mycomment表字段名数据类型备注idint评论iduser_idvarchar用户idshop_idvarchar店铺idcommentlongtext评论内容 第4章 系统实现与展示 4.1 系统架构层实现4.1.1 表现层 本美食信息的智能化集成化推荐平台使用的是ssh框架和bootstrap框架。其中的struts框架决定了本系统的mvc(Model View Controller)模式,表现层也就相当于模型-视图-控制器的视图view。表现层采用的是jsp页面的表现形式12,jsp页面放在了webroot下面。在webroot下面除了jsp页面还有一些如js文件夹,css文件夹,image文件夹等来更好的为jsp页面的表现形式提供更丰富的支持。本系统中使用是bootstrap框架,该框架使得该表现层表现的页面更加丰富,开发者更加方便快捷的开发出美观整洁的界面。本系统的主要jsp页面如下所示:Head.jspShoplist.jspShopselect.jspPage.jspComment.jspWritecomment.jspRecommend.jspLogin.jspRegin.jspModify.jspShopinfo.jspCommentlist.jsp4.1.2 业务层业务层主要作用是负责管理一个系统的业务逻辑,由spring ioc主要负责。业务层对应模型-视图-控制器中的控制器。根据ssh框架的设计,业务层的代码放在src下面。每个请求都有对应一个action方法去处理它,再把结果返回到前台。本系统中controler下面commentAction.java主要处理有关评论的请求,具体来说,它负责评论的显示和计算评论对应的标签向量,还有用户对一个店铺填写评论且提交,修改删除查看等功能。loginAction.jsp负责用户登陆退出或者注册和修改密码等等。userAction.java负责用户管理的相关事宜,它负责管理用户已提交的评论还有收藏的所有店铺和对这些店铺的管理。shopinfoAction.java负责处理店铺的按各种要求的搜索和显示,除此之前,它还负责显示美食店铺的详细信息,这些信息都是来自不同的主流网站。最后,它还有方法是计算推荐的相似度,最后得到推荐列表。4.1.3 数据层在 SSH 框架中,数据层则依赖于 Hibernate 的对象化映射和数据库交互,处理 DAO 组件请求的数据,并返回处理结果。Hibernate 框架中通过:Session、SessionFactory、Transaction 等 5 个核心接口,实现对持久化对象的存取和对事物的控制。在本系统中,实体类和对数据库操作的文件主要存放在 domain 和dao 的文件夹下。4.2 各功能
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 便塞在抗衰老产品中应用效果评估-洞察及研究
- 光伏组件与建筑集成技术-洞察及研究
- 审计工作标准操作流程与风险防范
- 碘甘油在微生物降解污染物中的研究-洞察及研究
- 质量事故报告流程及表格模板
- 大数据环境下的市场营销分析方法
- 网络销售合同条款及风险防范指南
- 市政工程验收规范与标准解读
- 酒标设计排版规范与实施策略
- 模版单项工程承包施工合同试卷教案
- 2022年贵州毕节市乡村振兴局下属事业单位考调笔试备考题库及答案解析
- 质量环境职业健康安全管理体系三合一整合全套体系文件(管理手册+程序文件)
- 天津市建筑工程施工质量验收资料管理规程DBT29-209-2020
- 公路水运交安三类人员考试试题及答案
- IBM(中国)品牌培训课件
- GB/T 7165.2-2008气态排出流(放射性)活度连续监测设备第2部分:放射性气溶胶(包括超铀气溶胶)监测仪的特殊要求
- GB/T 10000-1988中国成年人人体尺寸
- 纪委书记政治画像
- 妊娠图绘制及识别课件
- 语言学纲要第八章-语言的接触课件
- 机房UPS安装施工方案
评论
0/150
提交评论