一种残膜回收机防缠绕挑膜装置的制 一种秧草收获机用电力驱动行走机构

基于旅游知识图谱的智能问答方法及系统与流程

2021-10-24 08:55:00 来源:中国专利 TAG:人工智能 图谱 问答 特别 公开


1.本公开涉及人工智能技术领域,特别是涉及基于旅游知识图谱的智能问答方法及系统。


背景技术:

2.本部分的陈述仅仅是提到了与本公开相关的背景技术,并不必然构成现有技术。
3.当前旅游资讯服务只停留在为用户提供自主网络搜索返回海量碎片化信息的阶段,而无法将旅游相关信息智能反馈给用户,使得用户往往需要花费大量的时间和精力才可以从海量的数据中寻找到想要的信息,行程安排和路线设计都十分繁琐。
4.基于知识图谱的智能问答系统是近年来的研究热点之一,本部分一方面将从基于模板、语义解析、深度学习、知识图谱嵌入等四个主流方向介绍智能问答系列研究现状。同时由于当前人工智能发展迅速,旅游知识领域也产生了很多优秀的研究成果,本部分另一方面也将重点介绍面向旅游知识领域的智能问答研究现状。
5.构建模板的问答方法通过构建一组模板参数,形成查询表达式,对问题文本进行匹配。通过预设查询模板的方式替代相关实体关系映射,整个过程不涉及问句分析,巧妙避开语义解析等难题。2010年trueknowledge模板问答方法被提出,利用已知模板成分匹配句子中的内容后按照顺序匹配相应模板,一个模板可以覆盖多个问题,具有很高的复用性,但人工处理形成模板成本昂贵,同时生成的模板对数据库依赖性大。丁斌等人构建了基于汽车领域的智能问答系统,对原有问答模板方法进行了改进,结合汽车领域知识库提出模板自动生成方法,提前将复杂自然语言处理嵌入在模板库中取得了较好效果。cui等人针对简单事实问答,在大规模模板自动化生成方面提出优化方案。abujabal等人提出quint模型,通过语料自动学习模板,借助生成的模板将自然语言问句转换为知识库查询。cocco等人提出面向对象的智能问答系统,借助rdf形式的linkedspeding数据集,在现有数据集(相互配对的问答对)上,通过机器学习方法学习sparql模板。构建模板的问答方法相对传统,设计者需要提前设定模板,依据问题匹配不同模板。此方法答案相对准确,由于不涉及问句分析,响应速度极高,但由于模板库需要耗费大量人力进行模板校对和模板库维护,因此当前该方法研究重点更侧重于模板自动生成,克服耗时耗力难题。
6.语义解析方法与基于模板方法最明显的区别是是否具有逻辑表达式。模板方法需要设定固定表达方式,语义解析方法关键在于对自然语言问句成分进行解析,转化为逻辑表达式,再利用知识图谱的语义信息将逻辑表达式转换成知识图谱查询得到相应结果。常用的语义解析方法主要分为三类:基于词典

文法的语义解析、基于语义图构建的语义解析、基于神经网络的语义解析。
7.(1)berant提出的基于词典

文法的语义解析方式依靠组合文法进行语义解析。kwiatkowski等人提出改进规则方法,有效提升之前组合范畴文法(ccg)分析器的鲁棒性;artzi等人使用amr(abstract meaning representation)替换λ

双子表示ccg语义规则中的语义类型部分,同样取得了较好的效果。基于词典

文法的语义解析方法结构清晰、具有
很强的可解释性,在限定领域问答方面能取得很好的效果。但面对大规模异源异构知识库,此方法存在资源标注费时费力的问题,且语义解析表示和知识库联系不紧密,无法在解析过程中利用知识约束。
8.(2)reddy等提出了不同于词典

文法的语义解析,通过对问句分析,构建相应的语义图(由节点,操作符构成,被认为是知识图谱子图),实现将问句映射到知识图谱中,再通过图匹配完成回答,即基于语义图的语义解析方法。yin等提出了分步骤构建文法,提高了语义图的解释性,强化了语义图构建了的准确性;bast等人从另一方面构建了一种基于模板的语义图生成方式。构建语义图的方法不仅针对简单问题,hao等人还尝试构建负责语义图解决复杂问题,当问句中存在多个实体时,此方法表现良好。基于语义图的问句解析方法在过程中可以充分利用知识库的知识约束,由组合文法转换为语义图构建,减少了搜索空间。但基于语义图的解析方法也存在一定问题,由于依赖启发式方法构建语义图,缺乏一定的通用性。
9.(3)基于神经网络的语义解析方法区别于其他两种语义解析方法,此方法将自然语言问句及对应的语义视为不同的两种语言,语义解析任务转换为机器翻译任务,利用端对端模型,实现将问句翻译成对应语义的表示序列。dong等和jia等用基于attention机制的encoder

decoder模型将自然语言作为输入,得到适用于机器处理的逻辑表示作为输出。xiao等人结合符号先验知识,利用rnn模型实现语义解析。chen等人提出sequence

to

