一种知识问答方法及装置与流程

文档序号:12464596阅读:242来源:国知局
一种知识问答方法及装置与流程

本发明涉及自动问答技术,尤其涉及一种知识问答方法及装置。



背景技术:

随着国内外越来越多的机构投入到问答系统的研究,目前自动问答技术已经取得了一定的成绩,出现了许多优秀的问答系统,根据不同的答案获取方式,现有的问答系统类型主要有:聊天机器人、问答式检索系统以及基于知识库的问答系统等。

聊天机器人几乎是全部采用模式匹配的方法来寻找问题最合适的答案,它们没有经过严格证明的定理、晦涩的数学公式,甚至没有复杂的算法。它们的共同特点是:在与用户的交谈过程中,都是基于谈话技巧和程序技巧,而不是根据常识来回答问题。目前的聊天机器人,由于其知识库规模有限、甚至没有知识库,所以面对用户提出的许多专业性问题,通常是用转移话题的办法来回避。知识的缺乏使得聊天机器人目前还不能解决太多的实际问题,而仅仅只是和用户“聊天”,许多情况下,它更像是玩具而不是工具。

问答式检索系统是根据以自然语言方式提交的用户查询,从系统文档集合或Web中,检索出相关文本或网页并将其返还给用户。从技术上来说,在处理用户查询方面,问答式检索系统主要是抽取用户查询中的关键词,并利用语义词典对关键词进行扩展,从而得到一组描述用户需求的关键词。然而,最清楚用户需求的是用户自己而不是系统,用户自己给出的关键词往往要比系统分析得出的关键词准确得多。因此,与现有搜索引擎相比,问答式检索系统的优势并不明显。一系列测试结果表明,无论是速度还是准确性,谷歌(Google)都要比现有大多数问答式检索系统高出许多。并且,问答式检索系统返还给用户 的只是和用户查询相关的文本或网页,而不是短小精悍的答案,所以严格说来,问答式检索系统还不算是一个真正的问答系统,只是一个信息检索系统。

基于知识库的问答系统一般是受限领域问答系统,它包含自然语言界面的专家系统、基于受限语言的数据库查询系统、基于经常问到的问题(Frequently Asked Questions,FAQ)的问答系统、基于本体的问答系统。基于FAQ的问答系统和聊天机器人不同的是,基于FAQ的问答系统擅长于知识问答,对于不能回答的问题就回答“不知道”,而不是故意转移话题。基于FAQ的问答系统和问答式检索系统相比,基于FAQ的问答系统不会给出一些列参考的网页,给出的答案会更加准确。而目前的基于知识库的问答系统也存在着很多不足,自然语言界面的专家系统一般采用各种专家系统语言如逻辑程序设计(Programming in Logic,PROLOG)语言、ALLTALK语言、计算机程序设计(LISP)语言等来分析回答用户的疑问,给出问答,现有的专家系统一般知识库和推理、回答机制不分离,它们按知识在专家系统语言基础上开发程序,使用范围小,可移植性不高。基于受限语言的数据库查询系统将问句转换为数据库的结构化查询语言(Structured Query Language,SQL)语句,通过SQL语句在系统数据库中查询答案,这需要一个大数据库的支持,数据库的构建标准很难确定,而且用数据库方式不太适合组织领域知识库。基于FAQ的问答系统先计算用户问句和FAQ知识库中问句的相似度,从而找到FAQ知识库中与用户查询最为相似的问句,然后把相关答案直接提交给用户。基于FAQ的问答系统回答范围有限,它能回答的内容基本上是问答对所包含的内容,不具备推理的能力。基于本体的问答系统,需要构建本体知识库、建立查询语句、推理规则,通过推理引擎返回给用户相应的推理结果。目前,针对本体知识库的构建还无法实现自动化,所以相对于FAQ知识库的构建要耗费很多的人力和精力。

现有技术的缺点在于:1)目前FAQ问答系统,只能回答一些常规问题,遇到一些复杂的问题回答不了时,就会转移话题或者将问题转交给人工专家进行回答,存在滞后性并耗费人力。2))FAQ问答系统中,传统的问句相似度计算主要借鉴普通陈述句的相似度计算方法,因为仅考虑问句间的相似因素而忽 略了答案句之间的相似因素,存在相似度计算准确欠佳的问题。3)本体问答系统中,还无法解决动态的将用户的问题转化成语义查询语句,对于用户的每一个问题都要拼写一个静态的语义查询语句,效率非常低。4)本体问答系统中,可以通过设定的推理规则根据本体中已经建立的关系推理出隐含的关系,但对于这种隐含的关系,目前的本体问答系统无法自动在本体中扩充创建,需要人工来完成。



技术实现要素:

有鉴于此,本发明实施例为解决现有技术中存在的至少一个问题而提供一种知识问答方法及装置,能够提高计算相似性的准确率。

本发明实施例的技术方案是这样实现的:

第一方面,本发明实施例提供一种知识问答方法,所述方法包括:

获取待回答的问题;

