[发明专利]一种基于知识图谱与蚁群算法的旅游路线推荐方法有效
申请号: | 202110342236.3 | 申请日: | 2021-03-30 |
公开(公告)号: | CN113112058B | 公开(公告)日: | 2023-07-18 |
发明(设计)人: | 王磊;郑伟 | 申请(专利权)人: | 西安理工大学 |
主分类号: | G06Q10/04 | 分类号: | G06Q10/04;G06Q50/14;G06F16/29;G06F16/36;G06F16/9536;G06F16/9537;G06N3/006 |
代理公司: | 西安弘理专利事务所 61214 | 代理人: | 宁文涛 |
地址: | 710048 陕*** | 国省代码: | 陕西;61 |
权利要求书: | 查看更多 | 说明书: | 查看更多 |
摘要: | |||
搜索关键词: | 一种 基于 知识 图谱 算法 旅游 路线 推荐 方法 | ||
1.一种基于知识图谱与蚁群算法的旅游路线推荐方法,其特征在于,具体按照如下步骤实施:
步骤1,构建旅游知识图谱;具体为:
步骤1.1,获取各个旅游出行网站上的景点数据,获取信息包括景点名称、景点级别、景点评分、景点地址、景点开放时间、景点官方网址、景点官方联系方式、景点参考用时;
步骤1.2,将步骤1.1从各个旅游出行网站获取到的多源数据通过Python中Synonyms中文近义词工具包进行融合,首先两两判断不同网站景点数据集中的景点名称是否相似,假设从网站1与网站2获得了相对应的数据集1与数据集2,从数据集2中取一个景点数据S1,将其景点名称与数据集1中所有景点的景点名称进行相似度比较,若相似度值都小于0.7,说明数据集1中不包含景点数据S1,将景点数据S1的所有数据并入数据集1中,包括景点名称、景点级别、景点评分、景点地址、景点开放时间、景点官方网址、景点官方联系方式、景点参考用时,若相似度值大于0.7,假设景点数据S1的景点名称与数据集1中景点数据P1的景点名称计算相似度后相似度值大于0.7,说明S1与P1是一个景点,然后比较S1与P1的景点属性,景点属性就是指景点级别、景点评分、景点地址、景点开放时间、景点官方网址、景点官方联系方式、景点参考用时,依次从S1中取出一个景点属性与P1的所有景点属性进行相似度比较,若相似度大于0.7,则不进行操作,若相似度大于0.7,则将该属性补充入P1,并补充该属性所对应属性值,这里的属性值指的是景点属性对应的数据,然后再从数据集2中取出景点数据S2重复上述步骤,以此类推,最后的数据集1融合了数据集2中的数据;
步骤1.3,对步骤1.2中融合好的景点数据,使用中文通用百科知识图谱CN-Dbpedia中的API“api/cndbpedia/value”获取景点的类型,其请求参数需要包括实体名称与属性名称,其中实体名称即为融合后数据集中的景点名称,属性名称为字符串“CATEGORY_ZH”,依次对融合后数据集中的景点调用API即可获得所对应的景点类型;
步骤1.4,将步骤1.3最终处理好的数据整理成三元组的形式,三元组形式为头实体,关系,尾实体,其中,头实体为景点名称,关系为景点属性,尾实体为对应属性值,景点属性即景点级别、景点评分、景点地址、景点开放时间、景点官方网址、景点官方联系方式、景点参考用时,属性值即其对应的数据;
步骤1.5,将步骤1.4中处理好的三元组存储入neo4j图数据库中,构成旅游知识图谱;
步骤2,获取用户游记数据集,对数据进行去噪,分词与景点匹配后得到最终有效的路线数据集;
步骤3,基于步骤1构建的知识图谱,将用户的历史数据作为兴趣起点在图谱中挖掘用户兴趣方向上的候选景点并获取候选景点的评分与参考用时;
步骤4,对步骤2获得的路线数据集进行预处理,计算景点间的转移率并建立转移率矩阵,具体为:
步骤4.1,计算景点间的转移率trans(vi),如公式(1)所示:
其中,count(vi-1,vi)为在所有的历史轨迹中连续访问景点vi-1和景点vi的次数,count(vi-1)为从景点vi-1发生转移的总次数;
步骤4.2,建立二维矩阵,行列均为所有候选景点,将转移率填入矩阵中,得到转移率矩阵;
计算景点在路线中的出现频率并制作景点频率表,具体为:
步骤4.3,计算景点在路线中出现的频率fre(vi),如公式(2)所示:
其中,num(vi)为在所有的历史轨迹中景点vi出现的次数,numallspot为所有景点出现的次数;
步骤4.4,建立一维数组,长度为候选景点数量且与景点名称一一对应,将景点频率填入数组,得到景点频率表;
步骤5,查询候选景点间的最短通行时间,建立通行时间矩阵;
步骤6,基于步骤3、步骤4及步骤5的数据,利用蚁群算法进行优化,得出最优解路线,将其作为结果推荐给用户;具体为:
步骤6.1,对蚂蚁算法的参数进行初始化,具体为:信息素重要程度因子α设置为1,启发函数重要程度因子β设置为2.0,信息素挥发因子ρ设置为0.5,信息素释放总量Q设置为100,蚁群规模u设置为候选景点的数量n,建立n×n的矩阵p_g记录景点之间的信息素且所有景点间路径的信息素设置为1,当前最优路线得分S初始为0;
步骤6.2,设定标模型为:
目标:路线得分S最大;
条件:路线总用时不大于用户最大时间限制Tmax;
建立单目标优化模型如下目标函数:
其中,value(vi)为景点对用户的价值度,其计算方法:
Ttraffic(vi-1,vi)是景点vi到景点vi-1的交通用时,Tvisit(vi)是景点vi的景点参考用时,Ttraffic(v0,v1)=0,grade(vi)为景点得分等级,其计算方法为公式(5):
其中,score(vi)为景点评分,ω1,ω2,ω3,ω4为调节参数,且ω1+ω2+ω3+ω4=1;
条件:
步骤6.3,初始化候选景点数量的蚂蚁,为每个蚂蚁分配一个不同的候选景点作为初始出发点,迭代次数置1;
步骤6.4,计算每个蚂蚁下一个访问景点,计算方式为遍历所有未访问的候选景点,计算其到访概率,到访概率计算方法为公式(6):
p(vi-1-vi)=pheromone(vi-1,vi)α*(ω1value(vi)+ω2fre(vi)+ω3grade(vi)+ω4trans(vi))β(6)
其中,p(vi-1-vi)为蚂蚁从景点vi-1到景点vi的到访概率,pheromone(vi-1,vi)表示vi-1到vi路径上的信息素浓度;
步骤6.5,基于步骤6.4,以轮盘赌的形式选择每一个蚂蚁下一个要访问的景点;
步骤6.6,步骤6.6,判断每只蚂蚁当前已走过的路径是否满足步骤6.2中的,若满足,则从步骤6.4开始重复操作,若不满足,则计算当前蚂蚁走过路径的得分S;
步骤6.7,当所有蚂蚁得出路线后,遍历每一只蚂蚁,与当前最优路线得分S进行比较,得出最大路线得分的蚂蚁,保存路线作为当前最优解;
步骤6.8,建立n×n的矩阵p_t记录单次迭代蚂蚁在路径上所留的信息素,遍历每只蚂蚁获得的路径,在p_t上填入信息素,信息素计算方式为公式(7):
p_t(vi-1,vi)=p_t(vi-1,vi)+QS (7)
其中p_t(vi-1,vi)为景点vi-1到景点vi路径上的信息素,不同蚂蚁间相同路径的信息素进行叠加;
步骤6.9,更新所有景点间的信息素,即更新p_g矩阵,更新方式为公式(8):
p_g(vi-1,vi)=p_g(vi-1,vi)ρ+p_t(vi-1,vi) (8)
步骤6.10,判断迭代次数是否大于最大迭代次数,若是,则从步骤6.11开始继续执行操作,否则从步骤6.3开始重复操作;
步骤6.11,将最优解的值作为输出结果,推荐给用户。
该专利技术资料仅供研究查看技术是否侵权等信息,商用须获得专利权人授权。该专利全部权利属于西安理工大学,未经西安理工大学许可,擅自商用是侵权行为。如果您想购买此专利、获得商业授权和技术合作,请联系【客服】
本文链接:http://www.vipzhuanli.com/pat/books/202110342236.3/1.html,转载请声明来源钻瓜专利网。
- 同类专利
- 专利分类
G06Q 专门适用于行政、商业、金融、管理、监督或预测目的的数据处理系统或方法;其他类目不包含的专门适用于行政、商业、金融、管理、监督或预测目的的处理系统或方法
G06Q10-00 行政;管理
G06Q10-02 .预定,例如用于门票、服务或事件的
G06Q10-04 .预测或优化,例如线性规划、“旅行商问题”或“下料问题”
G06Q10-06 .资源、工作流、人员或项目管理,例如组织、规划、调度或分配时间、人员或机器资源;企业规划;组织模型
G06Q10-08 .物流,例如仓储、装货、配送或运输;存货或库存管理,例如订货、采购或平衡订单
G06Q10-10 .办公自动化,例如电子邮件或群件的计算机辅助管理