action模型,用语义图表示语义信息。同时chen等人也考虑结合知识图谱中的实体类型、关系路径、上下文关系等,借助注意力机制方法,在webquestions数据集上进行实验,提高了准确率。lukobnikov等人设计了一种端到端的基于字符级别的问题编码器,可以处理词库以外的文字问题,捕获文字水平的语义。基于神经网络方法具有模型简单、准确度高等优点,但其解释性相对较差,且对模型进行训练时,训练过程较长,并且参数调整较为复杂。
10.表1.基于语义解析方法的分类与优劣
[0011][0012]
综上所述,基于语义解析的问答方法,核心任务是将自然语言转换为机器可以理解和执行的语义表示。通常基于符号逻辑的语义表示,缺乏灵活性,在分析问句语义过程中,还容易受到符号间语义鸿沟影响,同时从自然语言问句得到结构化语义表示需要许多步操作,多步间误差传递都对问答准确度造成影响。基于神经网络的方法,需要大量标注数据,然而带有标注的数据集非常有限,加上现有知识图谱覆盖度较低。目前基于语义分析的问答系统在开放域上取得的效果还不近人意。由于基于符号的方法和基于神经网络的方法各具优缺点。此外,无论是基于符号方法需要构建规则集,还是基于神经网络的方法都需要标注语料,将耗费大量人工。
[0013]
采用深度学习的方法需要将问题以及知识图谱中包含的丰富的语义信息(字、词、上下文关系,实体、关系以及属性)投射到一个高维向量空间,获得字词向量,通过深度学习模型对向量进行相似度计算,再通过打分机制获得候选排序得到最终问答结果。bordes等人设计了一种基于记忆网络的问答系统,并在多个数据集上验证了系统设计的优越性,同时该系统具备迁移学习能力。dong等人设计了一种多列卷积神经网络,根据知识图谱特点,定义答案路径、上下文路径、答案类型,作为参考特征,并且每个特征对应一个经训练的卷积神经网络,用于捕获问句中的语义信息,再通过计算问句与答案之间的相似度,对结果打分排序,排序第一的作为最终答案。在基于深度学习答案排序方法中,计算输入问题和候选答案实体之间的相关性是核心任务,当前输入问题和候选答案对直接训练的问答模型取得很好的效果。costa等人针对当前多领域多知识图谱的问答框架,设计一个高效且高质量的问答系统,实现在任何领域对任何类型问题都有效的问答系统。
[0014]
基于知识图谱的嵌入学习的问答方法也取得了一定的进展。知识图谱嵌入学习是针对知识图谱中的三元组进行词嵌入表示,相比于一般的词向量,知识嵌入学习(knowledge graph embedding,kge)更能反映相近实体以及关系之间的相似程度。现阶段已经提出了许多kge,如线性映射方法distmult、基于平移的transe、基于张量因子化的rescal、神经张量网络mtn等,并被证明在知识图谱补全、问答系统和关系抽取等许多应用中都表现良好。wang等人设计了一种基于知识图谱嵌入的问答系统。针对谓词在问题中的不同表达和实体被识别后的消歧问题,huang等人结合知识图谱嵌入学习在问答系统中的优点来解决,设计谓词与头实体学习模型,将问题作为输入,并返回尽可能接近于问题的维持/实体嵌入表示的向量,确定谓词与头实体,最终找到尾实体,完成问答。
[0015]
发明人发现,现有技术存在以下技术问题:
[0016]
(1)现有旅游资讯服务只停留在为客户提供自主网络搜索返回海量碎片化信息的阶段,而无法将旅游相关信息智能反馈给用户。
[0017]
(2)用户往往需要花费大量的时间和精力才可以从海量的数据中寻找到想要的信息,行程安排和路线设计都十分繁琐。
[0018]
(3)现有的旅游查询系统往往无法精准捕捉用户的搜索重点,而是单纯的进行数据匹配与大数据计算,而没有去理解搜索语句的语义。


技术实现要素:

[0019]
针对现有技术中的上述缺陷:本公开提供了基于旅游知识图谱的智能问答方法及系统。
[0020]
第一方面,本公开提供了基于旅游知识图谱的智能问答方法;
[0021]
基于旅游知识图谱的智能问答方法,包括:
[0022]
获取待查询语句;
[0023]
对待查询语句进行命名实体识别,得到识别出来的实体;
[0024]
对待查询语句进行实体关系挖掘,得到挖掘出来的实体关系;
[0025]
根据实体和实体关系,构建待查询语句的cypher语句;
[0026]
基于待查询语句的cypher语句,对旅游知识图谱进行搜索,得到对应的答案。
[0027]
第二方面,本公开提供了基于旅游知识图谱的智能问答系统;
[0028]
基于旅游知识图谱的智能问答系统,包括:
[0029]
获取模块,其被配置为:获取待查询语句;
[0030]
识别模块,其被配置为:对待查询语句进行命名实体识别,得到识别出来的实体;
[0031]
挖掘模块,其被配置为:对待查询语句进行实体关系挖掘,得到挖掘出来的实体关系;
[0032]
构建模块,其被配置为:根据实体和实体关系,构建待查询语句的cypher语句;
[0033]
搜索模块,其被配置为:基于待查询语句的cypher语句,对旅游知识图谱进行搜索,得到对应的答案。
[0034]
第三方面,本公开还提供了一种电子设备,包括:
[0035]
存储器,用于非暂时性存储计算机可读指令;以及
[0036]
处理器,用于运行所述计算机可读指令,
[0037]
其中,所述计算机可读指令被所述处理器运行时,执行上述第一方面所述的方法。
[0038]
第四方面,本公开还提供了一种存储介质,非暂时性地存储计算机可读指令,其中,当所述非暂时性计算机可读指令由计算机执行时,执行第一方面所述方法的指令。
[0039]
与现有技术相比,本公开的有益效果是:
[0040]
本发明基于neo4j搭建旅游知识图谱,设计并构建关于旅游相关信息的问答系统,并在解决实际需求的同时,进行了模型方法和系统性能测试,尝试提高用户资讯体验满意度。根据问答系统(question answering system,qa)结构,本发明设计并实现了基于bert

