当前位置:首页 期刊杂志

基于SSM框架的旅游大数据分析系统设计与实现

时间:2024-05-18

刘方磊

(河南工业大学,河南 郑州 450000)

旅游业是我国经济发展的支柱产业之一。2023年旅游市场迅速复苏,落实有关旅游的云、大数据技术,加快数字化转型将成为中国旅游业发展的一个重要方向。该系统是一款基于SSM框架的旅游大数据Web应用来满足旅游行业的需要[1],利用大数据和数据可视化分析以及机器学习等技术,为旅游管理部门、旅行社、旅游景区和游客提供更深入、更精准的发展研究和决策支持,促进旅游市场的创新和升级。

1 系统的开发环境及整体架构

1.1 系统的开发环境

该系统采用MySQL作为底层数据库,通过Spark进行流数据处理,并采用ARIMA的机器学习算法实现数据处理和数据预测等功能,通过SSM框架和Vue框架相结合的前后端分离开发模式和多种可视化手段来完成数据可视化分析,通过主流的Tomcat、Redis和Nginx部署生态实现项目部署。

系统开发环境见表1。

表1 大数据平台开发环境

1.2 系统整体架构及功能

该系统整体设计包括以下5层:1)数据源层。入境游客数据、旅游社外联接待游客数据、饭店出租率和房价数据、景点评论和热度数据、入境客源国数据。2)数据访问层。在数据访问层中,需要完成数据查询、数据插入、数据更新以及数据删除等操作。3)业务层。在业务层中,需要完成查询来源国别分类、接待人数变化情况、入境游客以及增长率变化情况、统计过夜人数比等功能。这需要通过编写业务逻辑代码实现,如使用Java等语言进行编写。4)接口层。在接口层中,需要提供来源国数据变化接口、旅游接待人数接口、外联数据接口等功能。这可以使用RESTful API 进行实现,通过使用Spring Boot等框架进行快速开发。5)表现层。在表现层中,需要使用折线图、饼图、地图等可视化功能,将数据处理后以直观的形式展现给用户。可使用JavaScript、Vue等语言进行编写,使用D3.js和Echarts等数据可视化插件进行快速开发。该系统主要功能如图1所示。

图1 系统主要功能

通过主要功能图可以对项目具体技术及难度进行预期。在底层数据库中,对静态数据只需要将数据进行一次基本的数据清洗和预处理就能库很好地保存数据;在数据呈现方面,对简单的词云、折线图和柱状图等,可以在后端采用相对简单和模板化的方法对数据库的对应字段进行调用,然后通过接口返回前端,在前端通过网上开源的图表模板就相对容易实现,而通过Spark对爬虫实时爬取的数据进行处理和采用机器学习算法对未来数据进行预测是该系统的重点实现目标。

2 系统重点功能的设计与实现

2.1 Spark对流数据的处理

Spark在大数据应用开发中被广泛使用,其中,Spark Streaming利用Spark的内存计算能力和分布式处理模型,能够在实时数据流中进行数据处理和计算。基于云环境部署的Spark Streaming追求2个优化目标,即最小化端到端响应延迟和资源使用成本[2]。

在该系统中使用Spark Streaming技术对爬虫实时数据进行处理。爬虫爬取的数据格式默认每条包括景区名、地点、评论者身份、评分和详细评价5个字段,每个字段通过1个Tab键隔开。将通过代码设计对爬虫数据进行字段分隔、数值去空,按地点归类后再将景区信息按评分使用线性回归模型让不同身份游客的景区评分计算最终评分[3],然后根据总评分进行排序的功能,最后即可作为实时的源数据保存到数据库中。

根据游客的身份不同,采用线性回归模型如公式(1)所示。

式中:y为因变量,是希望求出的评分数据目标值;β0为截距,是线性回归模型在所有自变量都取0时的y的预测值;x1、x2…xn为自变量,在该系统中是游客的不同种身份;β1、β2…βn为自变量的回归系数,表示不同自变量x1、x2…xn对因变量y的影响程度,它们衡量了每个自变量x的单位变化对因变量的影响。

根据公式设计算法的实现,其伪代码如下。

以上这段伪代码利用Spark Streaming的流式处理技术,通过JavaStreamingContext对象对实时数据流进行处理和分析。使用Spark的DStream抽象,对数据流进行连续操作与转换,对爬虫爬取的网络数据流进行实时处理和分析,并按总体评分降序排序输出每个地点不同身份游客的评分信息。

