基于游客好奇心的旅游信息推荐系统

2021-04-29 08:40刘娜
微型电脑应用 2021年4期
关键词:景点旅游算法

刘娜

(陕西工业职业技术学院 财经与旅游学院, 陕西 咸阳 71200)

0 引言

随着我国旅游市场的逐渐扩大,景区、景点层出不穷,增加了游客在海量旅游信息中的筛选难度[1]。因此,设计一款按照游客兴趣进行主动推荐的旅游信息系统十分必要,能够极大程度为游客服务。推荐系统的核心为推荐算法,例如在各个领域都有广泛应用的上下文感知推荐算法、协同过滤推荐算法、混合推荐算法和兴趣点算法等[2]。但现有算法各自的缺点也十分明显,不适合旅游信息的推荐。因此,本文结合游客好奇心设计一种个性化推荐算法,并开发旅游信息推荐系统,以期为游客提供更好的旅游信息服务。

1 个性化推荐算法设计

由于游客评分、景点信息、访问记录等信息数据量庞大,本设计采用爬虫技术从旅游及景点相关网站上爬取数据。经过数据分析发现,不同游客访问景点的分布具有很大差异,访问时期也存在差异。结合游客兴趣将其分为三种,即兴趣单调游客、兴趣多样性游客和兴趣变化游客。其中,兴趣单调游客喜欢景点的类别比较单一,大多旅游目的地都是该类景点,具有固定兴趣点;兴趣多样化游客喜欢的景点类别多样,分布差别不大,也属于固定兴趣点的游客;兴趣变化游客会随着时间改变访问景点,兴趣变化存在很大不确定性,难以预测。

由此可见,无论是按照游客兴趣点还是群体进行推荐算法设计,都不能对游客情况进行很好地描述。因此,本设计引入游客好奇心作为描述游客情况的特征参数,利用新颖度分布来描述好奇心,能够有效解决游客兴趣点不确定的问题。经过调查分析,新颖度高的景点类型被游客选择次数明显高于其他,说明游客对该类景点具有很大好奇心。因此,针对兴趣固定的游客推荐新颖度低的景点,对兴趣不固定的游客推荐新颖度高的景点。

本设计将游客历史行为转化为可描述好奇心的新颖度公式,设计推算算法流程,如图1所示。

步骤一:新颖度分布构建,通过游客历史访问记录得到游客所去景点的新颖度,经过统计得到游客新颖度选择分布情况,即游客好奇心。

图1 推荐算法流程

(1)

(2)

最后,建立新颖度计算式,如式(3)。

(3)

步骤二:构建新颖度区间分数。每个游客的新颖度选择分布存在一定的差异,可依据分布情况计算景点的新颖度个性化推荐分数,以描述游客好奇心与景点的匹配程度。

步骤三:集合协同过滤分数和个性化推荐分数生成景区推荐列表。其中,协同过滤分数可描述游客度对景点的评分,个性化推荐分数可描述游客对该类景点的倾向,两者结合即可得到推荐策略。

2 推荐系统设计与实现

旅游信息推荐系统按照层级结构进行设计,分为四个层次,即业务应用层、模型层、数据处理层和数据采集层,如图2所示。

图2 推荐系统架构

2.1 数据采集层

数据是推荐系统的基础,因此系统首先要对网络数据进行大量地采集。本系统采用python语音实现分布式爬虫功能,抓取互联网上的网页信息。通过与旅游相关类网站的特定连接,实现对HTML信息的获取。系统使用xpath网页解析包对HTML网页阶段进行数据发现,通过内容节点来锁定数据路径,最终获得海量旅游相关数据流程,如图3所示。

图3 数据采集实现流程

2.2 数据处理层

数据采集完成后需要按照特定需求对数据进行处理,使其能够运用到模型层和业务应用层。数据处理层分为数据清洗和存储两个部分。其中,数据清洗是删除不属于景点的一类信息,如没有相关描述的小景点数据(缺乏项目介绍),或者不属于景点的数据,如酒店、洗浴等信息。以此来提高推荐的准确度。此外,数据清洗还要删除游客访问记录中不属于国内的景点信息。