bilstm

crf的命名实体识别模块和基于模板的匹配推理模块,并基于以上模块成功将自然语言问句转化为图数据库可识别的cypher查询语句,进而实现从旅游知识图谱中捕获对应答案。本发明构建的知识图谱问答系统可以帮助当地游客快速高效地获得旅游相关信息,帮助游客规划行程路线。
[0041]
本发明研究旅游领域的命名实体识别,提出了新的基于旅游领域的命名实体识别算法,针对旅游实体常常存在的构词方法不统一、存在大量的单词组合和实体嵌套现象,采用添加自定义词典和语义词性标注的方法解决,进而提高命名实体识别的准确度,完成了对该专业领域的实体识别任务。
[0042]
本发明独立自主的构建了旅游领域的知识图谱并采用neo4j进行存储,将网上冗余的非结构化与半结构化的数据进行梳理导入,使得相关数据联系更加紧密,关系更加清晰。知识图谱能够揭示知识领域的动态发展规律,为相关研究提供切实可靠的参考。通过建立旅游知识图谱,本发明不仅能从多方面了解旅游实体之间的联系,从而为用户提供更符合需求的答案;又能推动知识图谱落地旅游行业,从而助力旅游行业的快速发展。且neo4j图数据库具有高速性、强拓展性,适用于后续的研究与功能实现。
[0043]
本发明研究了基于模板的关系抽取方法,对查询语句进行分类与匹配,简洁高效的进行处理与查询。本发明结合现有团队知识图谱研究背景及当下行业热点问答系统,专利旨在搭建一套基于旅游知识图谱的问答系统,并尝试提供一套针对当前旅游资讯服务领域下普遍存在的搜索难、体验差等问题的解决方案。
[0044]
本发明成果可用于解决目前在旅游信息咨询系统中的智能化程度低,信息冗余量大的问题,提高通过查询语句进行信息查询的准确性与智能性,适应了旅游领域的智能化、准确化的发展。
[0045]
本发明基于neo4j搭建旅游知识图谱,设计并构建关于旅游相关信息的问答系统,并在解决实际需求的同时,进行了模型方法和系统性能测试,尝试提高用户资讯体验满意度。根据问答系统(question answering system,qa)结构,本发明设计并实现了基于bert

bilstm

crf的命名实体识别模块和基于模板的匹配推理模块,并基于以上模块成功将自然语言问句转化为图数据库可识别的cypher查询语句,进而实现从旅游知识图谱中捕获对应答案。本发明构建的知识图谱问答系统可以帮助当地游客快速高效地获得旅游相关信息,帮助游客规划行程路线。对于人工智能助力旅游行业发展而言,本发明具有一定的重要意义。
[0046]
本发明附加方面的优点将在下面的描述中部分给出,或通过本发明的实践了解到。
附图说明
[0047]
构成本公开的一部分的说明书附图用来提供对本公开的进一步理解,本公开的示意性实施例及其说明用于解释本公开,并不构成对本公开的不当限定。
[0048]
图1是本发明中基于旅游知识图谱的问答系统框架图;
[0049]
图2是本发明旅游知识图谱构建流程图;
[0050]
图3是本发明neo4j知识图谱可视化图;
[0051]
图4是本发明bert的输入表示;
[0052]
图5是本发明bert

bilstm

crf命名实体识别流程图;
[0053]
图6是本发明gui界面效果展示。
具体实施方式
[0054]
应该指出,以下详细说明都是示例性的,旨在对本公开提供进一步的说明。除非另有指明,本发明使用的所有技术和科学术语具有与本公开所属技术领域的普通技术人员通常理解的相同含义。
[0055]
需要注意的是,这里所使用的术语仅是为了描述具体实施方式,而非意图限制根据本公开的示例性实施方式。如在这里所使用的,除非上下文另外明确指出,否则单数形式也意图包括复数形式,此外,还应当理解的是,术语“包括”和“具有”以及他们的任何变形,意图在于覆盖不排他的包含,例如,包含了一系列步骤或单元的过程、方法、系统、产品或设备不必限于清楚地列出的那些步骤或单元,而是可包括没有清楚地列出的或对于这些过程、方法、产品或设备固有的其它步骤或单元。
[0056]
在不冲突的情况下,本公开中的实施例及实施例中的特征可以相互组合。
[0057]
本实施例所有数据的获取都在符合法律法规和用户同意的基础上,对数据的合法应用。
[0058]
为实现专利目标,本发明围绕三个关键问题进行展开:
[0059]
第一部分面向旅游信息资讯领域的知识图谱的构建与存储;
[0060]
第二部分基于bert

bilstm