判断所述问题是否满足预设的第一条件,得到第一判断结果;

当所述第一判断结果表明所述问题不满足预设的第一条件时,判断所述问题是肯定型还是否定型,得到第二判断结果;

根据所述第二判断结果计算FAQ库中的问句与所述问题的相似度;

将相似度满足预设的第二条件的问句所对应的答案输出;

所述判断所述问题是肯定型还是否定型,包括:

判断所述问题是否满足第三条件,其中所述第三条件包括第一子条件和第二子条件,其中第一子条件为分词后的所述问题含有奇数个否定词,所述第二子条件为所述否定词前后须不同;当所述问题满足所述第一子条件和所述第二子条件时,确定所述问题属于否定型,当所述问题不能同时满足所述第一子条件和第二子条件时,所述问题属于肯定型。

第二方面,本发明实施例提供一种知识问答装置,所述装置包括第一获取单元、第一判断单元、第二判断单元、计算单元和输出单元,其中:

所述第一获取单元,用于获取待回答的问题;

所述第一判断单元,用于判断所述问题是否满足预设的第一条件,得到第一判断结果;

所述第二判断单元,用于当所述第一判断结果表明所述问题不满足预设的第一条件时,判断所述问题是肯定型还是否定型,得到第二判断结果;

所述计算单元,用于根据所述第二判断结果计算FAQ库中的问句与所述问题的相似度;

所述输出单元,用于将相似度满足预设的第二条件的问句所对应的答案输出;

所述第二判断单元,用于判断所述问题是否满足第三条件,其中所述第三条件包括第一子条件和第二子条件,其中第一子条件为分词后的所述问题含有奇数个否定词,所述第二子条件为所述否定词前后两个词须不同;当所述问题满足所述第一子条件和所述第二子条件时,确定所述问题属于否定型,当所述问题不能同时满足所述第一子条件和第二子条件时,所述问题属于肯定型。

本发明实施例知识问答方法及装置,其中,获取待回答的问题;判断所述问题是否满足预设的第一条件,得到第一判断结果;当所述第一判断结果表明所述问题不满足预设的第一条件时,判断所述问题是肯定型还是否定型,得到第二判断结果;根据所述第二判断结果计算FAQ库中的问句与所述问题的相似度;将相似度满足预设的第二条件的问句所对应的答案输出;如此,能够提高计算相似性的准确率。

附图说明

图1为本发明实施例一知识问答方法的实现流程示意图;

图2为本发明实施例步骤S105的实现流程示意图;

图3-1为本发明实施例三自动问答装置的组成结构示意图;

图3-2为本发明实施例三自动问答方法的实现流程示意图;

图4为本发明实施例四知识问答装置的实现流程示意图;

图5为本发明实施例五知识问答装置的实现流程示意图。

具体实施方式

针对现有技术中存在的问题或缺点,本发明实施例将至少解决以下之一的问题,1)如何尽可能的减少问答系统的人工成本尤其是专家成本,即让机器具有代替专家解决问题的能力;2)如何在FAQ查询中提高问句相似度计算的准确性;3)如何在进行本体推理时动态的将用户的问题准确、快速的转化成语义查询语句;4)如何提高知识库的自学习能力。针对于第一个问题,对于一些常规问题可以直接通过FAQ库来获取,对于复杂的问题,可以通过本体推理来代替专家解答。在限定领域问答系统中采用本体知识库,可以更好地表示知识之间的内在关系,知识的组织更加合理,减少冗余存储。针对第二个问题,本发明实施例提出了针对答案特征信息的问句相似度计算方法,该计算方法引入问题分类的相关研究成果,利用问题分类的结果,如问题类别、中心词等信息,来间接刻画答案句的特征信息,从而丰富问句相似性计算时的考虑因素。在此基础上与传统的问句相似度计算方法所考量因素如语法和语义等相结合,使得问句相似度计算更加准确。针对第三个问题,在进行本体推理时,一个关键的问题是如何将用户的问题转化成推理机可以理解的语义查询语句。本实施例解决了两个方面的问题:一个是解决了用户问题关键词集与本体的映射;二是利用句模与语义查询语句的映射关系,提高了用户的问题转化成语义查询语句的效率。最后针对第四个问题,本发明实施例实现了FAQ库和本体库自动扩充的问题,提高了知识库的自学习能力。

下面结合附图和具体实施例对本发明的技术方案进一步详细阐述。

实施例一

为了解决前述的技术问题,本发明实施例提供一种知识问答方法,该方法应用于计算设备,该方法所实现的功能可以通过计算设备中的处理器调用程序代码来实现,当然程序代码可以保存在计算机存储介质中,可见,该计算设备至少包括处理器和存储介质。

图1为本发明实施例一知识问答方法的实现流程示意图,如图1所示,该 方法包括:

步骤S101,获取待回答的问题;

步骤S102,判断所述问题是否满足预设的第一条件,得到第一判断结果;