完成数据清洗后将数据存储到系统的Postgre数据库中,通过该数据库的外键设置完成对某些数据重要属性的限制,并利用SQL语言对其进行操作,最后按照属性不同生成景点列表和用户访问列表。景点列表主要记录了景点信息,如景点介绍、所处省份、城市等。用户访问列表是推荐系统的主要数据来源,通过自增加ID作为主键,包括用户ID、景点评分、访问时间、景点名称等,如图4所示。

图4 数据处理实现界面

2.3 模型层

该层主要是利用上文设计的推荐算法对数据进行计算,实现旅游信息的主动推荐功能。该层与系统数据库进行协调工作,提取推荐算法和景点分类的数据,最终得到推荐结果,如图5所示。

图5 推荐列表实现过程

景点分类部分,首先提取景点描述分词,筛选出关键词后构建词向量,输入至分类型进行可能性计算,最后得到分类结果。将结果按照顺序进行排列并增加ID主键后,更新至景点列表中。利用前文的推荐算法对新颖度分布进行计算,结合协同过滤得到推荐结果列表。

2.4 业务应用层

业务应用层主要展示系统的推荐结果,该层框架采用Django框架进行设计,方便网站后期的维护和安全,采用Python语言编写,该设计方法不受特定服务器平台的限制,可使该系统作为一个模块融入到旅游网站现有的平台中,可为更多旅游信息网站进行服务。该系统与某智慧旅游网站融合后的推荐结果,如图6所示。

图6 旅游信息推荐系统用户页面展示

3 系统应用对比

为了验证本文设计的旅游信息推荐系统的有效性和优越性,选择三种主流的旅游信息推荐系统进行对比,分别为基于用户协同过滤的旅游信息推荐系统(系统A)[3]、基于景点标签的旅游信息推荐系统(系统B)[4]和基于景区内容的旅游信息推荐系统(系统C)[5]。采用爬虫技术收集携程网上的用户历史访问记录,包括用户ID、景点名称、访问时间和评分,共计320万条记录,其中包括61 284个景点和41 368个用户。将该系统与三种主流系统的推荐结果进行对比,分布比对推荐准确率、用户召回率和景点覆盖率。对比过程中,将近邻数作为控制变量,通过改变用户推荐时使用的近邻个数来比对不同系统的推荐效果。

推荐准确率、用户召回率和景点覆盖率对比结果,如图7—图9所示。

图7 推荐准确率对比结果

由图7—图9可知,各系统准确率随着近邻数的增加都有所提升,在近邻数相同的情况下本文设计的系统准确率更高,即使在近邻数较小的情况下本系统的推荐准确率也明显高于其他系统。各系统的用户召回率随着近邻数的增加而增大,即用户可能感兴趣的景点所得分数越高。各系统景点覆盖率随着近邻数的增大而有所降低,这是因为用户访问的景点大多为热门景点,推荐过程中会向流行度较高的景点靠拢,导致冷门景点覆盖率降低。对比结果发现,本文系统无论是在近邻数较小还是较大的情况下,均有不错的表现,具有一定的优势。

图8 用户召回率对比结果

图9 景点覆盖率对比结果

4 总结

针对当前推荐系统的问题,提出了基于游客好奇心行为的旅游信息推荐系统。该系统将景点游客访问频率和时间间隔作为构建参数,设计了新颖度计算公式来反映游客好奇心,并将该算法融入到推荐系统中。该系统结合爬虫技术爬取互联网中旅游相关信息,通过数据清洗和存储利用推荐算法生成推荐结果,在业务应用层直观地展示给游客。经过与三种主流的旅游信息推荐系统对比可知,本文系统在推荐准确率、用户召回率和景点覆盖率方面均存在一定的优势。该算法及系统设计为旅游信息推荐方式的研究提供了参考。

猜你喜欢
景点旅游算法
基于MapReduce的改进Eclat算法
Travellng thg World Full—time for Rree
进位加法的两种算法
打卡名校景点——那些必去朝圣的大学景点
旅游
英格兰十大怪异景点
一种改进的整周模糊度去相关算法
没有景点 只是生活
景点个股表现
出国旅游的42个表达