基于云服务器的云南民族文化旅游信息推荐系统

2020-12-23 06:57杨萍
微型电脑应用 2020年11期
关键词:时效性

杨萍

摘 要:通常的推荐系统不能满足游客的个性化需求,尤其是民族文化旅游因其信息量大、游客需求类型多,当前的旅游信息推荐系统很难满足其时效性。针对云南民族文化旅游实际情况,设计了旅游信息推荐算法,采用云服务器、MVC模式开发了旅游信息推荐系统。该系统能够通过客户信息、偏好规划处最佳旅游路线,并实现旅游消息推送。与大型网站推荐的旅游攻略相比,该系统时效性强,能够为游客提供更加合理的旅游路线。

关键词:推荐算法;MVC模式;云服务器;时效性

中图分类号:TP 391

文献标志码:A

文章编号:1007-757X(2020)11-0033-03

Abstract:The general recommendation system cannot meet the personalized needs of tourists, especially for the large amount of information and many types of tourists' needs. The current tourism information recommendation system is difficult to meet its timeliness. According to the actual situation of Yunnan ethnic culture tourism, this paper designs a tourism information recommendation algorithm, and develops a tourism information recommendation system using cloud server and MVC mode. The system can push the best travel route through customer information and preference planning. Compared with the tourism strategies recommended by large-scale websites, the system has strong timeliness and can provide more reasonable tourism routes for tourists.

Key words:recommendation algorithm;MVC mode;ECs;timeliness

0 引言

推荐系统广泛应用于互联网的内容社区、搜索引擎以及电子商务等领域,它在项目特性和用户特性的基础上面向客户需求提供所需的项目,双向提高了企业和用户的效率[1]。但是,当前大众化的推荐系统很难完全满足旅游行业的需求,首先,很难捕捉到完整的用户信息,向客户精准推荐合适的项目;其次,用户需求个性化特征明显、需求各异,难以进行多维度项目匹配;最后,旅游项目的多样性使得推荐结果难以全面满足客户需求。旅游推荐系统必须基于适用于旅游业的专业算法进行开发,由算法给出的结果来确定最适宜的旅游行程,并通过客户端与用户进行需求与结论的交互,以此来提高旅游推荐系统的有效性和多样性,最大限度地简化游客的准备环节并满足其个性旅游的需求[2]。

1 旅游推荐系统整体设计

本系统的设计主要围绕以下几点展开:创建用户兴趣集;求解模型后针对用户为景点评分;使用户能够直观地选择景点;按照景点的推荐结果基于专业算法为用户提供最合理的行程规划。此外,基于本系统开发了用户客户端。

1.1 系统结构设计

本系统主要包括数据库、客户端以及云服务器三个部分。用户和景点的信息存储于数据库中,客户端为用户提供查询服务和可视化信息,云服务器的主要作用是整合各种信息与客户端输入的需求以完成景点和行程推荐。系统结构及各部分工作流程,如图1所示。

1.2 推荐算法设计

系统推荐算法主要包括3个过程。

步骤1:创建用户兴趣集,并基于该集建立推荐项目模型;

步骤2:以项目景点为主题,分为静态(地理位置、游客评价等)和动态(是否适宜出行)两个部分进行评分,使用户能够直观地选择目的地;

步骤3:结合游客的出发地和计划出行时间为其推荐最合理的行程规划,划分出同批出行的旅客及其出行路线。

1.3 服务器架构

云服务器由HTTP服务器、后台管理系统和数据库三个部分组成,其整体架构及各部分工作流程,如图2所示。

HTTP服务器接收客户端用户通过网络所输入的需求信息,并依据这些信息创建用户模型,基于推荐算法为客户进行出行规划;后台管理系統用于企业对用户、景点的信息进行即时更新;上述信息全部存储于数据库中。

2 客户端功能设计与实现

推荐系统通过客户端面向客户提供可视化服务,其功能完善性极其重要。

2.1 整体功能设计

客户端由6个模块组成,如图3所示。

基本信息模块,包括用户认证信息、用户输入信息、用户旅行记录等;路线规划模块,为用户提供地图导航、路线规划、路线更改、特色景点与商户推荐等智能服务;消费模块,为用户提供就餐下榻地点预定、门票预定、商品团购等增值服务;信息推送模块,向用户提供定位、天气信息、商品优惠等信息推动服务;行程模块,记录用户的历史行程、服务评价等信息;发现模块,用于用户出行体验的分享、交流等。

2.2 客户端关键功能设计与实现

推荐系统的功能主要依靠基本信息、路线规划和行程三个模块得以实现。

(1) 基本信息模塊

用户认证的过程中需要填写真实姓名、出生日期、性别、联系方式等信息并设置登录密码,此外,系统支持多种登录方式供用户选择,包括用户名密码登录、

证码登录以及第三方软件(微信、QQ等)登录等[3]。此外,用户可以根据需要绝对是否保存已出行行程,以供日后出行参考。

(2) 路线规划模块

用户需要通过推荐系统所获取的信息,最主要的部分都来自于路线规划模块,该模块由输入和显示两个部分构成。输入部分的主要内容是用户根据实际需要所录入的行程持续时间、出发地、目的地、经费预算等信息。客户端输入部分用户的输入程序实现流程[4],如图4所示。

显示部分的主要内容是客户端向用户反馈的旅行路线推荐结果,这些结果用户可选择通过列表显示,也可以选择通过地图显示。

路线推荐并以列表或地图展示实现过程的关键代码如下。

<!—路线推荐列表-->

android:id="@+id/LinearLayout01"