这里,在具体实施的过程中,所述第一条件可以为所述问题为FAQ库中的问题,因此所述第一判断结果用于表明所述问题是否为所述FAQ库中的问句。当所述第一判断结果表明所述问题为所述FAQ库中的问句时,将所述FAQ库中的问句所对应的答案输出。换句话说,当第一判断结果表明能够从FAQ库中直接匹配到问句,这样就可以直接查询到答案,则直接返回答案;如果不能从FAQ库中直接匹配到问句,那么进入步骤S103。

步骤S103,当所述第一判断结果表明所述问题不满足预设的第一条件时,判断所述问题是肯定型还是否定型,得到第二判断结果;

这里,所述判断所述问题是肯定型还是否定型,包括:判断所述问题是否满足第三条件,其中所述第三条件包括第一子条件和第二子条件,其中第一子条件为分词后的所述问题含有奇数个否定词,所述第二子条件为所述否定词前后两个词不能一样(须不同);当所述问题满足所述第一子条件和所述第二子条件时,确定所述问题属于否定型,当所述问题不能同时满足所述第一子条件和第二子条件时,所述问题属于肯定型。

步骤S104,根据所述第二判断结果计算FAQ库中的问句与所述问题的相似度;

这里,所述根据所述第二判断结果计算FAQ库中的问句与所述问题的相似度,包括:当所述问题属于肯定型时,从所述FAQ库中获取第一问句集合,所述第一问句集合为所述问题的陈述句相对应的问句;计算FAQ库中的第一问句集合与所述问题的相似度。当所述问题属于否定型时,从所述FAQ库中获取第二问句集合,所述第二问句集合为所述问题的陈述句相反的问句;计算FAQ库中的第二问句集合与所述问题的相似度。

步骤S105,将相似度满足预设的第二条件的问句所对应的答案输出。

本发明实施例中,所述第二问句集合中至少包括一个问句,对应地,计算 FAQ库中的第二问句集合与所述问题的相似度包括:计算所述第二问句集合中每一个问句与所述问题的相似度。

这里,计算所述第二问句集合中每一个问句与所述问题的相似度,包括:

步骤S11,对所述问题进行关键词提取,得到所述问题对应的关键词;

步骤S12,将所述问题对应的关键词与本体库中的概念属性集合中关键词进行相似度对比,得到对比结果;

步骤S13,根据所述对比结果将问题对应的关键词中的关键词替换成本体库中的关键词。

步骤S14,计算第二问句集合中每一个问句Q2与问题Q1的词序相似度、词形相似度、句长相似度、距离相似度,通过给各个相似度进行加权求和,得到所述问句Q2和问题Q1的相似度;

这里,对问题和问句进行分词等预处理,并利用同义词词库进行关键词扩展,得到各个问题和问句的关键词集。计算词序相似度、词形相似度、句长相似度、距离相似度。通过给各个相似度进行加权求和,得到两个问题Q1和问句Q2的相似度。

实施例二

为了解决前述的技术问题,本发明实施例提供一种知识问答方法,该方法应用于计算设备,该方法所实现的功能可以通过计算设备中的处理器调用程序代码来实现,当然程序代码可以保存在计算机存储介质中,可见,该计算设备至少包括处理器和存储介质。

本发明实施例二知识问答方法的实现流程包括:

步骤S101,获取待回答的问题;

步骤S102,判断所述问题是否满足预设的第一条件,得到第一判断结果;

这里,在具体实施的过程中,所述第一条件可以为所述问题为FAQ库中的问题,因此所述第一判断结果用于表明所述问题是否为所述FAQ库中的问句。当所述第一判断结果表明所述问题为所述FAQ库中的问句时,将所述FAQ库 中的问句所对应的答案输出。换句话说,当第一判断结果表明能够从FAQ库中直接匹配到问句,这样就可以直接查询到答案,则直接返回答案;如果不能从FAQ库中直接匹配到问句,那么进入步骤S103。

步骤S103,当所述第一判断结果表明所述问题不满足预设的第一条件时,判断所述问题是肯定型还是否定型,得到第二判断结果;

这里,所述判断所述问题是肯定型还是否定型,包括:判断所述问题是否满足第三条件,其中所述第三条件包括第一子条件和第二子条件,其中第一子条件为分词后的所述问题含有奇数个否定词,所述第二子条件为所述否定词前后两个词不能一样;当所述问题满足所述第一子条件和所述第二子条件时,确定所述问题属于否定型,当所述问题不能同时满足所述第一子条件和第二子条件时,所述问题属于肯定型。

步骤S104,根据所述第二判断结果计算FAQ库中的问句与所述问题的相似度;

这里,所述根据所述第二判断结果计算FAQ库中的问句与所述问题的相似度,包括:当所述问题属于肯定型时,从所述FAQ库中获取第一问句集合,所述第一问句集合为所述问题的陈述句相对应的问句;计算FAQ库中的第一问句集合与所述问题的相似度。当所述问题属于否定型时,从所述FAQ库中获取第二问句集合,所述第二问句集合为所述问题的陈述句相反的问句;计算FAQ库中的第二问句集合与所述问题的相似度。

