该系统包括如下5个主要模块:用户模块、分类展示景点、推荐引擎、景点详情、首页各个模块主要功能如下:1>用户管理模块:主要包括用户登录和用户注册;2>分类展示景点,按照夏季旅游、文化旅游、高原精品旅游线路、亲自旅游、其他精品旅游线路这几个分类进行旅游景点的展示;3>推荐引擎:包括核心算法、数据获取、推荐数据生成和标注数据接受等;4>景点详情:包括详情展示、游客对喜好景点的标注、给游客推荐的旅游景点的展示等;5>首页:包括热门景点轮播展示、推荐景点展示、游客入口等。
资源链接
这是一个完整的资料,包括论文和系统资料,本文只是其中的一部分,限于篇幅,大多数内容未展现,如有需要请点击下方链接获取。如果您需要的项目还没有找到,请在留言区评论项目名称,我会考虑开发和发布出来。如果需要调试,也可私信或者评论
系统
论文
1.绪论
1.1 课题背景
现代社会已经步入了信息社会的世界。随着互联网的广泛应用,计算机技术、计算机网络技术、数据库技术、管理技术的发展,对信息的处理和利用已经深入到各行各业,已经深入到人类生活中的各个方面。旅游是人们丰富多彩生活的重要组成部分之一,旅游业已经成为当今世界上发展势头最强劲的产业之一,它是集吃、住、行、游、购、娱六大要素于一身的综合性产业。随着旅游业的不断发展,各个地方的旅游竞争也越来越激烈,为了吸引游客,越来越多的地方注重发展本地的旅游网路平台,通过互联网这个开放的窗口展示着自己独特的魅力。
青海是我国的旅游大省,青海是“内地人心目中的边疆,边疆人心目中的内地”,青海以其独特的地理位置和优越的自然风光和自然资源吸引了国内外大量游客。青海境内的茶卡盐湖、塔尔寺、青海湖等旅游景点在国内外都享有盛誉,青海作为高原地区,夏季温度舒适,也是人们避暑的经典旅游景点。
本系统基于青海省的自然旅游景点,开发了一个旅游景点个性化服务系统,以此希望促进青海乃至中国旅游业的发展。本系统将要依循面向对象软件开发过程,设计出客户端基于WEB浏览器、协同过滤算法,服务器端基于JSP和Servlet,数据源基于数据库的三层架构,采用MVC结构,完成JSP页面设计、服务器端请求的处理以及对数据库的同步更新。该系统可以实现游客分类查询青海旅游景点风景、通过协同过滤算法实现给用户推荐景点,可缩短游客的搜寻时间,提升游客旅游体验。
2.关键技术
2.1 系统架构
MVC全名是Model View Controller,是模型(model)-视图(view)-控制器(controller)的缩写,一种软件设计典范,用于组织代码用一种业务逻辑和数据显示分离的方法,这个方法的假设前提是如果业务逻辑被聚集到一个部件里面,而且界面和用户围绕数据的交互能被改进和个性化定制而不需要重新编写业务逻辑MVC被独特的发展起来用于映射传统的输入、处理和输出功能在一个逻辑的图形化用户界面的结构中。
通过这种方案,我们可以迅速地实现整个业务,其优势和特点如下:
Model(模型)层:由JavaBean来实现,将具体的业务封装在Bean内部,具备安全、高性能、可重用等优秀的特征。
View(视图)层:由JSP页和HTML标签组成。这一层次的主要特点是和客户交互,进行动态页面的展示。同时可以方便地进行客户端的个性化定制。根据每个客户的需求来展示不同内容的界面。
Controller(控制器)层:这一层是将View和Model的这两层进行最大限度分离的工具。可以由Servlet来实现,Servlet和JSP虽然同样都属于页面展示工具,但分属两层。主要在于JSP以脚本语言的形式存在, 它的主要优势是进行动态数据的Web展示,而Servlet是一个完整的Java程序,进行业务的调用和流程的处理,由于Servlet控制页面跳转速度很快,所以作为控制器可以最大限度发挥它的优点。
通过这种模型的建立,我们的应用系统具备了非常好的性能和可扩展性。将业务组件和展示页面进行分离,并通过Controller来描述调用关系,一方面可以提高效率,另一方面也可以增加系统扩充的能力,使我们的系统可以进行最快速度的业务扩展,以满足不同用户、不同阶段、各种各样的业务需求。
2.2 协同过滤算法
基于用户的协同过滤算法是通过用户的历史行为数据发现用户对商品或内容的喜欢(如商品购买,收藏,内容评论或分享),并对这些喜好进行度量和打分。根据不同用户对相同商品或内容的态度和偏好程度计算用户之间的关系。在有相同喜好的用户间进行商品推荐。简单的说就是如果A,B两个用户都购买了x,y,z三本图书,并且给出了5星的好评。那么A和B就属于同一类用户。可以将A看过的图书w也推荐给用户B。
协同过滤算法总结
优点:
1.能够过滤机器难以自动内容分析的信息,如艺术品,音乐等。
2.共用其他人的经验,避免了内容分析的不完全或不精确,并且能够基于一些复杂的,难以表述的概念(如信息质量、个人品味)进行过滤。
3.有推荐新信息的能力。可以发现内容上完全不相似的信息,用户对推荐信息的内容事先是预料不到的。可以发现用户潜在的但自己尚未发现的兴趣偏好。
4.推荐个性化、自动化程度高、能够有效的利用其他相似用户的回馈信息、加快个性化学习的速度。
缺点:
1.系统开始时推荐质量较差;
2.质量取决于历史数据集;
3.稀疏性问题(Sparsity);
4.系统延伸性问题(Scalability);
3. 需求分析
3.1 功能需求分析
3.1.1 首页
为了方便信息的查询和对青海旅游的了解,系统允许非注册用户浏览。游客可以查看到所有的旅游景点信息,上面有很详细的线路介绍。另外可以浏览整个网站的一些青海风情介绍,包括青海的热门旅游景点。对注册用户利用协同过滤算法进行推荐,对普通游客用户,按照旅游景点的热度进行推荐。
系统首页主要包括热门推荐、景点搜索、景点推荐、青海热门旅游景点轮播等;如果是注册用户,根据用户点击次数等用户行为,基于协调过滤算法给用户推荐旅游景点,如果是普通用户,则推荐热点旅游景点。
3.1.2 用户管理模块
注册:账号、密码、姓名、性别、电话、邮箱等信息进行注册;
登录:包括用户名、密码和验证码;
3.1.3推荐引擎
推荐引擎的核心就是协同过滤算法,协同过滤算法基于已有用户的旅游行为和用户的喜好,对新用户进行分类,新用户的分类可以直接归类到系统设定的类别,这些类别可以通过用户注册的时候,选择自己喜好的旅游方式来获得,基于用户的喜好对用户进行分类之后,就可以将此类游客的热衷旅游景点给新游客推荐,从而提升游客的旅游体验,缩短游客搜索景点的时间。
3.1.4 分类展示景点
基于青海省的旅游特点和青海省的游客特点,将青海省的旅游分为如下几类:夏季旅游、文化旅游、高原精品旅游线路、亲自旅游、其他精品旅游线路。系统基于这些类别分别划分单独模块进行展示,供游客选择,这样可以提升垂直旅游产品的获得容易程度,可以做到精准施策。
3.1.5景点详情查看
如果游客对某一个具体旅游景点感兴趣,就可以展示景点的详情给游客查看,如果游客喜好这个景点,还可以给喜欢的景点打标,这样就可以进一步丰富协同过滤算法的推荐库,体验互联网的“我为人人,人人为我”的思路,进一步提升游客感知和系统服务水平。
3.2 非功能需求分析
本系统是智慧旅游系统,且是采用B/S架构模式的系统。由于系统并非盈利系统,而主要旨在宣传青海旅游,因此,遭受黑客攻击的可能较小,但是系统存有游客信息,对游客信息的保护是系统安全方面的一个重要任务。
1.物理安全,物理安全的目的在于保护计算机系统、Web系统服务器等零食评测系统的硬件实体和通信链路免受自然灾害和认为破坏造成的安全风险。
2.周边防御,对网络的周边的保护可以起到抵挡外来攻击的作用。从技术上来说,防火墙时网络周边防御再好的手段,智慧旅游系统应该安装一道或者多道防火墙,用来确保最大成都的降低外来攻击所带来的风险,并且可以用防火墙自带的入侵检测功能来及时发现外界的非法访问和攻击。
4. 系统设计
4.1 系统模块设计
4.1.1 首页
首页是一个系统的门面,首页可以给旅客展示青海的最美风景,展示游客最喜好的景点,这些景点以轮播图的方式展示。轮播图是一种图片展示方式,是在页面的一个相对固定位置展示多个图片的方式,由于在同一个位置有图个图片需要展示,因此就按照先后顺序对图片进行展示,每一个图片都设定一定长度的时长,第一个图片播放完毕开始播放第二个,第二个结束开始播放第三个,以此类推,直到最后一个图片展示完毕,再从第一个开始展示,如此反复,因而被称为轮播图。
此外首页还需要提供分类景点的导航,游客可以通过首页导航到其他详细分类页面,对详细分类的景点进行浏览。还需要给游客提供一些常用的功能,比如登录和注册,通过首页可以进行用户注册,注册完成后如有了相应的账号就可以登录系统。
4.1.2 用户管理
4.1.3 推荐引擎
推荐引擎是系统的核心功能,系统可以基于已有的游客喜好,对用户进行推荐。推荐系统分为三部分,一部分是采集游客信息,这部分信息一是指游客的用户信息,一是指游客的旅游喜好信心,第二部分是对游客的旅游喜好进行信息处理,从而确定每一类游客的旅游喜好top,有了这些旅游喜好top,就可以进一步对用户进行推荐,第三部分是游客的分类,对每一个游客可以基于特定方式进行分类,分类之后,就可以基于已有的某一个分类的top给这个游客进行旅游景点的推荐。
4.1.4 分类展示景点
基于青海省的旅游特点和青海省的游客特点,将青海省的旅游分为如下几类:夏季旅游、文化旅游、高原精品旅游线路、亲自旅游、其他精品旅游线路。系统基于这些类别分别划分单独模块进行展示,供游客选择,这样可以提升垂直旅游产品的获得容易程度,可以做到精准施策。
分类展示就是基于对旅游景点的分类,然后基于推荐引擎和游客分类,如果游客选择了特定分类,就只会给游客推荐这个类别的景点,提升游客的游览体验。
4.1.5 景点详情查看
游客对某一个景点有了旅游倾向的时候,可以点击具体景点进入到景点详情,景点详情会给游客展示景点的推荐上榜理由、景点的最适宜游览季节和时间、景点的累计游客人数等信息,供游客甄别和选择。如果游客对这个景点比较中意,还可以给该景点打标,将景点标识为自己喜欢的景点,这样可以进一步丰富推荐系统数据库,为进一步做系统推荐提供样本,可以促使系统提高智能化水平。
4.2 数据库设计
4.2.1 数据库详细设计
用户表
字段名称 | 数据类型 | 说明 |
---|---|---|
ser | 自动编号 | 序列号 |
id | 文本 | 用户标识 |
type | 文本 | 用户类型 |
name | 文本 | 用户姓名 |
password | 文本 | 用户密码 |
Tel | 文本 | 用户联系方式 |
文本 | 用户电子邮件 |
景点表
字段名称 | 数据类型 | 说明 |
---|---|---|
id | 自动编号 | 序列号 |
name | 文本 | 线路名称 |
time | 文本 | 适合季节 |
count | 文本 | 累计游客 |
resouce | 文本 | 推荐理由 |
place | 文本 | 地点 |
resource | 文本 | 景点分类 |
景点喜好表
字段名称 | 数据类型 | 说明 |
---|---|---|
id | 自动编号 | 序列号 |
userId | 文本 | 用户ID |
tourId | 文本 | 景点ID |
count | 文本 | 喜好次数 |
rsrvStr1 | 文本 | 预留字段 |
rsrvStr2 | 文本 | 预留字段 |
rsrvStr3 | 文本 | 预留字段 |
5.系统实现
5.1 功能实现
5.1.1 主页面
5.1.2 首页
首页包括分类旅游信息导航、登录和注册导航、轮播图、推荐结果等。
分类旅游信息导航和登录注册导航的核心代码详见附录一。其实现过程主要是通过html中的标签实现,当用户点击相应位置的时候,跳转到对应的页面。
轮播图是采用bootstrap中的组件carousel来实现,这个组件可以设置多张图片进行轮播,这个组件的相应可用属性分别有:.carousel-indicators、.carousel-inner、
.carousel-item、.slide等,他们的含义分别是轮播指示符、轮播切换的图片、切换的图片内容和切换效果等。轮播图的核心代码见附录二。
推荐结果展示就是将推荐的结果,在jsp页面中传回,然后在jsp页面内部使用for语句进行循环展示,其核心任务就是从后台传数据给前台。
5.1.3 用户管理
5.1.4 分类展示
分类展示景点的主要功能就是在首页中,根据已有分类对分类景点进行导航,当用户点击具体的分类景点的时候,跳转到对应分类的界面中,跳转过程会将分类标识作为参数进行传递,传递之后,在新的页面就可以根据这个标识进行相应旅游景点的展示。
5.1.5 景点详情查看
景点详情查看就是展示景点的详情信息,当用户在分类景点页面或者首页中点击推荐的某一个景点的时候,利用html中的标签,将页面跳转到一个新的页面,在新的页面中带有景点的唯一标识,后台会根据这个标识从数据库中获取景点的详情,然后在新的页面将所有的详情进行展示。
5.1.6 推荐算法
推荐引擎是系统的核心算法,它根据用户的已有标签数据并不断通过用户的浏览和点击行为产生新的标签数据,依据这些标签数据进行数据的推荐行为。根据已有的数据可以计算每一个类别的数据的top值,然后对新的游客进行打标,打标之后可以对游客进行分类,针对这个分类从已有的分类里面取top值,这样就完成了对新游客的推荐。
步骤 | 内容 |
---|---|
1 | 获取游客和景点的数据,包括游客和景点的关联信息; |
2 | 轮询用户,生成当前矩阵和共现矩阵; |
3 | 轮询所有景点,利用已经生成的共现矩阵进一步计算景点之间的相似度 |
4 | 生成推荐结果。 |
致谢
略
参考文献
略