2.2 机器学习算法对数据预测的实现

ARIMA模型是一种经典的时间序列分析方法,它结合自回归(AR)、差分(I)和移动平均(MA)3个部分,对平稳或差分后平稳的时间序列数据进行建模和预测。在该系统中使用ARIMA模型算法实现对旅游人数数据的季节性预测[4]。下面是ARIMA模型的推导过程。

2.2.1 自回归(AR)部分

自回归模型用于描述当前值与过去若干个时刻的值间的相关性。AR模型如公式(2)所示。

式中:Yt为时间序列在时刻t时的观测值;c为常数偏移项,需要根据项目具体情况进行设置;p为自回归阶数,表示当前值与过去p个时刻的值相关;φi为自回归系数,表示第i个滞后时刻的影响权重;εt为误差项,表示模型中的随机部分。

2.2.2 差分(I)部分

差分用于使时间序列数据平稳化,即消除季节性和趋势性。平稳化后的数据具有恒定的均值和方差。差分的阶数d表示需要进行几次差分操作才能达到平稳。

2.2.3 移动平均(MA)部分

移动平均模型用于描述当前值与过去若干个预测误差间的相关性。MA模型如公式(3)所示。

式中:q为移动平均阶数,表示当前值与过去q个预测误差相关;θi为移动平均系数,表示第i个滞后预测误差的影响权重。

联立上述3个部分,ARIMA模型如公式(4)所示。

根据ARIMA模型公式设计算法的实现类,其伪代码如下。

该伪代码实现了ARIMA方法,用于时间序列数据的拟合和未来数据预测,通过差分操作使数据平稳化,并使用逆差分操作将预测结果转换为原始数据的预测结果,为用户提供时间维度的数据分析和预测功能。

3 系统实现

将以上关键代码整合到程序中,然后采用前后端结合的方式进行部署。用户登陆后页面分为3个部分:用户管理、源数据管理和可视化页面。在系统后台功能中,用户管理包括新增用户和用户列表。新增用户允许管理员添加新用户账户;用户列表则展示所有已经注册的用户信息。管理员可以进行查看、编辑和删除等操作。在数据展示功能中,展现了游客统计、住宿分析、舆情分析和旅游推荐4个不同的页面。游客统计部分采用飞线图直观地呈现了入境游客源的流向;入境游客分类饼图和入境游客同比增长柱状图,通过时间轴联动轮播,呈现更详细的数据;住宿分析部分,根据时间轴的轮播,展示当前的平均房价和入住率;酒店入住混合图、接待人数折线图、外联人数变化和过夜人数占比混合图等图表,呈现旅行社客源量以及酒店房价和入住率间的相关问题;舆情分析部分,用户不仅可以通过轮播内容查看所选地区景点评论和景区热度,还可以通过点击想要了解的区块切换轮播内容;旅游推荐部分,显示实时天气,不仅可以根据用户所选地区及天气情况,推荐景区以及相应的距离和通勤时间,还可以了解其他地区的景点和场馆信息,使用户更快捷地了解选择地区的旅游资源。

政府部门可以根据飞线图和词云了解客源流向、游客消费水平和类型等信息,更好地了解各国游客的喜好和需求,根据游客类别、同比变化趋势和游客数量预测图调整旅游宣传力度,提高旅游业的盈利空间,发掘旅游业的潜在机遇。

游客可以通过选择所在地区,获取该地区实时的景点评论和景区热度等数据,为选择目的地提供参考。游客还可以点击想要了解的区块来切换轮播内容,以获取更详细、全面的实时舆情信息。

4 结语

该系统底层采用MySQL数据库进行数据的存储,通过SSM框架集成Spark Streaming和ARIMA机器学习相关开发技术以及对有关企业开放API的调用,保证后端接口数据的实时性和便捷性,在前端采用Vue进行开发,依托Vue生态下丰富的图表实现,完成数据的可视化展示。随着大数据技术和人工智能技术的不断发展,模型还将得到进一步完善和优化。

免责声明

我们致力于保护作者版权,注重分享,被刊用文章因无法核实真实出处,未能及时与作者取得联系,或有版权异议的,请联系管理员,我们会立即处理! 部分文章是来自各大过期杂志,内容仅供学习参考,不准确地方联系删除处理!