步骤S105,将相似度满足预设的第二条件的问句所对应的答案输出。

这里,如图2所示,步骤S105,所述将相似度满足预设的第二条件的问句所对应的答案输出,包括:

步骤S151,对所述相似度进行排序,得到排序结果;

步骤S152,判断所述排序结果中是否有满足所述第二条件的相似度,得到第三判断结果;

步骤S153,当所述第三判断结果表明所述排序结果中有满足所述第二条件的相似度时,获取相似度满足第二条件的问句所对应的答案,输出所述答案。

对应地,所述方法还包括:

步骤S206,当所述第三判断结果表明所述排序结果中没有满足所述第二条件的相似度时,确定所述问题的句子模式;

这里,所述句子模式至少包括以下任意一种:对概念的查询、对概念间的关系的查询、对概念的属性的查询、对同一概念内属性之间的关系的查询和对多个概念属性之间的关系的查询,其中所述概念间的关系包括上下位关系、同位关系和自定义关系。

步骤S207,根据所述句子模式确定SPARQL语句的动态参数;

步骤S208,根据所述SPARQL语句的动态参数和预设的推理规则获取所述问题的答案;

步骤S209,输出所述问题的答案。

本发明实施例中,所述方法还包括:将所述问题和所述问题的答案扩充到FAQ库中。

本发明实施例中,步骤S154,所述确定所述问题的句子模式,包括:

步骤S1541,对所述问题进行关键词提取,得到所述问题对应的关键词;

这里,对所述问题进进行关键词提取,得到所述问题对应的关键词,包括:对所述问题进行分词,对分词后的问题进行关键词提取,得到第一关键词集合;对所述第一关键词集合中的关键词进行同义词扩展,得到扩展后的第二关键词集合,将所述第二关键词集合确定为所述问题对应的关键词。

步骤S1541,将所述问题对应的关键词与本体库中的概念属性集合中关键词进行相似度对比,得到对比结果;

步骤S1542,根据对比结果将第二关键词集合中的关键词替换成本体库中的关键词;

步骤S1543,根据所述本体库中各关键词之间关系确定所述问题的句子模式。

实施例三

本发明实施例提供一种自动问答方法,在介绍自动问题方法之前,先提供一种自动问答装置,图3-1为本发明实施例三自动问答装置的组成结构示意图,图3-2为本发明实施例三自动问答方法的实现流程示意图,如图3-1所示,该装置包括FAQ答案获取模块31、本体答案获取模块32、知识库扩充学习模块33,其中关于理解各模块的功能以及各模块所包括的单元,以及各单元所包括对的子单元的功能可以参见图3-2,具体地:

FAQ答案获取模块31包括FAQ库311和问题理解单元312,其中:

FAQ库311,用于提高答案的获取效率。当问题到达时,系统首先从FAQ库中寻找是否包括用户问题,如果包含问句,则直接返回问句对应的答案给用户,从而省去后面一系列的步骤;否则,就得进行问题理解。

问题理解单元312,用于让计算机理解用户的问题,确定问题的关键词和问题类型进而与FAQ库中问句进行相似度对比,系统会设定一个评分阈值,如果高于这个阈值存在相应的问句,则选择相似度评分最高的问句,将其对应的答案返回给用户。反之,则代表FAQ库中没有对应的答案,就要从本体库中寻找答案。该问题理解单元312一般包括问题分类子单元3121、关键词提取子单元3122、关键词扩展子单元3123和句子级相似度计算子单元3124。其中关键词提取子单元、关键词扩展子单元可以通过分词、同义词词典等技术来实现。关于句子级相似度计算子单元,本实施例在传统问句相似度计算的基础上提出了针对答案特征信息的问句相似度计算方法。具体描述如下:FAQ问答系统中的问句相似度计算主要借鉴普通陈述句的相似度计算方法,因为仅考虑问句间的相似因素而忽略了答案句之间的相似因素,存在相似度计算准确欠佳的问题。本实施例提出了一种综合考虑问句及答案信息的问句相似度计算方法,该方法不仅利用问句之间的语义和语法特征考察问句之间的匹配程度,还利用问句的问题类型信息来间接考察答案句之间的相似程度,以提高问句相似度计算的准确性。

在实际问答中,问句间相似度的细微差别常会导致答案的大相径庭。比如,问句是否含有否定词,可能相似度计算结果是很接近的,但是结果却是截然相 反的。例如:用户问句为“什么上网套餐最不便宜?”,如果FAQ问句中,包含有“什么上网套餐最便宜”。用语义计算的结果为0.9,用语义结合语法的结果为0.918,都是比较高的相似度。很有可能就把“什么上网套餐最便宜”的结果返回给用户,而达不到用户的满意。如果把问句的肯定性与否定性考虑到问句的相似度计算中,就有可能得到正确的结果。