crf并添加自定义词典和语义标注方法的命名实体识别技术;
[0061]
第三部分基于模板匹配和朴素贝叶斯算法的关系挖掘方法。
[0062]
具体技术流程图如图1所示,在问答系统中,首先需要对用户输入的自然语言查询进行预处理操作,必须充分考虑查询问句中存在的实体与实体间关系,使用命名实体识别技术获取实体,然后根据系统预设的查询模板与问句进行匹配分析,通过朴素贝叶斯算法划分问句的所属类别,从而找到该问句对应的查询模板;其次将获得的实体和实体关系嵌入cypher构建cypher语句;最后,通过构建得到的cypher语句将查询需求映射到知识图谱中,检索并返回答案到前端展示给用户。
[0063]
实施例一
[0064]
本实施例提供了基于旅游知识图谱的智能问答方法;
[0065]
如图1所示,基于旅游知识图谱的智能问答方法,包括:
[0066]
s101:获取待查询语句;
[0067]
s102:对待查询语句进行命名实体识别,得到识别出来的实体;
[0068]
s103:对待查询语句进行实体关系挖掘,得到挖掘出来的实体关系;
[0069]
s104:根据实体和实体关系,构建待查询语句的cypher语句;
[0070]
s105:基于待查询语句的cypher语句,对旅游知识图谱进行搜索,得到对应的答案。
[0071]
进一步地,所述s102:对待查询语句进行命名实体识别,得到识别出来的实体;具体包括:
[0072]
采用训练后的bert

bilstm

crf模型,对待查询语句进行命名实体识别,得到识别出来的实体;
[0073]
其中,bert

bilstm

crf模型,包括:依次连接的bert模型、bilstm模型和crf模型。
[0074]
进一步地,所述训练后的bert

bilstm

crf模型,具体训练步骤包括:
[0075]
构建第一训练集;所述第一训练集,包括:已知命名实体的语句;
[0076]
将第一训练集,输入到bert

bilstm

crf模型中,对bert

bilstm

crf模型进行训练,当损失函数达到最小值时或者训练迭代次数超过设定阈值时,停止训练,得到训练后的bert

bilstm

