摘要
本景点推荐系统采用B/S架构,数据库是MySQL,网站的搭建与开发采用了先进的Java进行编写,使用了协同过滤推荐算法和Spring Boot框架。该系统从两个对象:由管理员和用户来对系统进行设计构建。前台主要功能包括:用户注册、登录、浏览首页、查看首页、景点信息、旅游路线、旅游资讯、留言板、后台管理等详情,并进行预定旅游路线、旅游等操作。本系统在一般旅游攻略网站的基础上增加了首页推送最新信息的功能,方便用户快速浏览,是一个高效的、动态的、交互友好的景点推荐系统。 本系统采用的数据库是MySQL,使用Java技术开发。在设计过程中,很好地发挥了该开发方式的优势,让实现代码有了良好的可读性,而且使代码的更新和维护更加的方便,操作方便,对以后的维护减少了很多麻烦。系统的顺利开发和实现,对于景点推荐系统管理这一方面提供巨大的便利服务,无论是用户还是未注册的游客,都带来了极大的便利,方便大众,为旅游业的进步与发展提供了一些动力。
绪论
1.1背景及意义 伴随着科技的进步,时代的发展,越来越多的交通工具也随之出现在人们的眼前,而这也促使了人们内心中对自己没见过但有着美丽景色的地方的向往。在电子设备,软件技术成熟之前,人们想要外出旅游,尤其是远距离旅游,如跨省,出国等。多数情况下,人们并不能很快的了解到当地的习俗,不能很快的掌握旅游地点都有什么美丽的景点是自己必须要去观赏一番的。大多数情况下,大家都花着很大的价钱,跟着旅游团,听从导游安排,很多时候在遇到自己想去的地方的时候碍于旅游团的行程安排,不能在自己非常喜欢的地方长时间驻足,同样在遇到自己并不喜欢的景点或项目时也没办法离开,只能静静的等待。这样也让很多游客不能在有限的时间里得到最大的欢乐。而随着电子设备的更替到来,人们可以选择使用电子设备,通过旅游软件的帮助,找到最适合自己,最符合自己的旅游地点和旅游路线。本次我所开发的景点推荐系统,它可以让用户登录网站,就可以了解有特色的景点、查看旅游路线、预定路线等,让用户通过网站就可以实现轻松出游的目的。
1.2 国内外研究概况 在当前飞速发展的时代,无论是国内还是国外,发展都是突飞猛进的,经济形势也是一片明朗。在这种背景下,互联网的这一块的市场成为了各个国家想要争夺的香饽饽。于是无论是国内还是国外一些公司把目光投向了互联网这块市场,越来越多的人对互联网有所了解,具备了一些网络意识。在这种互联网大浪潮的不断冲刷下,各种各样的系统被开发出来。计算机技术无论是在国内还是国外中应用普遍,使计算机这一新型工具成为人们耳熟能详、妇孺皆知的新技术。计算机和互联网的广泛应用,让国内外的距离变"近"了,这个庞大的地球家园一下变成了地球村。国内国外的互联网发展也存在一些差距,我国近些年的互联网发展迅速,跻身于世界前列。 本系统采用B/S架构、采用的数据库是MySQL,使用Java技术开发。该系统的开发方式无论在国内还是国外都比较常见,而且开发完成后使用普遍,可以给用户提供大量的便利[3]。该系统在国内外前景较为良好。
1.3 研究的内容 景点推荐系统是一个便于用户浏览景点信息、旅游路线、旅游资讯而进行管理的平台。因此本文主要阐述了系统实现的功能和完整开发的过程,结合Web开发技术实现了一个景点推荐系统。本系统以软件工程理论作为开发的理论基础,[4]以专业的计算机编程语言实现系统的功能与开发。 该选题原则上力求采用标签模块分类等方法,来完成注册、登录、用户之间的交流连接、管理员对页面的设置和对后台数据库中数据的增删查改等一系列的操作和运行等。在这一系列模块分类的功能下,达到对景点推荐系统信息的高效执行和规范管理。
相关技术
2.1 Java简介 Java主要使用了CORBA技术和安全模型,主要是在网络使用的信息保障上。它还带来了对EJB(Enterprise Java Beans)的完全支援[6],Java SERVLET API,JSP(Java Server Pages),还有XML技术等多进步。因此,当在打开蜘蛛纸牌休闲一下玩游戏时,还可以打开一个音乐播放器来播放自己想要听的歌,于是,既可以一遍玩蜘蛛纸牌放松,也可以挑选播放自己想要听的歌,两者来回切换,两者同时进行无需等待。因为似乎他们都在自己的主机上一起为自己工作。但事实是,对于某个CPU来说,它只是在特定时点进行了某个程序。CPU在这些程序中间,不断地"跳跃"。而为何人们却看不到什么破坏呢?这是因为,和人的感应一样,它的速度太快了。所以,即使人们发现一些同步操作,其实对电脑而言,也只是在特定时点运行了某个进程,除非的电脑是多CPU的。
2.2Spring Boot框架
现如今后台开源框架主流的有SSH、SSM、Spring Boot,但是SSH、SSM框架的环境配置项较多,而Spring Boot主要的设计思想就是约定大于配置,故而SpingBoot在设计时几乎达到零配置。Spring Boot整合了业界上的开源框架。具体采用技术框架描述如下: (1)Mybatis:Mybatis:提供自动映射,动态SQL,级联,缓存,注解,代码和SQL分离等特性,使用方便,同时也对SQL进行优化[10]。 (2)SpringMVC:通过一套MVC注解,让POJO成为处理请求的控制器,无需实现任何接口,同时,SpringMVC还支持REST风格的URL请求[11]。 (3)Spring Boot:从本质上来说,Spring Boot就是Spring,它做了那些没有它你也会去做的Spring Bean配置[12]。 Spring Boot是一款非常强大后台框架,因为Spring Boot开发时可以基本不用写配置文件,所以使用Spring Boot搭建网站的后台环境,在Spring Boot的yml配置文件中写入项目启动端口,项目就可以启动。项目的Java文件还有静态文件都是由Spring Boot来管理。
2.3 Idea开发环境 IDEA全称IntelliJ IDEA,是对Java语言开发的一种集成环境,是JetBrains公司的产品。Idea倡导的是智慧编码,目的是能够减轻编程员的实际管理工作,主要特色功用是智能的选择、大量的导航模块、历史记录功能等,而更重要的功用则是调试(Debug),能够对Java代码、JavaScript、Query等各种功能进行调试。IntelliJ在业内一直被认为是世界一流的Java技术开发工具,尤其在智能代码助手、代码自动提醒。免费版只支持HYPERLINK 等极少数语言[7]。 2.4 Tomcat服务器 Tomcat属于一个轻量级的浏览器,所以这在中小企业中并不存在普遍需求。在使用正确的时候,由于Apache浏览器也对HTML标签网站的使用具有一定支持,所以Tomcat的工作对象主要是使用了SERVLET的JSP网站[8]。Tomcat也具备了相应的HTML网页处理能力。对一名初研究者来说,应该这么认定,如果在某台主机上设置好Apache服务器,并使用它响应HYPERLINK页面的访问请求。其实Tomcat是Apache服务器的延续,但在执行时却是自己工作的,所以当在执行Tomcat时,它实际就是一台和Apache完全独立性的进程自己工作的。
2.5 MySQL数据库 MySQL是一种关系型的数据库管理系统,属于Oracle旗下的产品。MySQL的语言是非结构化的,使用的用户可以在数据上进行工作。这个数据库管理系统一经问世就受到了社会的广泛关注。在各个方面,与同等的数据库相比,MySQL的优点极为突出,它的运行速度快,适用的范围广泛,而且数据库的安全性这一方面独树一帜。在语言a结构方面,MySQL的语言简单,其他数据库需要一大段代码来实现的操作,MySQL仅需要一小部分代码甚至几行。综上所述,MySQL这种关系型数据库管理系统,已经成为了开发者进行项目的数据开发、存储的不二之选。MySQL的功能也多种多样,如数据操纵和数据库的建立维护等。而且该数据库的数据共享性高、冗余度低而且容易扩充。MySQL在安全性这一方面也具有自身的特点,它应用了用户的标识和鉴别技术,对试图和数据进行加密,确保资料信息的可靠性。介于数据库系统的功能与强大等性质之间,本数据库系统的设计中主要使用了MySQL实现对数据的处理。基于Web的景点推荐系统系统运用MySQL数据库,在Web应用这一块,MySQL是最好的选择。对于该系统整个的开发、搭建、运行和维护具有极其重要的作用[9]。
2.6 基于协同过滤的推荐算法简介 基于协同过滤的推荐算法是现今各个电子商务领域中运用最为广泛的推荐算法,它对电子商务的发展起到了至关重要的作用。基于协同过滤的推荐算法是一种通过群体偏好的方式,来帮助个体来找到其共性,给该用户推荐相似的偏好物品。协同过滤算法的基本思路是通过分析各用户的历史的购物情况以及评论情况等用户行为,如评论、购买记录等,得到他们的偏好物品,将喜好不同物品的用户进行分组。之后对不同分组的用户进行分析,通过推荐算法预测出该用户的感兴趣的物品。该方法的具体操作可简述为向推荐算法中输入用户和商品的关系矩阵,输出用户对不同物品的兴趣值。 通常来说,基于协同过滤的推荐算法可分为基于内存的协同过滤和基于模型的协同过滤推荐算法,基于内存的推荐算法还包括基于用户和基于物品的协同[6]过滤推荐算法。基于用户的推荐算法是最早被提出的推荐算法,始于1991年,主要思路为在大量的用户相关数据中研究出用户对物品的偏好程度,之后通过推荐算法的算法推算出相似度较高的用户,然后将其相似用户所喜爱的物品通过推荐算法推荐给其他用户。基于物品的推荐算法是目前使用最为广泛的算法,它通过提取所有用户对不同物品的评价,探究不同物品之间的相似度,然后根据用户之前所购买或有较高评价的商品推荐与其相似度较高的商品。基于模型的推荐算法可以运用于数据量小的场景里,当数据规模较大时,此方法不够精准,推荐效率较为低下。
系统整体功能图