但是,结果答案句的特征信息来协助获取问句的深层语义信息,困难在于,在FAQ的问句匹配阶段,可能不存在可以获知的答案句。为此,本实施例引入问题分类的相关研究成果,利用问题分类的结果,如问题类别、中心词等信息,来间接刻画答案句的特征信息,从而丰富问句相似性计算时的考虑因素。在此基础上与传统的问句相似度计算方法所考量因素如语法和语义等相结合,设计了一种新的问句相似度计算方法。该方法虽然考虑了问句信息但并未增加多少额外的计算开销,这是因为在问答系统中,问题分类工作本身是需要首先完成的。

本实施例采用了两级分类体系:第一级为肯定型与否定型分类;第二级采用了如下问题分类体系,其中包括7大类和65个小类,但不知道(UNKNOWN)在问题集中的数量非常少,对分类结果几乎没有影响,因此本实施例的分类体系中是不包含该类的,即采用6大类和64个小类。具体的分类体系如下:

对于肯定型、否定型中文问题,本实施例的处理方式如下:汉语中常用的否定词有不、非、否、无、没、莫、勿、和毋等。有些问句就是因为多了一个否定词,导致答案的截然相反。本文识别否定型中文问题的方法要满足两个条件:问句分词后含有奇数个否定词;否定词前后两个词不能一样。两个条件都不能满足,认为属于肯定型问题。

本实施例计算问句相似度的输入为需要计算相似度的两个问句Q1和Q2,而输出Q1和Q2的相似度,计算过程包括:a)对两个问句进行分词等预处理,并利用同义词词库进行关键词扩展,得到各个问句的关键词集。b)计算词序相似度、词形相似度、句长相似度、距离相似度,因为已经存在比较成熟的计算方法,本实施例不再赘述;c)通过给各个相似度进行加权求和,得到两个问句Q1和Q2的相似度。

本体答案获取模块32包括本体库321、语义预处理单元322、语义理解单元323和知识推理单元324,其中:

本体库321是由概念、属性和关系构成的,以OWL文件格式进行存储。OWL对RDF Schema进行了扩展,OWL相对XML、RDF和RDFSchema拥有更多的机制来表达语义。

语义预处理单元322,主要作用就是将用户的问题进行分词和同义词扩展,得到问句关键词集,然后将关键词集与本体库中的概念属性集合进行相似度对比,最终将关键词集中的词替换成本体中的词。因为本体OWL文件中会用特定的规则来描述词的性质,比如<owl:Class>是用来描述概念,<owl:NamedIndividual>是用来描述实例,<owl:ObjectProperty>是用来描述对象属性,<owl:DatatypeProperty>是用来描述数据属性。根据这些特有的描述规则, 就可以将关键词集中的词按照本体的规则进行分类划分了。

语义预处理单元322包括关键词提取子单元3221、关键词扩展子单元3222、词级相似度计算子单元3223和映射到本体子单元3224,其中关键词提取子单元3221,用于对用户的问题进行分词,然后对分词后的问题进行关键词提取,得到第一关键词集合。关键词扩展子单元3222,用于对键词提取子单元3221提取的第一关键词集合中的关键词进行同义词扩展,得到扩展后的第二关键词集合;词级相似度计算子单元3223,用于将第二关键词集合中关键词与本体库中的概念属性集合中关键词进行相似度对比,得到对比结果;映射到本体子单元3224,用于根据对比结果将第二关键词集合中的关键词替换成本体库中的关键词。

语义理解单元323,包括句模选择字单元3231和语义查询匹配子单元3232。语义理解单元323用于进行本体推理查询,一个关键的问题是如何自动的将用户的问题转化成语义查询语句,即SPARQL语句。和传统的数据库查询不同,数据库查询是已经限定了用户的查询方向和目标,并针对其功能和目标设定好SQL语句,用户的查询输入作为动态参数传入即可得到结果。而在本体推理时,系统是无法预测和限定用户的查询目标的,并且用户的输入是以自然语言而非关键词的形式,所以能够准确的识别用户的查询意图,并动态的创建SPARQL语句是需要解决的关键问题。

在问答系统中,用户的查询具有不少的相似性,例如在移动客服领域,用户可能提问“动感地带的套餐包含几种?”,这里的“动感地带”可以换成其他品牌的名称(如全球通),于是可以把“@的套餐包含几种?”当作一个问句模板。从本体的构成可以知道,本体模型的基础是概念(类)、属性、关系这三个元语,所以本实施例利用这三个元语,将人们的知识需求拆解成以下五种基本类别:a)对概念进行查询;b)对概念间的关系(上下位、同位、自定义关系)进行查询;c)对概念的属性进行查询;d)对同一概念内属性之间的关系进行查询;e)对多个概念属性之间的关系进行查询。这样每一个类别可以定义为一个句模,SPARQL语句会以动态参数设定的方式与每一个句模相对应。因为在 上一步的语义预处理模块中,已经确定了关键词集中各个关键词在本体中的是属于概念或者属性,进而就可以确认用户的问题属于哪个句模,最终就可以确定了语义SPARQL语句。