crf模型。
[0077]
进一步地,构建第一训练集,具体步骤包括:
[0078]
从旅游网站爬取旅游攻略;
[0079]
对爬取的旅游攻略,进行预处理,得到旅游领域文本;所述预处理,包括:去除空白行、去除空格和去除非文本字符;
[0080]
使用nltk工具对预处理后的旅游领域文本进行半自动化标注;之后进行人工校对标注;针对旅游领域实体类型的定义,将旅游领域实体分为景点名、地名、酒店名、景点类型;
[0081]
采用bioes标注体系,进行字体的标注,得到第一训练集。
[0082]
应理解的,本发明使用jacob等提出的基于transformer的双向编码器表示(bidirectional encoder representation from transformers,bert)方法。本发明面向的旅游信息资讯领域,常常存在旅游实体构词方法不统一、大量的单词组合和实体嵌套的现象,极大程度上影响实体检测的准确率。同时由于旅游领域知识存在专有名词较多,实体易发生嵌套和冗余等现象,对上下文信息依赖性较强,因此需要模型具有较强的泛化能力。bert模型作为基于句子级别进行上下文关联的预训练模型,本身就具有较强的泛化能力,
可以很好的描述字符级,词级以及句子级的旅游信息特征,因此使用bert模型可以很好的适配本发明领域方向。同时本发明选择bilstm结合crf模型对文本语义信息进行深层次提取。通过调整输入门(input gate),输出门(output gate)和遗忘门(forget gate)同时获取待识别问句的上下问信息。通过crf层对输出结果进行解码,优化标注序列。同时,本发明面向的旅游信息资讯领域,常常存在旅游实体构词方法不统一、大量的单词组合和实体嵌套的现象,极大程度上影响实体检测的准确率。
[0083]
近年来,深度学习网络在自然语言处理领域的应用越来越广,利用预训练词向量技术,可以避免当前机器学习存在的人工标注和领域知识依赖较强的问题,直接对原始数据进行处理。由于旅游领域知识存在专有名词较多,实体易发生嵌套和冗余等现象,具有较强地上下文依赖性,因此需要模型具有较强的泛化能力。本发明使用jacob等提出的基于transformer的双向编码器表示(bidirectionalencoder representation from transformers,bert)方法,bert模型作为基于句子级别进行上下文关联的预训练模型,本身就具有较强的泛化能力,可以很好的描述字符级,词级以及句子级的旅游信息特征,因此使用bert模型可以很好的适配本发明领域方向。
[0084]
同时本发明使用双向长短期记忆网络bilstm对文本语义信息进行深层次提取。通过调整输入门(input gate),输出门(output gate)和遗忘门(forget gate)同时获取待识别问句的上下问信息。考虑到bilstm模型虽然能够很好的获取词向量表征序列,但其输出结果往往存在词标注结果分散的问题,因此添加2001年由lafferty等提出的一种典型判别式模型crf层对bilstm模型的输出结果进行解码,优化标注序列。基于以上步骤,实现面向旅游信息领域的命名实体识别任务。
[0085]
进一步地,所述s102:对待查询语句进行命名实体识别,得到识别出来的实体;工作原理包括:
[0086]
利用bert模型,对待查询语句进行表征处理,得到待查询语句中每个词的词向量表示;
[0087]
利用bilstm模型,将每个词的上下文词向量表示串联起来,得到融合上下文词向量表示的向量;
[0088]
利用crf模型,对融合上下文词向量表示的向量进行预测,得到识别出来的命名实体。
[0089]
应理解的,基于bert的预处理模型:bert预处理模型的核心功能是对输入的自然语言语料进行表征处理,将文本中的各个词通过多层嵌入表示及一系列数值变换,最终输出每个词的一维词向量表示,即输出每个词最终的语义表示。bert模型采用双向transformer方法,其关键部分在于基于注意力机制对文本进行建模,而并没有采用rnn(recurrent neural network)的循环式网络结构。bert模型的基本原理是计算得到一句话中所有词与这句话中的每个词之间的关联性和重要程度。而每个词的表示就可以基于上下文的关联性获得,如下式(1):
[0090][0091]
其中,q,k,v表示输入词向量矩阵,d
k
表示输入词向量的维度。
[0092]
bert的输出表示为每个词对应的词/字向量(token embeddings)、segment向量(segment embeddings)、位置向量(position embeddings)的加和,如图4所示。基于这三种向量的表示bert可以充分利用词前后两侧的信息,得到最佳词分布式表征。例如,输入“泰山真美,它在哪里?”,不仅会得到单个字对应的字向量,bert模型同时会计算该字向量对应的segment向量和position向量表示,其结果为三者加和。
[0093]
应理解的,基于双向lstm模型的“记忆”模型:hochreiter等提出使用lstm模型引入记忆单元和门限制,实现了对长短距离信息的有效利用,并解决了梯度消失问题。并且graves等对lstm模型的记忆单元和门限制做了相关改进以提高效率。本发明采用graves等提出的改进门限制,在t时刻,给定输入,lstm的隐藏层输出表示的具体计算过程如下式(2)、(3):
[0094]
i
t
=σ(w
i
[h
t
‑1,x
t
] b
i
),f
t
=σ(w
f
[h
t
‑1,x
t
] b
f
),o
t
=σ(w
o
[h
t
‑1,x
t
] b
o
);
ꢀꢀꢀ
(2)
[0095][0096]
其中,w表示连接两层的,(如w
xi
表示输入层到隐藏层的输入门的权重矩阵),b表示偏置向量(如b
i
表示隐藏层的输入门的偏置向量),c
t
表示记忆单元的状态,表示t时刻的状态,σ和tanh分别表示两种不同的神经元激活函数,i
t
,f
t
和o
t
分别表示输入门、遗忘门和输出门。
[0097]
对于包含个n个单词的旅游相关文本(x1,x2,

,x
n
),每个单词都表示为d维向量,lstm只获得了上文相关的旅游信息,但下文的旅游信息对于命名实体识别也具有重要意义,因此可以使用第二个lstm反向读取相同文本序列来实现这一功能。将前者称为前向lstm,将后者称为后向lstm。bilstm最后输出由单词的左右上下文表示串联起来,即结合过去的隐藏信息和将来的隐藏信息,表示为其中分别表示正向的lstm和反向lstm在t时刻的输出。
[0098]
基于crf结构的优化模型:鉴于bilstm并不考虑序列之间的依赖关系,其输出结果往往包含无意义的字符。而coll等提出的句级对数似然函数(crf结构),该结构可以合理地考虑标签序列间的依存关系,能更好地对标签进行预测,从而获得标签序列的全局信息。采用bilstm与crf结合的模式,能够保证最终的识别结果是正确的,其具体实现如下:
[0099]
对于输入序列x=(x1,x2,

,x
n
),假设p是bilstm网络输出得到的评分矩阵,p为n
×
k阶矩阵,k表示不同标签的数量,p
i,j
对应的是j
th
标签和i
th
的对应关系。对于预测序列y=(y1,y2,

,y
n
),本发明设定其总得分为),本发明设定其总得分为其中a表示由标签i到标签j的过渡矩阵的得分。
[0100]
所有可能的标签序列上的softmax产生序列y的概率如式(4):
[0101][0102]
在训练过程中,将正确标签序列的对数概率最大化,公式如(5):
[0103][0104]
其中,y
x
表示输入序列x的所有可能的标记序列(甚至包含那些不验证iob格式的标记序列)。通过对数概念最大化的方式,鼓励网络生成有效的输出标签序列,在解码时,预测输出序列,该序列将获得以下最大得分,最大得分的序列将作为crf结构的输出:
[0105][0106]
将词的类别按命名实体识别约定,分为b

per、i

org、e

per、o四类,其中b

per表示字符位于实体字符边界的起始端,i

org表示字符位于实体字符边界的中间,e

org表示字符位于实体支付边界的末端,字符o表示不属于实体的无关字符。例如“泰山在哪里”,其中“泰”,“山”分别标记为b

per,e

org,“在”,“哪”,“里”由于不属于实体,因此标注为0。
[0107]
命名实体识别功能实现:bert

bilstm

crf模型将bert预处理模块、bilstm结构和crf结构结合起来,即在输入一段自然语言表示的问句时,通过bert预处理模型,将问句嵌入表征为词向量形式,再将该向量表示输入bilstm结构,并在bilstm网络的隐藏层后加一层crf层。
[0108]
由图5可以看出,bert

bilstm