系统前台界面图

景点信息界面图

旅游路线界面图

路线预定界面图

管理员登录界面图

管理员功能界面图

用户后台功能界面图

部分数据库表
|-------------------|-----------|------------|--------|----|-------------------|
| 字段名称 | 类型 | 长度 | 字段说明 | 主键 | 默认值 |
| id | bigint | | 主键 | 主键 | |
| addtime | timestamp | | 创建时间 | | CURRENT_TIMESTAMP |
| luxianmingcheng | varchar | 200 | 路线名称 | | |
| jingdianmingcheng | varchar | 200 | 景点名称 | | |
| jingdianfengmian | longtext | 4294967295 | 景点封面 | | |
| chufachengshi | varchar | 200 | 出发城市 | | |
| xingchengtianshu | int | | 行程天数 | | |
| xingchengjuli | int | | 行程距离 | | |
| feiyong | float | | 费用 | | |
| jiaotonggongju | varchar | 200 | 交通工具 | | |
| xingchengluxian | longtext | 4294967295 | 行程路线 | | |
| clicktime | datetime | | 最近点击时间 | | |
| clicknum | int | | 点击次数 | | 0 |
结论
经过这几个月的努力,在老师和同学的帮助与指导下,对系统顺利完成。对于该系统的研究和开发虽然没有耗费大量的时间,但为了成功完成该景点推荐系统,消耗了大量的精力和汗水去了解学习这方面涉及到的专业知识以及开发环境的应用。 该系统的设计与实现,是经过了很长时间的分析、观察、调研和研究分析并整理资料实施的。景点推荐系统采用B/S架构、Java开发语言、Spring Boot框架、协同过滤算法以及MySQL数据库等技术开发与设计。该系统主要分为用户和管理员个角色。该景点推荐系统分为前端和后端两大部分。前端的主要功能为向注册用户展示首页、景点信息、旅游路线、旅游资讯、留言板、后台管理、个人中心等,并对一些数据进行记录。后端的主要任务是对数据的一些准备处理的工作,对于用户和管理员两者的数据属性的添加、维护和修改。每个功能在完成各自任务的同时也相互合作,一起来处理各个任务以及进程。 尽管该系统对用户可以满足一些基本的景点推荐系统的需求,但该系统还存在寻多问题和有待完善的地方。主要分为以下两点:
(1)该景点推荐系统的适用面比较局限。页面的设置还是过于繁琐,不够简洁。加上社会方面的飞速发展,用户的条件也在发生新的变化。该系统还存在大数据下的并发和并行操作的不稳定性,当一个时间段内或者同一时刻时,过量的用户访问该网站会让网站的服务器出现崩溃的现象,一些操作无法正常的运行。种种原因使得该系统存在一些局限性。 (2)需要人工来处理的数据模块太多,需要减少大量的人工操作。在对景点推荐系统信息处理的程序中,难免会出现各种各样的错误数据或者是异常数据,一旦这些数据大量积累存在过多时,系统自我调节修复能力有限就不得不需要人工的干预了。但是人工如果经常去进行操作的话,就会造成该系统的运行速度变慢,对其余正确的数据产生干扰,而且有可能对正确数据的损害以及泄露,从而将会减少该系统的稳定性。对于人力和财力都造成了不必要的浪费。 从上述可以看出该景点推荐系统还有很多不足之处,在日后要结合具体项目问题进行修改和研究。