知识推理单元324,用于根据已有事实和规则产生新的结论。通过自定义推理规则,系统可以帮助用户推理出本体库中隐含的逻辑关系。本体推理规则由主体(body)和头(head)组成,一条规则可以有一个主体和一个头,例如规则:[rule1:(?x rdfs:subClassOf?y)(?z rdf:type?x)->(?z rdf:type?y)],其中规则的主体为:(?x rdfs:subClassOf?y)(?z rdf:type?x),头为:(?z rdf:type?y),也就是说有所有的主体可以推出头。上面的规则说明:概念x的上位概念是y,实例z属于概念x,那么可以推理出实例z也属于概念y。

知识库扩充学习模块33包括FAQ库扩充单元331和本体库扩充332,其中:FAQ库扩充单元331,用于根据本体推理的答案,实现自动问句与答案对的生成并扩充到FAQ库中,这样下次用户提问就不需要进行本体推理了,通过FAQ库即可快速的寻找到答案。本体库扩充单元332,用于根据本体推理的答案,寻找出新的关系,该关系是本体库没有建立的隐含关系,通过该模块实现自动扩充后,隐含的关系就变成了显性的关系了。通过上述扩充学习,知识库会变得越来越智能。

参见图3-2,整个装置的一次完整答案获取流程包括:

步骤S301,当问题到达时,问答系统首先从FAQ库中查询答案,如果能直接匹配到问句,则直接返回答案;如果没有则进行问题理解。

步骤S302,问题理解主要是进行用户问题与FAQ库中的问句相似度打分评比,如果评分结果高于系统设定的阈值,则选择评分最高的FAQ问句结果,返回与其对应的答案给用户;如果没有则进行本体推理。

步骤S303,本体推理要经过语义预处理把用户的问题转化成与本体相对应的关键词集,并确定各个关键词在本体中的性质(概念or属性);通过语义理解确定用户的问题属于哪一个句模,进而确定语义查询语句。最后通过推理机完成本体模型和推理规则的加载完成本体的推理查询,生成答案。

步骤S304,答案生成后,会将本次用户提问的问题答案对扩充到FAQ库中;如果答案推理出来新的关系,则自动完成新生成关系在本体中的创建。

本发明实施例提供的方法实现了常规问题FAQ解决,复杂问题本体推理解决。1)针对FAQ查询,本实施例提出了利用问题分类的结果,如问题类别、中心词等信息,来间接刻画答案句的特征信息,从而丰富问句相似性计算时的考虑因素。本实施例采用了两级分类体系:第一级为肯定型与否定型分类;第二级采用了如下的问题分类体系,其中包括6大类和64个小类。最终结合传统的问句相似度算法即词序相似度、词形相似度、句长相似度、距离相似度加权求和计算形成一种新的针对答案特征信息的问句相似度计算方法。2)针对本体推理,为了避免复杂的词法分析、句法分析和语义分析,本实施例提出了如何将用户问题关键词集与本体进行映射的方法;为了降低语义查询语句创建的工作量和难度,本实施例利用本体模型中概念(类)、属性、关系这三个元语,将用户问题进行类别划分形成问句模板,进而基于问句模板与语义查询语句的映射关系,选择对应的语义查询语句去处理用户的问题。3)本实施例解决了知识库(FAQ和本体库)的自动扩充学习问题,针对本体库可以实现推理出的逻辑关系的自动创建,通过本体推理的结果可以自动创建成问题答案对扩充到FAQ库中。与现有技术相比,本发明实施例具有以下优点:1)相对于目前FAQ问答系统使用的问句相似度计算方法,本实施例提出的针对答案特征信息的问句相似度计算方法考虑的因素更加全面。2)相对于目前的本体推理问答系统,本实施例提出利用本体模型的概念、属性、关系这三个元语对用户问题进行知识分解,并依此动态创建语义查询语句,该方法的特点是不需要穷举大量的句型模板和SPARQL语句,效率更高。3)相对于目前知识库问答系统中的知识库自学习能力,本实施例解决了FAQ和本体库的自动扩充问题,从而提高了知识库的自学习能力。

实施例四

基于前述的实施例,本发明实施例四提供一种知识问答装置,该装置所包括的各单元,以及各单元所包括的各模块,都可以通过计算设备中的处理器来实现,当然也可通过具体的逻辑电路实现;在具体实施例的过程中,处理器可以为中央处理器(CPU)、微处理器(MPU)、数字信号处理器(DSP)或现场可编程门阵列(FPGA)等。需要说明的是,所述计算设备可以指任何具有计算能够的电子设备,例如个人计算机、笔记本电脑等。

图4为本发明实施例四知识问答装置的组成结构示意图,如图4所示,该装置400包括第一获取单元401、第一判断单元402、第二判断单元403、计算单元404和输出单元405,其中:

所述第一获取单元401,用于获取待回答的问题;

所述第一判断单元402,用于判断所述问题是否满足预设的第一条件,得到第一判断结果;

所述第二判断单元403,用于当所述第一判断结果表明所述问题不满足预设的第一条件时,判断所述问题是肯定型还是否定型,得到第二判断结果;