crf命名实体识别模型通过bert模型作为特征表示层加入到双向lstm模块中。bilstm获取句子表示的过程描述如下:
[0109]
步骤1.将分词后的序列s=(s1,s2,s3,

,s
n
),序列集合中的任意一个s
i
代表任意一个输入的字符i的词向量,将序列s输入到bert特征表示层,获得句子的词向量表征集合bert(s);
[0110]
步骤2.将句子中的每个词向量表达w
i
输入到bilstm网络中,计算当前状态隐藏层的值;
[0111]
更新输入门:i
k
=σ(w
xi
x
t
w
hi
h
t
‑1 w
ci
c
t
‑1 b
i
);
ꢀꢀꢀ
(7)
[0112]
更新遗忘门:f
t
=σ(w
xf
x
t
w
hf
h
t
‑1 w
cf
c
t
‑1 b
f
);
ꢀꢀꢀ
(8)
[0113]
更新输出门:o
t
=σ(w
xo
x
t
w
ho
h
t
‑1 w
co
c
t
b
o
);
ꢀꢀꢀ
(9)
[0114]
计算记忆单元的值:c
t
=f
t
c
t
‑1 i
t tanh(w
xc
x
t
w
hc
h
t
b
c
);
ꢀꢀꢀ
(10)
[0115]
计算t时刻隐藏层的值:h
t
=o
t tanh(c
t
);
ꢀꢀꢀ
(11)
[0116]
步骤3.利用crf结构,获得实体最优序列:
[0117]
s
optimal
={p(s1),p(s2),

,p(s
m
)},
[0118]
其中,p(s
i
)表示对字符s
i
类别的预测,从而完成命名实体识别任务。
[0119]
进一步地,s103:对待查询语句进行实体关系挖掘,得到挖掘出来的实体关系;具体包括:
[0120]
s1031:基于训练后的朴素贝叶斯分类器(naive bayes,nb)对待查询语句进行类别划分;
[0121]
s1032:根据划分的类别,找到待查询语句对应的查询模板;
[0122]
s1033:根据找到的查询模板,对待查询语句进行匹配,得到挖掘出来的实体关系。
[0123]
其中,进行类别划分中的类别,包括但不限于:地址、省份、景点价格、酒店价格。
[0124]
其中,查询模板、待查询语句对应的查询模板,见表3,查询模板是通过手工定义问
题模板库,对每一个问题模板,定义该类问题的问句形式以及对应的结构化知识图谱查询语句范例。
[0125]
进一步地,所述s1033根据找到的查询模板,对待查询语句进行匹配,得到挖掘出来的实体关系;具体包括:
[0126]
s10331:定义问题模板库,对每一个问题模板,定义该类问题的问句形式以及对应的结构化知识图谱查询语句范例;
[0127]
s10332:对于用户的问句输入进行问句语法分析;其中,语法分析,包括:通过分词算法对用户输入的问句进行切割、删除停用词、判断短语词性;
[0128]
s10333:通过比较问句语法分析后的结果与问题模板库中问题模板的相似度,找出相似度最大即最匹配的问题模板,得到最匹配的问题模板相对应的结构化知识图谱的查询模板;
[0129]
s10334:将用户自然语言表达的词或短语,映射到知识图谱中的实体或者关系;
[0130]
s10335:将映射出的实体或关系,填充到结构化知识图谱的查询模板中,生成最终的结构化知识图谱查询语句。
[0131]
进一步地,所述训练后的朴素贝叶斯分类器,训练步骤包括:
[0132]
构建第二训练集;其中,第二训练集,包括:已知类别的语句;
[0133]
其中,已知类别,包括:景点地址、景点省份、景点价格和景点周边酒店价格;
[0134]
将第二训练集,输入到朴素贝叶斯分类器中,对朴素贝叶斯分类器进行训练,得到训练后的朴素贝叶斯分类器。
[0135]
应理解的,本发明采用预设一组模板的方式,形成查询表达式,对问题文本进行匹配。通过预设查询模板方式替代关系映射,使用朴素贝叶斯分类器对查询语句与预设提问模板进行分类匹配,巧妙避开语义解析难题,具有简洁、准确性高等显著特点,适合本发明领域旅游知识图谱的问答系统。
[0136]
基于nb算法的问题分类器:本发明使用朴素贝叶斯分类算法(nb算法)实现简单的问题与模板匹配过程。朴素贝叶斯分类算法基于条件概率、贝叶斯定理和独立性假设原则。
[0137]
其详细过程如下:贝叶斯的定理的表达式如下,其中x,y表示特征变量,c
i
表示分类标签,p(c
i
|x,y)表示在特征为x,y的情况下分入类别c
i
的概率:
[0138][0139]
基于特征条件独立的假设认为,用户提出的问题中的词汇独立出现,不会互相影响,将词汇出现的特征条件用w=(w1,w2,

,w
n
)集合表示,因此贝叶斯原理的表达式可以展开为独立事件概率相乘的形式:
[0140][0141]
p(w|c
i
)=p(w1|c
i
)p(w2|c
i
)

