基于MUI框架乡村旅游APP的设计与实现

2019-11-14 08:17陈瑞志王培锦胡瑞鑫郑浩荣林文麒刘永鹏
软件 2019年9期
关键词:旅游景点景点旅游

陈瑞志 王培锦 胡瑞鑫 郑浩荣 林文麒 刘永鹏

摘  要: 针对农村旅游市场需求,研究了基于MUI框架的农村旅游应用程序的设计与实现。重点介绍了基于用户的旅游信息过滤算法,以推荐用户感兴趣的旅游信息,并通过python编程实现。最后,描述了软件实现的全过程。

关键词 MUI框架;旅游APP;推荐算法

中图分类号: TP311.52    文献标识码 A    DOI:10.3969/j.issn.1003-6970.2019.09.005

本文著录格式:陈瑞志,王培锦,胡瑞鑫,等. 基于MUI框架乡村旅游APP的设计与实现[J]. 软件,2019,40(9):23-26

Design and Implementation of App For Rural Tourism Based on MUI Framework

CHEN Rui-zhi, WANG Pei-jin, HU Rui-xin, ZHENG Hao-rong, LIN Wen-qi, LIU Yong-peng

Cunjin college of Guangdong ocean university Zhanjiang Guangdong 524094)

Abstract: Aiming at the market demand of rural tourism, this paper studies the design and implementation of rural tourism App based on MUI framework. Emphasis is laid on the user-based filtering algorithm to recommend tourism information that may be of interest to users, which is implemented by Python programming. Finally, the whole process of software implementation is described.

Key words: MUI frameworv; Tourism APP; Recommendation algorithm

0  引言

“互聯网+”时代的到来,各种功能各异,内容丰富的手机APP得到开发和应用,正在满足人们对工作、学习、生活、娱乐等各方面的需求。近年来我国推行一系列发展乡村旅游的政策,积极开发农渔林产业的旅游功能,把乡野生态休闲、自然旅游观光、传统民俗民乐文化、民族特色、红色革命历史背景、乡村劳作体验等,打造形式多样、特色鲜明的乡村旅休闲项目[1]。据相关统计2017年中国乡村旅游达25亿人次,乡村旅游已成为新时代乡村经济发展新的增长点[2]。乡村旅游高速信息化和随时随地获取旅游相关资讯等,已经成为自助游者的迫切需求,所以基于Android平台的乡村旅游APP的开发有了日益广泛的使用环境[4],智慧旅游成为研究热点[5-12]。比如文献[5]从智能医疗管理方面,研究基于Android软件设计方案;文献[6]中描述了利用Android移动设备管理系统,实现对相机、蓝牙、WIFI、恶意应用等可能造成敏感数据泄露的设备功能的管控;文献[9]中描述了构建基于三层架构模式的智慧旅游系统设计体系;王艳军等[12]研究面向服务架构的智慧旅游系统建设方法。

当前的出行旅游APP的服务范围都是局限于出名的景点,对于一些不太出名,但是景色秀丽、空气清新、人流量少的乡村却是鲜无人知。本文主要针对乡村旅游景点,开发一款乡村旅游APP,让驴友们能够通过该平台,得到更及时的乡村旅游资讯,感受当地的风土人情;也让更多的乡村景点呈现在大家的视野;帮助当地群众更好地利用自身地理优势脱贫,该APP地图将景点和周边的资源进行关联,方便游客全身心的体验度假的乐趣;还能够对景点旅游人数进行统计分析,对旅游人数过多的景点预警提醒,保护旅游体验和生态环境,做到循环生态旅游。

1  需求分析

通过调研分析发现人们旅游费用成本,时间精力消耗,景点环境、舒适性、便利性等,是旅行者重要考虑的影响因素。通过城市周边的乡村旅游为用户提供价廉、优质的郊区农村旅游项目,让旅游者悠闲享受优美的田园风光的同时,可以参加采摘园、爬山、钓鱼、民宿、农家乐、年例等乡村生活体验。

另外,乡村旅游应注重保护、传承和弘扬乡村文化、民俗、非物质文化遗产、特色美食等,以更加丰富的乡村旅游产品和更加优美的旅游环境,让旅游者体验乡村文化,浏览山川等自然美景,体验乡村生活。

因此,设计实现一款城市周边旅游观光,体验农渔林自然风光、减少城市生活压力的返朴归真的乡野生活的APP,既能导航、预定住宿、饮食、景点推荐等,又能预定当地绿色有机农产品,享受绿色健康、价格低廉的当地吃、住、行、玩、乐等集于一体的良好服务。

2  软件系统设计