这里,所述第二判断单元,用于判断所述问题是否满足第三条件,其中所述第三条件包括第一子条件和第二子条件,其中第一子条件为分词后的所述问题含有奇数个否定词,所述第二子条件为所述否定词前后两个词不能一样;当所述问题满足所述第一子条件和所述第二子条件时,确定所述问题属于否定型,当所述问题不能同时满足所述第一子条件和第二子条件时,所述问题属于肯定型。

所述计算单元404,用于根据所述第二判断结果计算FAQ库中的问句与所述问题的相似度;

这里,所述计算单元,包括第二获取模块和计算模块,其中:所述第二获取模块,用于当所述问题属于肯定型时,从所述FAQ库中获取第一问句集合,所述第一问句集合为所述问题的陈述句相对应的问句;所述计算模块,用于计算FAQ库中的第一问句集合与所述问题的相似度。所述第二获取模块,还用于当所述问题属于否定型时,从所述FAQ库中获取第二问句集合,所述第二问句 集合为所述问题的陈述句相反的问句;所述计算模块,还用于计算FAQ库中的第二问句集合与所述问题的相似度。

所述输出单元405,用于将相似度满足预设的第二条件的问句所对应的答案输出。

本发明实施例中,所述输出单元包括排序模块、判断模块、第一获取模块和输出模块,其中:

所述排序模块,用于对所述相似度进行排序,得到排序结果;

所述判断模块,用于判断所述排序结果中是否有满足所述第二条件的相似度,得到第三判断结果;

所述第一获取模块,用于当所述第三判断结果表明所述排序结果中有满足所述第二条件的相似度时,获取相似度满足第二条件的问句所对应的答案;

所述输出模块,用于输出所述答案。

这里需要指出的是:以上装置实施例的描述,与上述方法实施例的描述是类似的,具有同方法实施例相似的有益效果,因此不做赘述。对于本发明装置实施例中未披露的技术细节,请参照本发明方法实施例的描述而理解,为节约篇幅,因此不再赘述。

实施例五

基于前述的实施例,本发明实施例四提供一种知识问答装置,该装置所包括的各单元,以及各单元所包括的各模块,都可以通过计算设备中的处理器来实现,当然也可通过具体的逻辑电路实现;在具体实施例的过程中,处理器可以为中央处理器(CPU)、微处理器(MPU)、数字信号处理器(DSP)或现场可编程门阵列(FPGA)等。需要说明的是,所述计算设备可以指任何具有计算能够的电子设备,例如个人计算机、笔记本电脑等。

图5为本发明实施例五知识问答装置的组成结构示意图,如图5所示,该装置400包括第一获取单元401、第一判断单元402、第二判断单元403、计算单元404、输出单元405、第一确定单元406、第二确定单元407和第二获取单 元408,其中所述输出单元405包括排序模块451、判断模块452、第一获取模块453和输出模块454,其中:

所述第一获取单元401,用于获取待回答的问题;

所述第一判断单元402,用于判断所述问题是否满足预设的第一条件,得到第一判断结果;

所述第二判断单元403,用于当所述第一判断结果表明所述问题不满足预设的第一条件时,判断所述问题是肯定型还是否定型,得到第二判断结果;

这里,所述第二判断单元,用于判断所述问题是否满足第三条件,其中所述第三条件包括第一子条件和第二子条件,其中第一子条件为分词后的所述问题含有奇数个否定词,所述第二子条件为所述否定词前后两个词不能一样;当所述问题满足所述第一子条件和所述第二子条件时,确定所述问题属于否定型,当所述问题不能同时满足所述第一子条件和第二子条件时,所述问题属于肯定型。

所述计算单元404,用于根据所述第二判断结果计算FAQ库中的问句与所述问题的相似度;

这里,所述计算单元,包括第二获取模块和计算模块,其中:所述第二获取模块,用于当所述问题属于肯定型时,从所述FAQ库中获取第一问句集合,所述第一问句集合为所述问题的陈述句相对应的问句;所述计算模块,用于计算FAQ库中的第一问句集合与所述问题的相似度。所述第二获取模块,还用于当所述问题属于否定型时,从所述FAQ库中获取第二问句集合,所述第二问句集合为所述问题的陈述句相反的问句;所述计算模块,还用于计算FAQ库中的第二问句集合与所述问题的相似度。

所述排序模块451,用于对所述相似度进行排序,得到排序结果;

所述判断模块452,用于判断所述排序结果中是否有满足所述第二条件的相似度,得到第三判断结果;

所述第一获取模块453,用于当所述第三判断结果表明所述排序结果中有满足所述第二条件的相似度时,获取相似度满足第二条件的问句所对应的答案;

所述输出模块454,用于输出所述答案。

所述第一确定单元406,用于当所述第三判断结果表明所述排序结果中没有满足所述第二条件的相似度时,确定所述问题的句子模式;

所述第二确定单元407,用于根据所述句子模式确定SPARQL语句的动态参数;