p(w
n
|c
i
);
ꢀꢀꢀ
(14)
[0142]
当p(c1|w)>p(c2|w),则可以判断特征w∈c1;当p(c1|w)<p(c2|w),则可以判断特征w∈c2。
[0143]
基于模板的关系抽取模块:本发明采用构造一组模板参数的方式,形成查询表达
式,对问题文本进行匹配。通过预设查询模仿的方式替代关系映射,使用朴素贝叶斯分类器对查询语句与预设提问模板进行分类匹配,巧妙避开语义解析难题,具有简洁、准确性高等显著特点,适合本发明领域旅游知识图谱的问答系统。
[0144]
假设c
i
(label)表示分类标签,w(test)表示预设文本,rel表示对应关系,nm表示识别得到的实体名称,问句模板设计样例如表3所示,所述问句模板,包括:分类标签、预设文本以及二者的对应关系;其中预设文本包括实体名称。
[0145]
表3.问句模板设计样例
[0146][0147][0148]
例如查询问题“泰山的地址在哪?”,根据朴素贝叶斯分类器计算如下:
[0149][0150]
p(w|c
i,i={0,1,2,3}
)=p(w
泰山
|c
i
)p(w

|c
i
)p(w
地址
|c
i
)p(w

|c
i
)p(w
哪里
|c
i
);
ꢀꢀꢀ
(16)
[0151]
计算得到p(w|c0)>p(w|c
i≠0
),由此推出结论该查询问题实体为“泰山”,对应关系为“地址”,分类标签为0。
[0152]
进一步地,s104:根据实体和实体关系,构建待查询语句的cypher语句;具体包括:根据表达式构建相对应的cypher语句用于查询相关信息:
[0153]
match(n:实体名)

[re:关系名]

(s)return s。
[0154]
cypher语句是neo4j的图形查询语言,允许用户从图形数据库中存储和检索数据。cypher语句可以使用户方便地学习、理解和使用查询图数据,同时还融合了其他标准数据访问语言的强大功能。
[0155]
应理解的,根据实体识别和关系抽取模块获得问句信息后,自动生成cypher语句,对neo4j内实体关系进行检索返回,并基于此设计gui界面,开发应用平台。
[0156]
本发明使用python标准tkgui工具包的接口tkinter(tk接口)作为搭建gui的主要模块。tk和tkinter具有很强的兼容性,可以适用于多种操作系统。界面主要包含问题文本输入区域、答案文本回显区域、事件触发按钮三部分的窗口。用户首先键入问题question,后台数据库获取question后对问题进行拆解分析,通过cypher语言查询neo4j得到问题答案answer,然后利用io模块将控制台上的输出重定向到文本区域内,进行系统的问答展示,预期完成目标示例如图6。
[0157]
进一步地,所述旅游知识图谱,构建步骤包括:
[0158]
s1051:获取已知的若干条旅游信息三元组数据,每一条三元组数据均包括景点第一信息、景点第二信息以及二者之间的关系,例如景点名称、景点属性以及景点名称和景点属性之间的关系;
[0159]
所述景点属性,包括:景点地址、景点省份、景点价格、景点周边酒店价格、景点类型;
[0160]
s1052:针对每一条三元组数据,获取景点名称,判断景点名称是否已经存在于图数据库中,若不存在,则创建一个新的节点,新的节点的标签为景点名称;图数据库,指的是neo4j数据库,neo4j数据库中的数据结构都以图的形式存储;
[0161]
s1053:获取景点属性,判断景点属性是否已经存在于图数据库中,若不存在,则创建一个新的节点,新节点的标签为景点属性;
[0162]
s1054:获取景点名称与景点属性二者之间的关系,判断景点名称与景点属性二者之间的关系是否已经存在于图数据库中,如果不存在,则创建一条边从景点名称节点指向景点属性节点;
[0163]
s1055:重复步骤s1052~s1054,直到所有的旅游信息三元组数据均被存储到图数据库中;基于图数据库生成旅游知识图谱。
[0164]
本发明已知的若干条旅游信息三元组数据的数据来源主要是两方面:一部分是从马蜂窝旅游、百度旅行等具有丰富结构化数据的旅游网站中进行爬取;另一部分是百度百科、wikidata等实体类型和上下位关系较为全面的半结构化数据库中爬取。考虑到旅游实体关系需要具有一定的丰富度和准确性,综合使用两部分数据协同构建知识图谱的数据层。
[0165]
本发明通过对去哪网、马蜂窝旅游网、百度旅行等各大热门旅游网站进行全面的分析和研究,确定知识图谱模式层的实体类型与属性,并采用网络爬虫的方式获取结构化与半结构化数据用于数据层填充,最后通过知识融合的方式解决实体消歧的问题,进而完成面向旅游信息咨询领域的知识图谱的构建。通过将rdf本体文件导入neo4j图数据库中完成知识图谱的存储。流程图如图2所示。
[0166]
模式层构建:为提高知识图谱模式层的全面性与准确性,本发明对各大热门旅游网站进行了分析和研究,从而确定旅游信息的几个重要属性,分别为景点的名称(中英文)、地址、类型、级别、开放时间、游览时间、最佳游览季节、门票,酒店的名称、地址、级别、价格,行政区域的名称、归属等,并抽取景点、景点类型、景点级别、酒店、酒店价格区间、行政区域作为旅游知识图谱中的六类信息。一般而言,“景点类型“可以分为“人文景观”和“自然景观”,但这种分类方法粒度较大,为了体现景点类型之间的差异性,本发明将自然景观和人文景观又进行了细分,组成了包括三级子类的景点类型。“景点级别”按照景点不同等级划分为五星级旅游景点、四星级旅游景点、三星级旅游景点、省级优秀旅游试点、市级优秀旅游试点等多类。“酒店价格”按照其定价不同划分不同价格区间。“行政区域”主要依据中国行政区划分为省、市两级之类。
[0167]
数据层填充:本发明选取的数据源主要分为以下两方面:一部分是从马蜂窝旅游、百度旅行等具有丰富结构化数据的旅游网站中进行爬取;另一部分是从百度百科、wikidata等实体类型和上下位关系较为全面的半结构化数据库中爬取。考虑到旅游实体关
系需要具有一定的丰富度和准确性,综合使用两部分数据协同构建知识图谱的数据层。并采用编码网页爬虫的方法采集景点页面的原始信息,并对网页进行动态解析,使用基于标签遍历的方法,利用request库、lxml库及xpath路径进行搜索,获取dom树中对应的各个节点。考虑到动态解析可能涉及的服务器终端拒绝访问等问题,设计多个接口同时发出请求,且请求中应当保留部分公用数据。
[0168]
图数据库构建:鉴于neo4j图数据库具有高效、直观、查询存储性能优秀等优点,本发明采用neo4j作为旅游知识图谱的存储载体。与三元组存储结构类似,neo4j图数据库使用节点和关系表征数据间的联系,以景点类型为例,简要说明数据层构建的过程如表1:
[0169]
表1.旅游知识图谱数据层构建方法
[0170][0171]
基于neo4j的旅游知识图谱的建立增强了旅游信息的相关性,使得旅游知识不再是数据孤岛,并且图数据库可以将信息之间的关系进行可视化,为基于旅游知识图谱的问答系统的构建奠定了数据和技术基础。其具体步骤如下:a.节点构建;b.关系挖掘;c.可视化泰山相关的旅游知识信息:如图3所示。
[0172]
自定义词典构建:采用从去哪儿网、携程、马蜂窝等旅游网站爬取旅游攻略,通过去除空白行、空格、非文本相关内容的预处理过后,得到旅游领域文本。
[0173]
使用nltk工具对预处理后的旅游领域文本进行半自动化标注;之后进行人工校对标注。
[0174]
针对旅游领域实体类型的定义,将旅游领域实体分为景点名、地名、酒店名、景点类型等多类。
[0175]
采用bioes标注体系进行字体的标注。
[0176]
例如“天山大峡谷位于乌鲁木齐县境内”,按照采用的标注体系,可以标注为“天/b