根据前面需求分析,设计了一款相应的应用软件,下面主要从功能设计、UI设计、数据库设计等方面来描述其设计的过程。

2.1主要功能设计

用户提供购买特产,查看旅游攻略,浏览商品,民宿预定,购物车和在线订票等功能。用户操作功能包括以下内容:修改自身信息、查看订单、购买、订单管理、留言反馈等功能。具体功能如下:

个人中心:包括用户注册、登录、查看订单、个人信息维护、联系客服等功能。

特色购物:当地特产信息浏览、查询、购买等,包括特色农产品采购、新鲜蔬果采摘等信息的推荐及提交订单等。

当地美食:美食推荐、名店推荐、美食攻略、美食点评等相关功能。

景点游玩:景点查询及推荐、门票信息查询及购买、旅行攻略信息分享等功能。

民宿客栈:民宿信息浏览、查询、旅游信息推荐、点评等功能。

主题游:旅游线路规划、制定、推荐以及百度地图关联等功能。推荐旅游景点信息使用景点推荐算法实现。

2.2基于用户的协同旅游信息过滤算法

数据源来自Scrapy框架爬虫,从网络上爬取乡村旅游信息保存到MySql数据库中,以Django搭建的网站作为载体,利用REST fromwork开发API接口,通过ORM映射获取数据库数据对象,应用基于用户的协同过滤算法,分析推荐用户与其他用户的兴趣爱好,过滤不相关的用户,筛选出与推荐用户相似度较高的用户集合,分别计算集合中推荐用户没旅游过的景点的期望评分,最后通过对评分排序进行个性化推荐。

共同兴趣爱好的旅游者,可以理解為用户之间喜好的相似度,事实上在用户基数比较大的情况下,要给某个用户推荐[5],可以先用余弦相似度、欧氏距离或皮尔逊相关系数去量化该相似度,然后筛选出相似度大于阙值的集合,对集合的每个相似度与评分等参数做期望计算,取平均期望最高的前n个物品推荐给该用户,如计算公式(1)所示。

皮尔逊相关系数公式:

皮尔逊系数主要用于度量两个变量之间的相关(线性),根据统计学的定义,皮尔逊相关系数等于协方差和标准差的商,取值在[-1,1]之间,等于零表示不相关,一般认为大于0.1具有线性相关性,采用皮尔逊相关系数来衡量用户的相似度。算法流程如图1所示。

2.2.1  推荐模块设计

功能描述:推荐模块主要由排行榜和推荐功能两个部分组成,排行榜解决推荐系统启动之初的冷启动问题,为推荐功能做铺垫,推荐则是最终达到的目标,向用户提供个性化推荐。

运行流程:在排行榜页面或首页显示评分靠前的旅游景点,引导用户进入详细页面进行收藏和评分。通过分析与被推荐用户有关联的用户收藏和评分数据,向用户进行个性化推荐,流程如图2所示。

2.2.2  推荐模块实现

推荐功能算法依赖收藏、景点的位置、特色、美食、交通等以及评分、排行榜等因素[9],排行榜是通过从旅游评价信息中评分最高的前n个旅游景点,进行倒序排序。推荐部分使用基于用户的协同过滤算法,筛选出评分大于某个分数,并且收藏过的旅游信息记录,生成透视表,再用皮尔逊相关系数公式去计算其相似度,把相似度高的用户数据进行旅游景点评分的期望计算,最后按降序推荐给用户。

算法实现过程和关键代码:

第一步,获取用户评分数据,转换成相应的数据结构。

data = Score.objects.values('s_uid','s_bid','score') #获取数据

list = []

#筛选出评分>6.0并收藏的记录

for obj in data:

length=len(Bmark.objects.filter(m_uid=obj.get ('s_uid'),   m_bid=obj.get('s_bid')))

if length > 0 and obj.get('score') > 6.0:

list.append(obj)

ratings = pd.DataFrame(list) #转成dataframe

ratings_pivot = ratings.pivot(index='s_uid', columns='s_bid',values='score')  #形成一个

第二步,对数据进行求相关性系数计算,过滤行列都为空的数据,即过滤不相关的数据。

corr = ratings_pivot.T.corr(min_periods=max/2)

corr_clean = corr.dropna(how='all') #过滤行,全为NaN的数据。

corr_clean = corr_clean.dropna(axis=1, how='all') #过滤列

第三步,筛选出与推荐用户有关联的用户(系数大于0.1)。

gift = ratings_pivot.ix[uid]

gift = gift[gift.isnull()]  # 现在 gift 是一个全空的序列

corr_uid = corr_clean[str(uid)].drop(str(uid))  # 推薦用户与其他用户的相关系数 Series,不包含自身