所述第二获取单元408,用于根据所述SPARQL语句的动态参数和预设的推理规则获取所述问题的答案;

对应地,所述输出模块454,用于输出所述问题的答案。

这里,所述句子模式至少包括以下任意一种:对概念的查询、对概念间的关系的查询、对概念的属性的查询、对同一概念内属性之间的关系的查询和对多个概念属性之间的关系的查询,其中所述概念间的关系包括上下位关系、同位关系和自定义关系。

本发明实施例中,所述方法还包括:将所述问题和所述问题的答案扩充到FAQ库中。

本发明实施例中,所述第一确定单元包括提取模块、对比模块、替换模块和确定模块,其中:

所述提取模块,用于对所述问题进行关键词提取,得到所述问题对应的关键词;

所述对比模块,用于将所述问题对应的关键词与本体库中的概念属性集合中关键词进行相似度对比,得到对比结果;

所述替换模块,用于根据对比结果将所述问题对应的关键词替换成本体库中的关键词;

所述确定模块,用于根据所述本体库中各关键词之间关系确定所述问题的句子模式。

这里需要指出的是:以上装置实施例的描述,与上述方法实施例的描述是类似的,具有同方法实施例相似的有益效果,因此不做赘述。对于本发明装置实施例中未披露的技术细节,请参照本发明方法实施例的描述而理解,为节约 篇幅,因此不再赘述。

应理解,说明书通篇中提到的“一个实施例”或“一实施例”意味着与实施例有关的特定特征、结构或特性包括在本发明的至少一个实施例中。因此,在整个说明书各处出现的“在一个实施例中”或“在一实施例中”未必一定指相同的实施例。此外,这些特定的特征、结构或特性可以任意适合的方式结合在一个或多个实施例中。应理解,在本发明的各种实施例中,上述各过程的序号的大小并不意味着执行顺序的先后,各过程的执行顺序应以其功能和内在逻辑确定,而不应对本发明实施例的实施过程构成任何限定。上述本发明实施例序号仅仅为了描述,不代表实施例的优劣。

需要说明的是,在本文中,术语“包括”、“包含”或者其任何其他变体意在涵盖非排他性的包含,从而使得包括一系列要素的过程、方法、物品或者装置不仅包括那些要素,而且还包括没有明确列出的其他要素,或者是还包括为这种过程、方法、物品或者装置所固有的要素。在没有更多限制的情况下,由语句“包括一个……”限定的要素,并不排除在包括该要素的过程、方法、物品或者装置中还存在另外的相同要素。

在本申请所提供的几个实施例中,应该理解到,所揭露的设备和方法,可以通过其它的方式实现。以上所描述的设备实施例仅仅是示意性的,例如,所述单元的划分,仅仅为一种逻辑功能划分,实际实现时可以有另外的划分方式,如:多个单元或组件可以结合,或可以集成到另一个系统,或一些特征可以忽略,或不执行。另外,所显示或讨论的各组成部分相互之间的耦合、或直接耦合、或通信连接可以是通过一些接口,设备或单元的间接耦合或通信连接,可以是电性的、机械的或其它形式的。

上述作为分离部件说明的单元可以是、或也可以不是物理上分开的,作为单元显示的部件可以是、或也可以不是物理单元;既可以位于一个地方,也可以分布到多个网络单元上;可以根据实际的需要选择其中的部分或全部单元来实现本实施例方案的目的。

另外,在本发明各实施例中的各功能单元可以全部集成在一个处理单元中, 也可以是各单元分别单独作为一个单元,也可以两个或两个以上单元集成在一个单元中;上述集成的单元既可以采用硬件的形式实现,也可以采用硬件加软件功能单元的形式实现。

本领域普通技术人员可以理解:实现上述方法实施例的全部或部分步骤可以通过程序指令相关的硬件来完成,前述的程序可以存储于计算机可读取存储介质中,该程序在执行时,执行包括上述方法实施例的步骤;而前述的存储介质包括:移动存储设备、只读存储器(Read Only Memory,ROM)、磁碟或者光盘等各种可以存储程序代码的介质。

或者,本发明上述集成的单元如果以软件功能模块的形式实现并作为独立的产品销售或使用时,也可以存储在一个计算机可读取存储介质中。基于这样的理解,本发明实施例的技术方案本质上或者说对现有技术做出贡献的部分可以以软件产品的形式体现出来,该计算机软件产品存储在一个存储介质中,包括若干指令用以使得一台计算机设备(可以是个人计算机、服务器、或者网络设备等)执行本发明各个实施例所述方法的全部或部分。而前述的存储介质包括:移动存储设备、ROM、磁碟或者光盘等各种可以存储程序代码的介质。

以上所述,仅为本发明的具体实施方式,但本发明的保护范围并不局限于此,任何熟悉本技术领域的技术人员在本发明揭露的技术范围内,可轻易想到变化或替换,都应涵盖在本发明的保护范围之内。因此,本发明的保护范围应以所述权利要求的保护范围为准。

当前第1页1 2 3 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1