sa山/i

sa大/i

sa峡/i

sa谷/e

sa位/o于/o乌/b

loc鲁/i

loc木/i

loc齐/i

loc县/e

loc境/o内/o。
[0177]
当前旅游资讯服务只停留在为用户提供自主网络搜索返回的海量碎片化信息,而无法将旅游相关信息智能反馈给用户,使得用户往往需要花费大量的时间和精力才可以从海量的数据中寻找到想要的信息,行程安排和路线设计都十分繁琐。针对此情况,本发明基于neo4j搭建旅游知识图谱,设计并构建关于旅游相关信息的问答系统,并在解决实际需求的同时,进行了模型方法和系统性能测试,尝试提高用户资讯体验满意度。根据问答系统(question answering system,qa)结构,本发明设计并实现了基于bert

bilstm

crf的命
名实体识别模块和基于模板的匹配推理模块,并基于以上模块成功将自然语言问句转化为图数据库可识别的cypher查询语句,进而实现从旅游知识图谱中捕获对应答案。本发明构建的知识图谱问答系统可以帮助当地游客快速高效地获得旅游相关信息,帮助游客规划行程路线。对于人工智能助力旅游行业发展而言,本发明具有一定的重要意义。实施例二
[0178]
本实施例提供了基于旅游知识图谱的智能问答系统;
[0179]
基于旅游知识图谱的智能问答系统,包括:
[0180]
获取模块,其被配置为:获取待查询语句;
[0181]
识别模块,其被配置为:对待查询语句进行命名实体识别,得到识别出来的实体;
[0182]
挖掘模块,其被配置为:对待查询语句进行实体关系挖掘,得到挖掘出来的实体关系;
[0183]
构建模块,其被配置为:根据实体和实体关系,构建待查询语句的cypher语句;
[0184]
搜索模块,其被配置为:基于待查询语句的cypher语句,对旅游知识图谱进行搜索,得到对应的答案。
[0185]
此处需要说明的是,上述获取模块、识别模块、挖掘模块、构建模块和搜索模块对应于实施例一中的步骤s101至s105,上述模块与对应的步骤所实现的示例和应用场景相同,但不限于上述实施例一所公开的内容。需要说明的是,上述模块作为系统的一部分可以在诸如一组计算机可执行指令的计算机系统中执行。
[0186]
实施例三
[0187]
本实施例还提供了一种电子设备,包括:一个或多个处理器、一个或多个存储器、以及一个或多个计算机程序;其中,处理器与存储器连接,上述一个或多个计算机程序被存储在存储器中,当电子设备运行时,该处理器执行该存储器存储的一个或多个计算机程序,以使电子设备执行上述实施例一所述的方法。
[0188]
实施例四
[0189]
本实施例还提供了一种计算机可读存储介质,用于存储计算机指令,所述计算机指令被处理器执行时,完成实施例一所述的方法。
[0190]
以上所述仅为本公开的优选实施例而已,并不用于限制本公开,对于本领域的技术人员来说,本公开可以有各种更改和变化。凡在本公开的精神和原则之内,所作的任何修改、等同替换、改进等,均应包含在本公开的保护范围之内。
再多了解一些

本文用于企业家、创业者技术爱好者查询,结果仅供参考。

发表评论 共有条评论
用户名: 密码:
验证码: 匿名发表

相关文献

  • 日榜
  • 周榜
  • 月榜