一种智能问答方法
技术领域
本申请属于自然语言处理技术领域,具体涉及一种智能问答方法。
背景技术
随着互联网的发展,知识的表示不再是网页链接,而是真实世界中的一个个事物或概念,这些事物相互连接,彼此传达语义关系,构成了知识图谱。基于知识图谱的一个重要应用就是用来做搜索,不同于基于关键词搜索的传统搜索引擎,知识图谱可用来更好地查询复杂的关联信息,从语义层面理解用户意图,改进搜索质量。
知识图谱加上搜索的一个典型应用场景就是自动问答。问答按领域可划分为开放领域和限定领域,开放领域的问答还处于一个初级阶段,需要的知识库庞大而复杂,一般是大型的搜索引擎在使用。所以现在更多成功的用例是在特定领域里面,特定领域里面我们一般是基于行业做领域问答。
在领域问答上,现有的领域问答方法大多存在以下问题:
1、基于文档检索的,缺乏语义信息;
2、领域定制程度太高,算法可移植性差;
3、回答问题类型限于事实性、简单问句,对于稍复杂的问句无法回答。
4、基于端到端的深度学习模型的,对问答数据的数量和质量要求很高,严重依赖于问答语料。
因而,在领域问答方面,还存在进一步改进的需求。
发明内容
为至少在一定程度上克服相关技术中存在的问题,本申请提供一种智能问答方法,有助于提升对包含复杂语义的自然语言问句回答的准确性。
为实现以上目的,本申请采用如下技术方案:
一种智能问答方法,包括:
获取用户输入的自然语言问句;
根据预设的索引库中的组合模板,判断所述自然语言问句是否存在复杂语义;
如果判断出存在复杂语义,对所述自然语言问句进行分解,提取出所述自然语言问句中的复杂语义部分内容和简单语义部分内容;
对所述复杂语义部分内容进行解析,得到第一解析信息,所述第一解析信息为利用所述组合模板将所述复杂语义部分内容映射成具有属性约束的逻辑表达式;
对所述简单语义部分内容进行解析,得到第二解析信息,所述第二解析信息为利用预设的自然语言模型解析所述简单语义部分内容得到的语义信息;
根据所述第一解析信息和所述第二解析信息,得到能够表达所述自然语言问句完整语义的图查询语言;
通过预设的知识图谱对所述图查询语言进行查询,得到答案;
其中,所述组合模板用于对所述自然语言问句中是否存在复杂语义进行判断,以及在存在复杂语义时,将所述复杂语义部分内容映射成具有属性约束的逻辑表达式。
进一步地,所述根据所述第一解析信息和所述第二解析信息,得到能够表达所述自然语言问句完整语义的图查询语言,包括:
S11、对所述第二解析信息进行实体抽取,得到候选约束集合和候选标签集合,然后执行S12;
S12、将所述第一解析信息中的标签对应内容添加到所述候选标签集合中,将所述第一解析信息中其余内容添加到所述候选约束集合中,然后执行S13;
S13、根据所述候选约束集合和所述候选标签集合进行关系推导,得到能够表达所述自然语言问句完整语义的查询逻辑表达式,然后执行S14;
S14、将所述查询逻辑表达式转换为所述图查询语言。
进一步地,所述对所述第二解析信息进行实体抽取,包括:
使用所述自然语言模型对所述简单语义部分内容进行分词和词性标注,得到查询词;
对查询词进行实体对齐;
通过所述知识图谱进行实体链接和属性链接。
进一步地,所述根据所述候选约束集合和所述候选标签集合进行关系推导,得到能够表达所述自然语言问句完整语义的查询逻辑表达式,包括:
根据所述候选约束集合,得到最优约束集合;
根据所述候选标签集合,得到最优关系链;
将所述最优关系链和所述最优约束集合进行组合,得到能够表达所述自然语言问句完整语义的查询逻辑表达式。
进一步地,所述根据所述候选约束集合,得到最优约束集合,包括:
通过所述知识图谱,找到每个查询词模糊匹配到的所有实体或者属性;
根据预设的相似性算法公式,计算每个查询词与对应的所有实体或者属性的相似性,选取相似性得分最高的实体或者属性,将每个查询词对应的相似性得分最高的实体或者属性形成最优约束集合。
进一步地,所述相似性算法公式为:
其中,qi为词的第i个字;tfii为词频,即qi出现的频率;k1和b均调节因子,k1用于对文档中的词频行缩放控制,b决定文档长度的缩放程度;dl为文档字符个数;avgdl为所有文档平均字符数;q为输入的查询词;Score(q,d)为所匹配到的文档d的得分;N为总文档数;n为查询词q中包含的字的数量;n(qi)表示包含qi的文档数;IDF(qi)为qi的逆文档频率。
进一步地,所述根据所述候选标签集合,得到最优关系链,包括:
通过所述知识图谱,得到所述候选标签集合中每个候选标签的知识图谱子图路径,形成知识图谱子图路径集合;
根据所述知识图谱子图路径集合,通过预设的关系排序算法公式,计算得到所述最优关系链。
进一步地,所述关系排序算法公式为:
score=match(raw_label,sub-graph)
其中,score为分值,raw_label为候选标签集合,sub_graph为知识图谱子图路径集合。
进一步地,所述方法还包括:
如果判断出所述自然语言问句中不存在复杂语义,则利用所述自然语言模型解析所述自然语言问句,得到的第三语义信息;
根据所述第三语义信息得到能够表达所述自然语言问句完整语义的图查询语言;
通过预设的知识图谱对所述图查询语言进行查询,得到答案。
进一步地,所述知识图谱和所述索引库的构建方法为:
通过至少一个数据源获取领域数据;
根据所述领域数据构建本体模型;
根据所述本体模型构建所述知识图谱,以及
根据所述本体模型构建所述组合模板、本体库词典、实体词典、属性词典和同义词词林,以形成所述索引库。
本申请采用以上技术方案,至少具备以下有益效果:
本申请提供一种智能问答方法,在获取用户输入的自然语言问句后,通过预设的组合模板判断该问句是否存在复杂语义,如果判断出存在复杂语义,利用组合模板解析复杂语义部分内容得到第一解析信息,以及利用自然语言模型解析简单语义部分内容得到第二解析信息,然后综合第一解析信息和第二解析信息得到能够表达自然语言问句完整语义的图查询语言,进而进行查询得到答案。本申请使用组合模板对问句复杂语义内容进行处理,并基于知识图谱作问答,利用知识图谱对数据非常好的描述能力,实现本申请在具体应用中无需使用大量的质量高的问答语料,进而有助于提升对包含复杂语义的自然语言问句回答的准确性。
应当理解的是,以上的一般描述和后文的细节描述仅是示例性和解释性的,并不能限制本申请。
附图说明
为了更清楚地说明本申请实施例或现有技术中的技术方案,下面将对实施例或现有技术描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本申请的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他的附图。
图1为本申请一个实施例提供的智能问答方法的流程示意图。
具体实施方式
为使本申请的目的、技术方案和优点更加清楚,下面将对本申请的技术方案进行详细的描述。显然,所描述的实施例仅仅是本申请一部分实施例,而不是全部的实施例。基于本申请中的实施例,本领域普通技术人员在没有做出创造性劳动的前提下所得到的所有其它实施方式,都属于本申请所保护的范围。
图1为本申请一个实施例提供的智能问答方法的流程示意图,如图1所示,该智能问答方法包括如下步骤:
S1、获取用户输入的自然语言问句;
S2、根据预设的索引库中的组合模板,判断所述自然语言问句是否存在复杂语义;
S3、如果判断出存在复杂语义,对所述自然语言问句进行分解,提取出所述自然语言问句中的复杂语义部分内容和简单语义部分内容;
S4、对所述复杂语义部分内容进行解析,得到第一解析信息,所述第一解析信息为利用所述组合模板将所述复杂语义部分内容映射成具有属性约束的逻辑表达式;
对所述简单语义部分内容进行解析,得到第二解析信息,所述第二解析信息为利用预设的自然语言模型解析所述简单语义部分内容得到的语义信息;
S5、根据所述第一解析信息和所述第二解析信息,得到能够表达所述自然语言问句完整语义的图查询语言;
S6、通过预设的知识图谱对所述图查询语言进行查询,得到答案;
其中,所述组合模板用于对所述自然语言问句中是否存在复杂语义进行判断,以及在存在复杂语义时,将所述复杂语义部分内容映射成具有属性约束的逻辑表达式。
对于复杂的语义,复杂语义解释比较难,在自然语言的相关技术中,自然语言模型对于复杂语义的处理存在难以胜任的问题,语义提取困难,得出的答***性不佳。各种机器学习算法虽然在预测能力上很不错,但是在描述能力上非常弱,因而需要大量的质量高的语料进行弥补,导致机器学习算法严重依赖于问答语料。
本申请上述实施例方案在具体应用中,用户可以通过手动打字的方式输入自然语言问句,也可以通过语音输入的方式输入自然语言问句。在获取用户输入的自然语言问句后,通过预设的组合模板判断该问句是否存在复杂语义,如果判断出存在复杂语义,利用组合模板解析复杂语义部分内容得到第一解析信息,以及利用自然语言模型解析简单语义部分内容得到第二解析信息,然后综合第一解析信息和第二解析信息得到能够表达自然语言问句完整语义的图查询语言,进而进行查询得到答案。
在实际应用中,对于预设的知识图谱和索引库,需要事先构建好。
在一个实施例中,本申请给出一种所述知识图谱和所述索引库的构建方法为:
通过至少一个数据源获取领域数据;
根据所述领域数据构建本体模型;
根据所述本体模型构建所述知识图谱,以及
根据所述本体模型构建所述组合模板、本体库词典、实体词典、属性词典和同义词词林,以形成所述索引库。
上述方案在具体构建中,可以通过各个数据源获取领域数据,分析领域数据的特征,总结领域内的实体、属性和它们之间的关系,绘制本体模型。
通过本体模型,将结构化、半结构化或非结构化的数据抽取成携带属性的实体和关联关系,通过数据融合工具导入图数据库,将知识以图的方式存储和表示,以构建出知识图谱。
对于索引库的构建,通过上述的本体模型,抽取本体、实体名称、属性,分别构建本体库词典、实体词典、属性词典。本体词典中存储了所有实体的类型信息;实体名称词典中存储了实体的类型、对应的实体名称字段和值;属性词典中存储了属性所在实体的类型、属性的字段和值。
构建实体名称的同义词词林;同义词词林中记录了实体名称的简称和全称的一个映射,目的是将搜索输入的实体名称对应到知识图谱中的实体上。
对于预设的组合模板,其是一种规则,能将符合规则的自然语言语句直接映射成逻辑表达式。本申请中,在下述给了出组合模板的一种实施例。
在一个实施例中,组合模板包括三个部分,分别是Group,Template和Expression,进一步说明如下:
在实际应用中,通过设计各类组合模板,可实现对同类数据套用一个组合模板进行处理,并基于知识图谱作问答,利用知识图谱对数据非常好的描述能力,实现本申请在具体应用中无需使用大量的质量高的问答语料,进而有助于提升对包含复杂语义的自然语言问句回答的准确性。
对于预设的自然语言模型,在实际应用中,比如,可采用哈工大的语言技术平台。
在一个实施例中,所述根据所述第一解析信息和所述第二解析信息,得到能够表达所述自然语言问句完整语义的图查询语言,包括:
S11、对所述第二解析信息进行实体抽取,得到候选约束集合和候选标签集合,然后执行S2。
进一步地,所述对所述第二解析信息进行实体抽取,包括:
使用所述自然语言模型对所述简单语义部分内容进行分词和词性标注,得到查询词;
对查询词进行实体对齐:
通过所述知识图谱进行实体链接和属性链接。
在具体应用中,可以采用基于CRF算法的自然语言模型。
对于上述的分词,可以使用上述索引库中的词典辅助分词,使分词更准确,进而使领域实体的识别更可靠。
对于上述的对查询词进行实体对齐,可包括如下过程:在索引库的同义词词林中查找每个词在知识图谱中的同义词,若匹配到就将原词替换为知识图谱中的词。
经过实体抽取后,得到的候选约束集合中,包含有实体和属性;候选标签集合中包含有实体标签。
S12、将所述第一解析信息中的标签对应内容添加到所述候选标签集合中,将所述第一解析信息中其余内容添加到所述候选约束集合中,然后执行S13。
对于上述S12步骤,第一解析信息为利用所述组合模板将所述复杂语义部分内容映射成具有属性约束的逻辑表达式。请参见,上述的组合模板的具体实施例,上述模板的Expression部分,给出一种逻辑表达式的举例:
{label=Cadre,field=birthday,op=>=,regex=[0-9]+,constraint=%s}
其中,该表达式为属性约束的一种逻辑表达式,label为标签。
S13、根据所述候选约束集合和所述候选标签集合进行关系推导,得到能够表达所述自然语言问句完整语义的查询逻辑表达式,然后执行S14。
以下通过进一步的实施例方案对S13步骤进行说明。
进一步地,所述根据所述候选约束集合和所述候选标签集合进行关系推导,得到能够表达所述自然语言问句完整语义的查询逻辑表达式,包括:
根据所述候选约束集合,得到最优约束集合;
根据所述候选标签集合,得到最优关系链;
将所述最优关系链和所述最优约束集合进行组合,得到能够表达所述自然语言问句完整语义的查询逻辑表达式。
进一步地,所述根据所述候选约束集合,得到最优约束集合,包括:
通过所述知识图谱,找到每个查询词模糊匹配到的所有实体或者属性;
根据预设的相似性算法公式,计算每个查询词与对应的所有实体或者属性的相似性,选取相似性得分最高的实体或者属性,将每个查询词对应的相似性得分最高的实体或者属性形成最优约束集合。
进一步地,所述相似性算法公式为:
其中,qi为词的第i个字;tfi为词频,即qi出现的频率;k1和b均调节因子,k1用于对文档中的词频行缩放控制,b决定文档长度的缩放程度;dl为文档字符个数;avgdl为所有文档平均字符数;q为输入的查询词;Score(q,d)为所匹配到的文档d的得分;N为总文档数;n为查询词q中包含的字的数量;n(qi)表示包含qi的文档数;IDF(qi)为qi的逆文档频率。
上述相似性算法是基于字的算法,对于中文词汇的语义计算更为准确。
进一步地,所述根据所述候选标签集合,得到最优关系链,包括:
通过所述知识图谱,得到所述候选标签集合中每个候选标签的知识图谱子图路径,形成知识图谱子图路径集合;
根据所述知识图谱子图路径集合,通过预设的关系排序算法公式,计算得到所述最优关系链。
对于上述实施例方案,通过检索知识图谱,获取每一个候选标签相关的所有路径,这些路径可以是N元组,比如三元组或者更多的元组,每一个N元组至少包含了一个候选类型标签,N元组代表了候选实体类型有可能的关系链,要想找到最优的关系链,需要对这些候选关系链打分并排序。排序的依据是关系链对标签集合的贡献有多大,包含标签集合中元素越多的关系链越接近答案,分值就越高。
使用关系排序算法,依据子图查询返回的关系链集合中,每个关系链所包含的标签数量,给出相应的分值,然后选取得分最高的N元组,最为作为最优关系链。
进一步地,所述关系排序算法公式为:
score=match(raw_label,sub_graph)
其中,score为分值,raw_label为候选标签集合,sub_graph为知识图谱子图路径集合。match(raw_label,sub_graph)函数是计算子图的路径中包含候选实体标签的数量与关系链中标签数量的比值。
以下通过具体的应用实施例对上述S13及其相关方案进行说明。
以“少数民族女干部”为例,解析结果为:
S14、将所述查询逻辑表达式转换为所述图查询语言。
以下以Neo4j数据库为例,将上述的“少数民族女干部”的解析结果转换为Cypher语句的图查询语言。
Match(cadre:Cadre)-[r:Cadre_Nation]-(nation:Nation)
Where cadre.gender=’女’and nation.category=’少数民族’
Return cadre,r,nation
上述实施例方案针对的是包含有复杂语义的自然语言问句进行的说明。对于完全时简单语义的处理方法。本申请以下还给出一种实施例,所述方法还包括:
如果判断出所述自然语言问句中不存在复杂语义,则利用所述自然语言模型解析所述自然语言问句,得到的第三语义信息;
根据所述第三语义信息得到能够表达所述自然语言问句完整语义的图查询语言;
通过预设的知识图谱对所述图查询语言进行查询,得到答案。
可以理解的是,上述方案的实施,可以参考包含有复杂语义的自然语言问句的处理过程,只需将包含有复杂语义的自然语言问句的处理过程中的复杂语义处理内容排除出去即可,具体方式已经在上述相关的方法实施例中进行了详细描述,此处将不做详细阐述说明。
可以理解的是,上述各实施例中相同或相似部分可以相互参考,在一些实施例中未详细说明的内容可以参见其他实施例中相同或相似的内容。
需要说明的是,在本申请的描述中,术语“第一”、“第二”等仅用于描述目的,而不能理解为指示或暗示相对重要性。此外,在本申请的描述中,除非另有说明,“多个”的含义是指至少两个。
流程图中或在此以其他方式描述的任何过程或方法描述可以被理解为:表示包括一个或更多个用于实现特定逻辑功能或过程的步骤的可执行指令的代码的模块、片段或部分,并且本申请的优选实施方式的范围包括另外的实现,其中可以不按所示出或讨论的顺序,包括根据所涉及的功能按基本同时的方式或按相反的顺序,来执行功能,这应被本申请的实施例所属技术领域的技术人员所理解。
应当理解,本申请的各部分可以用硬件、软件、固件或它们的组合来实现。在上述实施方式中,多个步骤或方法可以用存储在存储器中且由合适的指令执行***执行的软件或固件来实现。例如,如果用硬件来实现,和在另一实施方式中一样,可用本领域公知的下列技术中的任一项或他们的组合来实现:具有用于对数据信号实现逻辑功能的逻辑门电路的离散逻辑电路,具有合适的组合逻辑门电路的专用集成电路,可编程门阵列(PGA),现场可编程门阵列(FPGA)等。
本技术领域的普通技术人员可以理解实现上述实施例方法携带的全部或部分步骤是可以通过程序来指令相关的硬件完成,所述的程序可以存储于一种计算机可读存储介质中,该程序在执行时,包括方法实施例的步骤之一或其组合。
此外,在本申请各个实施例中的各功能单元可以集成在一个处理模块中,也可以是各个单元单独物理存在,也可以两个或两个以上单元集成在一个模块中。上述集成的模块既可以采用硬件的形式实现,也可以采用软件功能模块的形式实现。所述集成的模块如果以软件功能模块的形式实现并作为独立的产品销售或使用时,也可以存储在一个计算机可读取存储介质中。
上述提到的存储介质可以是只读存储器,磁盘或光盘等。
在本说明书的描述中,参考术语“一个实施例”、“一些实施例”、“示例”、“具体示例”、或“一些示例”等的描述意指结合该实施例或示例描述的具体特征、结构、材料或者特点包含于本申请的至少一个实施例或示例中。在本说明书中,对上述术语的示意性表述不一定指的是相同的实施例或示例。而且,描述的具体特征、结构、材料或者特点可以在任何的一个或多个实施例或示例中以合适的方式结合。
尽管上面已经示出和描述了本申请的实施例,可以理解的是,上述实施例是示例性的,不能理解为对本申请的限制,本领域的普通技术人员在本申请的范围内可以对上述实施例进行变化、修改、替换和变型。