android:layout_width="fill_parent"

android:layout_height="wrap_content"

android:background="@drawable/ydg_top_bg">

android:id="@+id/explvrouteinfo"

android:layout_width="match_parent"

android:layout_height="wrap_content">

public View GetGroutView(int groupPosition,boolean isExpanded,

View convertView,ViewGroup parent){

View view=convertView;

if(view=null)

view=inflater.inflate(R.layout.item_route,null);

TextView remNum=(TextView)view.findViewById(R.id.recommendrum);

……

public View getChildView(int groupPosition,int childPosition,

boolean isLastChild,View convertView,ViewGroup parent){

View view=convertView;

if(view=null)

view=inflater.inflate(R.layout.listview_routespot,null);

//选中路线时定位到地图上

view.setTag(routes.get(groupPosition));

ListView listView=(ListView)view.findViewById(R.id.routespotlist);

SpotInfoAdapter adapter=new SpotInfoAdapter(activity,

routes.get(groupPosition).getSpotInfo(childPosition),childPosition);

listView.setAdapter(adapter);

(3) 消息推送模块

系统后台通过该模块向用户提供旅行中所需的位置信息、天气信息、商品优惠信息等,属于贴心服务项目,能够增强用户的旅行体验。

其中,位置信息推送对于旅行中的客户尤为重要,通过这些消息用户能够随时了解整个行程的详细信息,其实现流程,如图5所示。

消息推送过程实现的关键代码如下。

//开始定位

public booIean startLocationProvider(IMyLocationConsumer myLocationConsumer){

mMyLocationConsumer=myLocationConsumer;

booIean result=false;

for (final String provider:mLocationManager.getProviders(true)){

if(LocationManager.GPS_PROVIDER.equals(provider)

||LocationManager.NETWORK_PROVIDER.equals(provider)){

result=true;

mLocationManager.requestLocationUpdates(provider,mLocationUpdateMinTime,

mLocationUpdateMinDistance,this);

……

mMapView.getTileProvider().getTileSource().getTileSystem();

final float radius=lastFix.getAccuracy()

/(float)tileSystem.GroundResolution(lastFix.getLatitude(),

mapView.getZoomLevel());

mCirclePaint.setAlpha(50);

mCirclePaint.setStyle(Style.FILL);

canvas.drawCircle(mMapCoords.x>>zoomDiff,mMapCoords.y>>zoomDiff,

radius,mCirclePaint);

mCirclePaint.setAlpha(150);

mCirclePaint.setStyle(Style.STROKE);

canvas.drawCircle(mMapCoords.x>>zoomDiff,

radius,mCirelePaint);

3 系統应用测试

行程规划功能是整个推荐系统的核心功能,系统测试主要围绕规划功能展开。从携程网站摘选50篇关于云南昆明市的详细旅游攻略、手记,创建包含行程距离、耗时等因素的数据集,对其中的景点进行多维度综合评分。具体测试过程为:1) 由每篇攻略中筛选出景点数量、景点间距、行程总距离、景点逗留时长、行程总时长等数据作为多维度评分因子;2) 对各景点进行多维度评分,得出优选景点推荐;3) 基于景点多维度评分结果,通过本文提出的推荐算法,得到推荐行程的结果;4) 基于推荐行程计算其时效比数值(景点观赏游玩时长/行程总距离);5) 对攻略行程和推荐行程的时效比进行比较分析。网上攻略与推荐行程中的旅游行程数据对比结果,如表1所示。

对两表中的时效比数值可见,本系统通过推荐算法所得出的推荐行程相较于攻略文章中所总结的行程在时间和距离上具有明显的优势。提取所有数据绘制成时效比曲线图能够更加清晰地体现攻略行程与推荐行程的差异,如图6所示。

在所选取的50条旅游行程攻略中,大多数本系统推荐行程的时效比数值都要高于原攻略,由此可见经过本系统推荐后游客能够在出行需求不变的情况下获得更佳的旅游体验。

4 总结

本文针对当前旅行出游的旺盛需求设计了一种旅游推荐系统,解决了大部分游客用户出行选择难的问题,该系统基于专业的旅游算法按客户意愿为其推荐最适宜的出行路线[5]。通过测试和实际验证,系统功能有效、时效性强能够帮助用户提前指定最合理的旅游规划。

参考文献

[1] 牛俊洁,崔忠伟,赵晨洁,等.个性化旅游推荐技术研究及发展综述[J].物联网技术,2020,10(3):86-88.

[2] 王萍,王明松.基于Hadoop的旅游景点推荐系统的设计与实现[J].信息与电脑(理论版),2020,32(4):86-87.

[3] 祁明明,马文明,单荣杰.基于循环神经网络的旅游地点推荐系统设计与实现[J].电子技术与软件工程,2020(1):184-185.

[4] 周家昊,李民.基于旅游用户数据和评论的推荐系统的设计[J].软件,2019,40(11):174-177.

[5] 李维.基于案例推理的浙江旅游智能推荐系统研究[J].中国集体经济,2019(32):124-126.

(收稿日期:2020.05.07)

猜你喜欢
时效性
《????》???? ?????? ????? ???如何提高“数学广角”课堂的时效性
浅议提高语文教学实效性策略
对加强高职院校党建工作实效性的思考
新时期高职学生社会实践时效性提高的路径选择
高校英语教学实效性提升策略分析
提高初中语文课堂时效性的策略初探
提高高中数学课堂时效性的教学策略
开展高中语文综合性学习探究
贯彻陶行知教育思想加强师德建设的研究
浅议网络文化视域中高校思想政治教育时效性