corr_uid = corr_uid[corr_uid > 0.1].dropna()  # 筛选相关系数大于0.1的用户

第四步,从这些用户中筛选出推荐用户没浏览过旅游景点,用它们的相关系数对每个旅游景点评分进行计算,得出平均期望分数,将这些分数按降序排列推荐给用户。

for jd in gift.index:  # 遍历所有没浏览过的旅游信息

pre = []

for other in corr_uid.index.astype(np.int64): # 遍历相关系数大于 0.1 的用户

if not np.isnan(ratings_pivot.ix[other, jd]):

pre.append((ratings_pivot.ix[other,jd], corr_clean[str(uid)][str(other)]))

if pre:

gift[jd] = sum([value * weight for value, weight in pre]) / sum([pair[1] for pair in pre])

bids =gift.dropna().sort_values(ascending=False) [:10]#将gift 非空元素按降序排列[4]

2.3手机APPUI设计

手机APP分六大模块:个人中心、特色购物、当地美食、景点游玩、民宿客栈和主题游。将乡村旅游景点及其服务资源做成一条龙的服务:吃、住、行、游、购、娱等旅游行业的六个核心。基于MUI前端框架,最接近原生APP的高性能框架,界面风格也接近安卓原生APP,人机交互强,运行起来比较流畅。

首页使用幻灯片加六宫格的样式,每一个宫格对应一个功能,幻灯片一张图片包含一个商品信息,如图3所示,根据用户权限,使用的功能会有所不同,显示内容也会有所不同,比如普通游客不能下订单,旅行项目查询和订单页面如图4-5所示。每个功能以卡片的形式展现出来,再加入相应的UI控件,点击按钮触发事件,执行事件代码比如跳转至对应子页面或修改当前信息。使用Ajax技术让前台与后台信息交互,向服务器发送请求并且响应操

作信息,而且Ajax可以跨平台使用,方便开发者开发,减少开发消耗的时间,降低代码模块间的耦合度,提高代码的复用性。

2.4数据库设计

使用MySql数据库,结合jsp和servlet开发后台系统,后台同时处理多个用户请求,数据量较大,查询内容多,对数据库压力较大,通过使用地址池缓冲,限制线程数量,有效控制数据库过载压力,性能可以得到保证,可以及时响应信息。

3  结束语

本文设计的乡村旅游app,基于MUI前端框架的旅游app的设计与实现过程,让用户在使用软件时可以体验到原生APP的感觉,而且开发员也可以一套源码在多个终端运行,开发成本低,APP开发周期时间短,更新便捷,跨平台,兼容性强等优势可以让本APP在各平台广泛的应用。

参考文献

  • 中共中央 国务院关于加大改革创新力度加快农业现代化建设的若干意见[J]. 广东合作经济. 2015-02-28
  • 彭先群. 央视《美丽中国乡村行》节目问题与对策研究[D]. 长沙: 湖南大学, 2017-10-10
  • 邵猛. 基于Android的自助游移动平台应用设计与开发[D]. 南京: 南京邮电大学, 2016-11-18
  • 彭晋. 基于模范用户的协同过滤算法研究[D]. 重庆大学. 2010-04-01
  • 闫学顺, 王景晖, 张俊杰. 基于Android的智能医疗管理软件设计方案研究[J]. 软件, 2018, 39(7): 33-36
  • 王亚东, 雷灵光, 周健等. Android 移动设备管理系统的设计与实现[J]. 软件, 2016, 37(02): 11-16
  • 葛晓滨, 章义刚. 智慧旅游系统的技术框架及其主要应用技术分析[J]. 皖西学院学报, 2014, 30(2): 32-35.
  • 徐翔, 王煦法. 协同过滤算法中的相似度优化方法[J]. 计算机工程, 2010, 36(6): 52-54.
  • 石红姣. 基于三层架构的智慧旅游系统设计与实现[J]. 商洛学院学报, 2018, 32(4): 14-18
  • 宋璐璐. 基于互联网的智慧旅游发展战略研究[J]. 自动化与仪器仪表, 2018(1): 37-39.
  • 张凌云. 智慧旅游: 个性化定制和智能化公共服务时代的来临[J]. 旅游学刊, 2012, 27(2): 3-5.
  • 王艳军, 路立娟, 李朝奎. 面向服务架构的智慧旅游信息系统的设计与实现[J]. 测绘通报, 2014(9): 108-111.

猜你喜欢
旅游景点景点旅游
打卡名校景点——那些必去朝圣的大学景点
英格兰十大怪异景点
没有景点 只是生活
旅游景点介绍的文体分析
出国旅游的42个表达
户外旅游十件贴身带