发明内容
本说明书一个或多个实施例描述了一种针对用户问句补充信息的方法和装置,能够在用户问句补充信息后更接近用户述求。
第一方面,提供了一种针对用户问句补充信息的方法,方法包括:
将当前用户问句作为第一匹配模型的输入,得到与所述当前用户问句匹配的若干语义节点,所述若干语义节点构成当前匹配节点集合,所述语义节点为预先建立的业务导图中的语义节点;所述业务导图包括按照树形结构组织的多个语义节点,每个语义节点对应一个标准语义要素,其中所述树形结构的多个叶节点挂载有对应的多个知识点标题;
当所述当前匹配节点集合匹配到所述业务导图的多条链路时,至少将所述多条链路挂载的多个候选知识点标题、所述当前匹配节点集合、对话上下文和用户的行为状态信息作为第二匹配模型的输入,得到各个候选知识点标题与所述当前用户问句的匹配度;
根据各个候选知识点标题与所述当前用户问句的匹配度,确定对所述当前用户问句补充的标准语义要素,以及与所述当前用户问句匹配的知识点标题。
在一种可能的实施方式中,所述对话上下文包括以下至少一项:
历史匹配节点集合,所述历史匹配节点集合包括与所述当前用户问句之前的各个历史问句匹配的语义节点;
所述当前用户问句的前一句历史问句对应的知识点标题;
与所述当前用户问句的前一句历史问句对应的知识点匹配的语义节点;
与所述当前用户问句所属会话中各个历史问句对应的知识点匹配的语义节点。
在一种可能的实施方式中,所述用户的行为状态信息包括以下至少一项:
用户购买或者使用的产品信息、用户的浏览行为信息、用户的操作失败信息。
在一种可能的实施方式中,所述根据各个候选知识点标题与所述当前用户问句的匹配度,确定对所述当前用户问句补充的标准语义要素,以及与所述当前用户问句匹配的知识点标题,包括:
从各个候选知识点标题与所述当前用户问句的匹配度中确定最大匹配度;
当所述最大匹配度大于第一阈值时,确定与所述当前用户问句匹配的知识点标题为所述最大匹配度对应的候选知识点标题。
进一步地,所述根据各个候选知识点标题与所述当前用户问句的匹配度,确定对所述当前用户问句补充的标准语义要素,以及与所述当前用户问句匹配的知识点标题,还包括:
当所述最大匹配度大于第二阈值且小于或等于所述第一阈值时,确定与所述当前用户问句匹配的知识点标题为按照匹配度由大到小排序时排序在前预设数目的候选知识点标题,其中,所述第一阈值大于所述第二阈值。
进一步地,所述根据各个候选知识点标题与所述当前用户问句的匹配度,确定对所述当前用户问句补充的标准语义要素,以及与所述当前用户问句匹配的知识点标题,还包括:
当所述最大匹配度小于或等于所述第二阈值时,输出提示信息,所述提示信息用于提示用户补充信息。
在一种可能的实施方式中,所述对话上下文包括历史匹配节点集合,所述历史匹配节点集合包括与所述当前用户问句之前的各个历史问句匹配的语义节点;所述第二匹配模型用于确定各个候选知识点标题生成所述当前匹配节点集合包含的语义节点和所述历史匹配节点集合包含的语义节点的第一概率;
所述第二匹配模型至少根据所述第一概率,确定各个候选知识点标题与所述当前用户问句的匹配度。
进一步地,所述对话上下文还包括所述当前用户问句的前一句历史问句对应的知识点标题;
所述第二匹配模型还用于确定从所述前一句历史问句对应的知识点标题到各个候选知识点标题的第二概率;
所述第二匹配模型至少根据所述第一概率和所述第二概率,确定各个候选知识点标题与所述当前用户问句的匹配度。
进一步地,所述第二匹配模型还用于确定从所述用户的行为状态信息到各个候选知识点标题的第三概率;
所述第二匹配模型至少根据所述第一概率、所述第二概率和所述第三概率,确定各个候选知识点标题与所述当前用户问句的匹配度。
第二方面,提供了一种针对用户问句补充信息的装置,装置包括:
匹配节点确定单元,用于将当前用户问句作为第一匹配模型的输入,得到与所述当前用户问句匹配的若干语义节点,所述若干语义节点构成当前匹配节点集合,所述语义节点为预先建立的业务导图中的语义节点;所述业务导图包括按照树形结构组织的多个语义节点,每个语义节点对应一个标准语义要素,其中所述树形结构的多个叶节点挂载有对应的多个知识点标题;
匹配度确定单元,用于当所述匹配节点确定单元得到的当前匹配节点集合匹配到所述业务导图的多条链路时,至少将所述多条链路挂载的多个候选知识点标题、所述当前匹配节点集合、对话上下文和用户的行为状态信息作为第二匹配模型的输入,得到各个候选知识点标题与所述当前用户问句的匹配度;
补充信息单元,用于根据所述匹配度确定单元得到的各个候选知识点标题与所述当前用户问句的匹配度,确定对所述当前用户问句补充的标准语义要素,以及与所述当前用户问句匹配的知识点标题。
第三方面,提供了一种计算机可读存储介质,其上存储有计算机程序,当所述计算机程序在计算机中执行时,令计算机执行第一方面的方法。
第四方面,提供了一种计算设备,包括存储器和处理器,所述存储器中存储有可执行代码,所述处理器执行所述可执行代码时,实现第一方面的方法。
通过本说明书实施例提供的方法和装置,首先将当前用户问句作为第一匹配模型的输入,得到预先建立的业务导图中与所述当前用户问句匹配的语义节点所构成的当前匹配节点集合,接着当所述当前匹配节点集合匹配到所述业务导图的多条链路时,至少将所述多条链路挂载的多个候选知识点标题、所述当前匹配节点集合、对话上下文和用户的行为状态信息作为第二匹配模型的输入,得到各个候选知识点标题与所述当前用户问句的匹配度,最后根据各个候选知识点标题与所述当前用户问句的匹配度,确定对所述当前用户问句补充的标准语义要素,以及与所述当前用户问句匹配的知识点标题。由上可见,本说明书实施例中,不是单纯根据补充信息后的用户问句的通顺程度来确定是否补充该信息,而是基于业务导图中每个语义节点对应的标准语义要素,首先识别用户问句包含哪些标准语义要素,然后再根据对话上下文和用户的行为状态信息确定在用户问句中补充该用户问句缺失的标准语义要素,从而能够在用户问句补充信息后更接近用户述求。
具体实施方式
下面结合附图,对本说明书提供的方案进行描述。
图1为本说明书披露的一个实施例的实施场景示意图。该实施场景涉及针对用户问句补充信息,具体地,基于预先建立的业务导图,针对用户问句补充信息。通常地,问答机器人利用知识库中的问题(即问句)-答案(即知识点)对来回答用户问题(即用户问句)。知识库中包含大量问题-答案对,其中的问题称为标准问题(简称:标问),通过将用户问句与知识库中的标准问题进行匹配,如果找到匹配的标准问题,则将其对应的答案返回。为了拓展标准问题理解的泛化能力,一个标准问题对应多个字面不同的表达方式,称之为标问的问法,如果用户问句和某一问法匹配,就相当于用户问句和该问法对应的标问匹配。标问和问法的对应关系是1对多,问法和标问的对应关系是1对1。
通过业务人员梳理,将知识库中每个标问整理为一组标准语义要素,标问与语义要素组合一一对应。然后根据业务领域划分,结合标问对应的语义要素,构建一棵棵以业务要素为根节点的树。每棵树的根节点为业务要素,其子节点为业务细分领域的语义要素,比如操作、属性、状态,再下层是更细分领域的语义要素,比如子操作、子属性等,层次细分领域,叶子节点为问题类型语义要素,比如为什么、怎么、是什么等等。每个从根节点到叶子节点的路径上的全部要素组合对应了知识库里面的一条标问,标问也可称为知识点标题。
参照图1,业务导图100包括按照业务维度整理为树状层级结构的多个节点(例如,节点11、节点12、节点13、节点14),这些节点也可以称为“语义节点”。每个节点对应一个标准语义要素,该标准语义要素具有一个关键词以及该关键词的关联表达,例如,节点11对应的关键词为“余额宝”,节点11对应业务类型的语义要素;节点12对应的关键词为“退款”,节点12对应操作类型的语义要素;节点13对应的关键词为“查询”,节点13对应子操作类型的语义要素;节点14对应的关键词为“how”,节点14对应问题类型的语义要素。其中,每个关键词可以具有一个或多个关联表达,关联表达包含同义表达、蕴含表达、上下位词等,例如,关键词“how”可以具有关联表达“如何”。每个语义节点都可配置其关联表达,关键词及其关联表达的配置是根据用户问句识别到节点的匹配关键。所述业务导图的根节点代表具有特定业务类型的业务,例如,节点11为根节点,代表了一项具体的业务“余额宝”。所述业务导图的叶节点挂载与该叶节点的关键词相关联的知识点,例如,节点14为叶节点,该叶节点的关键词为“how”,该叶节点挂载了知识点15“如何查询余额宝退款”及答案,其中,每个知识点对应一个知识点标题,知识点标题也称为标准问句,例如知识点标题可以为“如何查询余额宝退款”。
业务导图是运营人员梳理出来的树状结构,以层级的形式组织知识库的各项知识点。可以看出,树的根节点是业务类型,经过层层分支,到树的叶子节点是知识库中的一个知识点,导图的结构,节点名称均可修改、调整,给了运营人员编辑调整知识库以很大的便利性。
通过将用户问句匹配到各个“语义节点”,推导出用户需要的答案。当所述匹配节点集合匹配到所述业务导图的多条链路时,将每条链路的叶节点挂载的知识点标题作为候选知识点标题。例如,语义节点11“余额宝”、语义节点12“退款”,语义节点13“查询”,语义节点14“how”构成业务导图的一条链路,该条链路的叶节点“how”挂载的知识点的知识点标题为“如何查询余额宝退款”。
当存在多个候选知识点标题时,就需要进一步针对用户问句补充信息,以便进一步明确用户述求,从而从多个候选知识点标题中选择出最终与用户问句匹配的知识点标题。
本说明书实施例中,不仅可以对用户问句进行要素识别,即确定与该用户问句匹配的语义节点,还可以对用于补充信息的信息源进行要素识别,即确定与该信息源匹配的语义节点,其中,信息源总的来说来自两个方面,一个为用户上下文,例如,当前用户问句之前的历史问句、与上述历史问句匹配的知识点标题、与上述历史问句匹配的知识点等;另一个为用户信息,具体地,为用户的行为状态信息,例如,用户购买或者使用的产品信息、用户的浏览行为信息、用户的操作失败信息等。
通过要素识别和要素补充后得到补充信息后的用户问句,再将该用户问句匹配到的知识点标题更能符合用户述求。
图2示出根据一个实施例的针对用户问句补充信息的方法流程图,该方法可以基于图1所示的业务导图。如图2所示,该实施例中的方法包括以下步骤:步骤21,将当前用户问句作为第一匹配模型的输入,得到与所述当前用户问句匹配的若干语义节点,所述若干语义节点构成当前匹配节点集合,所述语义节点为预先建立的业务导图中的语义节点;所述业务导图包括按照树形结构组织的多个语义节点,每个语义节点对应一个标准语义要素,其中所述树形结构的多个叶节点挂载有对应的多个知识点标题;步骤22,当所述当前匹配节点集合匹配到所述业务导图的多条链路时,至少将所述多条链路挂载的多个候选知识点标题、所述当前匹配节点集合对话上下文和用户的行为状态信息作为第二匹配模型的输入,得到各个候选知识点标题与所述当前用户问句的匹配度;步骤23,根据各个候选知识点标题与所述当前用户问句的匹配度,确定对所述当前用户问句补充的标准语义要素,以及与所述当前用户问句匹配的知识点标题。下面描述以上各个步骤的具体执行方式。
首先在步骤21,将当前用户问句作为第一匹配模型的输入,得到与所述当前用户问句匹配的若干语义节点,所述若干语义节点构成当前匹配节点集合,所述语义节点为预先建立的业务导图中的语义节点;所述业务导图包括按照树形结构组织的多个语义节点,每个语义节点对应一个标准语义要素,其中所述树形结构的多个叶节点挂载有对应的多个知识点标题。
本说明书实施例中,由于每个语义节点对应一个标准语义要素,因此确定当前匹配节点集合的过程实际上也是一个要素识别的过程。图3为本说明书实施例提供的针对用户问句补充信息的方法关键步骤示意图,参照图3,该方法主要包含两个关键处理步骤:针对用户问句(query)的要素识别和要素补充,将要素补充后的用户问句输出给问答(QA)引擎。
其中,要素识别的目的,就是判断用户问句中有什么,缺什么。
对于一般的用户提问,可以分为条件和述求两部分。其中条件部分表明当前用户所处的状态,已经完成了什么操作,被施以什么样的处理,或者账户的某种属性处于某种状态;述求是用户提问的中心,表明用户希望获取什么样的信息,或者做什么样的操作。
用户的述求描述又可以进一步细分为:业务/产品,属性,操作和问题类型。对于复杂业务,属性下面还包含属性的子属性或者子操作,操作下面也会包含子属性或者子操作。而问题类型则表明用户想了解核心属性/操作的哪一方面。通常情况下,对于属性相关的问题类型包含:是什么,有没有,在哪里,能用么,怎么用等等;对于操作相关的问题类型包含:可以么,为什么不可以,什么情况下可以,怎么做等等。此外,还有针对状态的直接提问。用户问句中的关键要素可以是一个词,也可以是一个词组,对于词组,其各个组成部分在句子中可以是连续出现的,也可以是中间有间隔的,可以是顺序出现的,也可以是逆序出现的,前提这些组成部分是在依存句法分析中形成紧密的依存关系。
图4为本说明书实施例提供的针对用户问句进行要素识别的方法流程图,参照图4,对于要素识别分为如下步骤:
a)对用户问句进行分词。
b)对分词结果进行句法分析。
c)根据知识库导图和句法分析结果识别句子中包含的各项基本要素,以及基本要素之间的修饰关系。
d)根据同义归一,将各个基本要素转换为标准要素;可以理解的是,业务导图中每个语义节点具有一个关键词和多个关联表达,步骤c)中识别出的基本要素有可能为关联表达,将关联表达转换为关键词,即将基本要素转换为标准要素。
e)要素识别完成后,一方面会传入上下文存储***,为后续的对话提供上下文信息;另一方面会传入要素补充模块,以便进行要素补充。
接着在步骤22,当所述当前匹配节点集合匹配到所述业务导图的多条链路时,至少将所述多条链路挂载的多个候选知识点标题、所述当前匹配节点集合对话上下文和用户的行为状态信息作为第二匹配模型的输入,得到各个候选知识点标题与所述当前用户问句的匹配度。
可以理解的是,本说明书实施例中,对话上下文具体为对话上文。可选地,所述对话上下文包括以下至少一项:
历史匹配节点集合,所述历史匹配节点集合包括与所述当前用户问句之前的各个历史问句匹配的语义节点;
所述当前用户问句的前一句历史问句对应的知识点标题;
与所述当前用户问句的前一句历史问句对应的知识点匹配的语义节点;
与所述当前用户问句所属会话中各个历史问句对应的知识点匹配的语义节点。
可选地,所述用户的行为状态信息包括以下至少一项:
用户购买或者使用的产品信息、用户的浏览行为信息、用户的操作失败信息。
在一个示例中,所述对话上下文包括历史匹配节点集合,所述历史匹配节点集合包括与所述当前用户问句之前的各个历史问句匹配的语义节点;所述第二匹配模型用于确定各个候选知识点标题生成所述当前匹配节点集合包含的语义节点和所述历史匹配节点集合包含的语义节点的第一概率;所述第二匹配模型至少根据所述第一概率,确定各个候选知识点标题与所述当前用户问句的匹配度。
在另一个示例中,所述对话上下文还包括所述当前用户问句的前一句历史问句对应的知识点标题;所述第二匹配模型还用于确定从所述前一句历史问句对应的知识点标题到各个候选知识点标题的第二概率;所述第二匹配模型至少根据所述第一概率和所述第二概率,确定各个候选知识点标题与所述当前用户问句的匹配度。
在另一个示例中,所述第二匹配模型还用于确定从所述用户的行为状态信息到各个候选知识点标题的第三概率;所述第二匹配模型至少根据所述第一概率、所述第二概率和所述第三概率,确定各个候选知识点标题与所述当前用户问句的匹配度。
本说明书实施例中,要素补充部分的输入信息主要可以来自两个方面,即对话上下文和用户信息。具体地,例如,前面要素分析模块的当前用户问句的全部要素,上下文存储***提供的之前对话中提到的全部要素,前一句用户问句,和用户状态的描述,包括用户已经购买或者使用的产品,例如保险,理财,贷款等等,以及这些产品的状态,例如,理赔情况,利息情况,账单信息等等,此外,还包括用户近期的浏览行为,操作失败信息等近期行为和遇到的障碍等等。
要素补充将对这些信息进行综合处理,分析出用户可能的述求。具体处理方式参见图5所示的要素补充示意图。
要素补充的目的是为了明确用户的述求,在用户表达中信息缺失的情况下理解用户的述求。为了达成这一目的,要素补充模块广泛从前一问句的述求,上下文中包含的要素以及用户信息***中的行为状态等提取信息,从而综合判断当前用户最有可能的述求(标问),并基于此判断哪些信息会补充到当前的提问中。下面通过公式的形式给出了用户述求(标问)确定的计算方法。
(kid*,contextKeywords*,keywords*,userStatus*)=argmax(f(kid,prekid,contextKeywords,keywords,userStatus))
其中,
kid*是最终确定的用户述求(标问标识(id));
contextKeywords*是从上下文中补充的信息;
keywords*是从当前问句中提取的信息;
userStatus*是从用户状态中提取的信息;
kid是所有候选的标问id;
prekid是用户前一句提问的标问id(或者用prekids——用户前一句提问对应的全部/topN标问id候选);
contextKeywords={ckey1,ckey2,…,ckeyn}是上下文存储器里面保存的之前对话过程中出现过的关键要素;
keywords={key1,key2,…,keym}是从当前用户提问中识别出的全部关键要素;
userStatus={us1,us2,…,usk}是当前用户的全部状态和行为信息。
f是衡量kid与其他参数匹配度的函数。
在上述方案中衡量kid与其他参数匹配程度的函数f是其中的关键,可以根据业务需求或者某些标准自行定义,在这里给出一个样例函数供参考:
f=f1(kid,prekid)*f2(kid,contextKeywords,keywords)*f3(kid,userStatus)
其中
f1(kid,prekid)是从prekid到kid的转移概率,即p(kid|prekid);如果使用prekid集合prekids,f1也可以定义为sigma(p(kid|prekidi)*p(prekidi))。
f2(kid,contextKeywords,keywords)是kid所代表标问生成前文关键词和当前关键词的概率;这里由于当前关键词keywords缺少要素,所以会使用contextKeywords中关键词进行补词,基于keywords和contextKeywords中要素选择的不同可以有不同的组合方式,这些不同的组合方式代表了当前可能的观察结果(侧重点不同观察结果也不同)。f2实际上是给定若干可能的观察结果估计不同kid的概率;
这里面组合的方式为:{业务|产品=k1,属性|操作=k2,[子属性|子操作=k3],问题类型=k4,……},所有组合的可能需要参考导图中全部的标问句式。
f3(kid,userStatus)是给定用户状态的前提下kid出现的概率,当选定描述用户状态的变量比较少的时候,可以用这些变量的组合描述用户状态,当选定描述用户状态的变量比较多的时候,为了方便计算,f3可以进一步分解为f3=p(us1|kid)p(us2|kid)…p(usk|kid)
上面的各个参数一般来源于真实数据集的统计结果,由于求的是最大值(argmax),所以真实***中不一定要求非常全面的统计数据,缺失值可以用默认参数替代。
为了体现某些运营规则,并简化计算,可以强制某些参数为预设固定值。例如,假定和未到账相关的提问只和用户当前已经进行过的操作相关,则无关业务的相关标问出现概率可以强制为零。
最后在步骤23,根据各个候选知识点标题与所述当前用户问句的匹配度,确定对所述当前用户问句补充的标准语义要素,以及与所述当前用户问句匹配的知识点标题。
在一个示例中,从各个候选知识点标题与所述当前用户问句的匹配度中确定最大匹配度;当所述最大匹配度大于第一阈值时,确定与所述当前用户问句匹配的知识点标题为所述最大匹配度对应的候选知识点标题。
进一步地,还可以包括:
当所述最大匹配度大于第二阈值且小于或等于所述第一阈值时,确定与所述当前用户问句匹配的知识点标题为按照匹配度由大到小排序时排序在前预设数目的候选知识点标题,其中,所述第一阈值大于所述第二阈值。
进一步地,还可以包括:
当所述最大匹配度小于或等于所述第二阈值时,输出提示信息,所述提示信息用于提示用户补充信息。
在一个具体的例子中,通过求解前述公式计算多个候选知识点标题与当前用户问句的匹配度,从而找到与当前用户问句最合适的标准问题,同时也补全了用户问句中的缺失信息。如果最终求得的kid使得对应的f函数值超过预设阈值A,则将kid作为用户述求传递给后续的问答引擎;如果最终求得的kid使得对应的f函数值未超过预设阈值A,但超过预设阈值B,则选topN kid作为可能用户述求传递给后续的问答引擎;如果最终求得的kid使得对应的f函数值未超过预设阈值B,则提示用户进一步明确述求,或者通过反问提示用户补充指定信息。
本说明书实施例提供的方法,要点在于先基于业务导图确定用户问句中有什么,再根据知识库确定需要补什么。要素补充的信息源可以但不限于包括用户提问前文中提到的要素,前一句提问和用户状态。其他信息源也可以增加进去,比如机器人上一句回答中的要素,机器人当前会话(session)中所有回答的要素等等。要素补充过程中各个信息源的信息可以是一视同仁同时处理的。也可以分优先级按顺序进行要素补充,当高优先级的信息源不能得到可信的结果的时候,才考虑低优先级的信息源做要素补充。而且更进一步,可以分场景设定不同的优先级次序。在按次序进行要素补充的时候,可以只考虑当前次序的信息源,也可以考虑合并前面高优先级信息源。
本说明实施例提供的方法相对于通常的针对用户问句补充信息的方法,均能取得更佳的效果。
通常的方法一,场景码补词,如果用户是从某个业务相关的特定入口进入客服机器人,则相应的业务词会被添加到用户的提问中,补充其中缺失的业务词;根据场景码补充业务词,对于从通用入口,例如我的客服进入的用户,则无法进行补充;对于非业务词缺失的模糊提问也不能有效应对。也就是存在缺点1,非特定业务场景不能补词。
本方案要素补充的信息源包括用户提问的前文中的要素,前一句提问的标问,用户近期的行为等等。在没有业务场景信息的情况下,仍然可以进行要素补充。
通常的方法二,上下文补词,当用户的提问出现在对话的过程中,而不是对话的开头的时候,算法会提取用户在前文中提到的词,尝试添加到当前的提问句子中,进而达到信息补充的目的。从上下文中提取关键词补充到用户提问中,对于模糊提问中某个关键词缺失的情况可以有效应对,但是对于提问中缺失短语的情况下,例如“支付宝绑定”解除不了,“绑定银行卡”***繁忙,这类情况则无能为力,而且基于上下文补词算法遍历上文所有可能的候选词,通过语言模型判断句子的通顺程度,而不是有针对性的根据缺失的信息从上文中提取必要的信息;此外,对于用户首问信息缺失的情况也无法应对。也就是存在缺点2,不能补多词。
本方案从各个信息源获取候选要素,通过当前提问要素及候选补充要素和导图中要素表达的适配程度判断补充哪些要素。可以补充单个要素,也可以补充多个要素。
通常的方法三,前文拼接,当用户的提问出现在对话的过程中,而不是对话的开头的时候,将前文中用户的全部提问连接到当前提问的前面,把连接后的提问作为用户本次的提问。一定程度上解决了方法二中只能补充一个词的问题,但也引入新的问题。即拼接后句子里面的干扰信息过多,影响算法对用户真实意图的判断。此外,对于用户省略信息来源于用户之前的操作行为等其他信息源的情况,仅依靠前文的文本拼接是不能解决的;如果用户针对答案进行提问,也是无法解决信息缺失的的问题。也就是存在缺点3,干扰信息过多
首先,本方案中对用户问句(query)进行要素分析,已经过滤了不必要的干扰信息,上下文中存储的同样是要素,也去除了很多不必要干扰。其次,本方案根据用户问句中的要素结合业务导图圈定候选标问,进一步缩减了搜索范围。最后,通过匹配度计算对候选标问进行排序,完成用户意图的歧义消除,较原有方法更加直指用户本来意图。
本说明书实施例中,提出一种基于要素分析和知识导图的客服机器人模糊提问的信息补充方法。主要包括如下特点:首先,识别用户提问中包含哪些导图知识库中预定义的要素。其次,根据提问中已有要素和导图中标问要素组合,结合多信息源上下文,判断用户最有可能的意图是什么,以及需要补充哪些要素。与通常的方法中无视当前提问中包含哪些信息以及知识库中包含哪些信息盲目从各种数据源补充信息相比,更加高效且准确。而且,即便用户提问不在知识库覆盖范围内,也可以通过对提问的要素分析通过补充要素给出与用户述求相近的知识点。
根据另一方面的实施例,还提供一种针对用户问句补充信息的装置,该装置用于执行本说明书实施例提供的针对用户问句补充信息的方法。图6示出根据一个实施例的针对用户问句补充信息的装置的示意性框图。如图6所示,该装置600包括:
匹配节点确定单元61,用于将当前用户问句作为第一匹配模型的输入,得到与所述当前用户问句匹配的若干语义节点,所述若干语义节点构成当前匹配节点集合,所述语义节点为预先建立的业务导图中的语义节点;所述业务导图包括按照树形结构组织的多个语义节点,每个语义节点对应一个标准语义要素,其中所述树形结构的多个叶节点挂载有对应的多个知识点标题;
匹配度确定单元62,用于当所述匹配节点确定单元61得到的当前匹配节点集合匹配到所述业务导图的多条链路时,至少将所述多条链路挂载的多个候选知识点标题、所述当前匹配节点集合、对话上下文和用户的行为状态信息作为第二匹配模型的输入,得到各个候选知识点标题与所述当前用户问句的匹配度;
补充信息单元63,用于根据所述匹配度确定单元62得到的各个候选知识点标题与所述当前用户问句的匹配度,确定对所述当前用户问句补充的标准语义要素,以及与所述当前用户问句匹配的知识点标题。
可选地,作为一个实施例,所述匹配度确定单元62采用的对话上下文包括以下至少一项:
历史匹配节点集合,所述历史匹配节点集合包括与所述当前用户问句之前的各个历史问句匹配的语义节点;
所述当前用户问句的前一句历史问句对应的知识点标题;
与所述当前用户问句的前一句历史问句对应的知识点匹配的语义节点;
与所述当前用户问句所属会话中各个历史问句对应的知识点匹配的语义节点。
可选地,作为一个实施例,所述用户的行为状态信息包括以下至少一项:
用户购买或者使用的产品信息、用户的浏览行为信息、用户的操作失败信息。
可选地,作为一个实施例,所述补充信息单元63,具体用于:
从各个候选知识点标题与所述当前用户问句的匹配度中确定最大匹配度;
当所述最大匹配度大于第一阈值时,确定与所述当前用户问句匹配的知识点标题为所述最大匹配度对应的候选知识点标题。
进一步地,所述补充信息单元63,还用于当所述最大匹配度大于第二阈值且小于或等于所述第一阈值时,确定与所述当前用户问句匹配的知识点标题为按照匹配度由大到小排序时排序在前预设数目的候选知识点标题,其中,所述第一阈值大于所述第二阈值。
进一步地,所述补充信息单元63,还用于当所述最大匹配度小于或等于所述第二阈值时,输出提示信息,所述提示信息用于提示用户补充信息。
可选地,作为一个实施例,所述对话上下文包括历史匹配节点集合,所述历史匹配节点集合包括与所述当前用户问句之前的各个历史问句匹配的语义节点;所述匹配度确定单元62采用的第二匹配模型用于确定各个候选知识点标题生成所述当前匹配节点集合包含的语义节点和所述历史匹配节点集合包含的语义节点的第一概率;
所述第二匹配模型至少根据所述第一概率,确定各个候选知识点标题与所述当前用户问句的匹配度。
进一步地,所述对话上下文还包括所述当前用户问句的前一句历史问句对应的知识点标题;
所述第二匹配模型还用于确定从所述前一句历史问句对应的知识点标题到各个候选知识点标题的第二概率;
所述第二匹配模型至少根据所述第一概率和所述第二概率,确定各个候选知识点标题与所述当前用户问句的匹配度。
进一步地,所述第二匹配模型还用于确定从所述用户的行为状态信息到各个候选知识点标题的第三概率;
所述第二匹配模型至少根据所述第一概率、所述第二概率和所述第三概率,确定各个候选知识点标题与所述当前用户问句的匹配度。
通过本说明书实施例提供的装置,首先匹配节点确定单元61将当前用户问句作为第一匹配模型的输入,得到预先建立的业务导图中与所述当前用户问句匹配的语义节点所构成的当前匹配节点集合,接着匹配度确定单元62当所述当前匹配节点集合匹配到所述业务导图的多条链路时,至少将所述多条链路挂载的多个候选知识点标题、所述当前匹配节点集合、对话上下文和用户的行为状态信息作为第二匹配模型的输入,得到各个候选知识点标题与所述当前用户问句的匹配度,最后补充信息单元63根据各个候选知识点标题与所述当前用户问句的匹配度,确定对所述当前用户问句补充的标准语义要素,以及与所述当前用户问句匹配的知识点标题。由上可见,本说明书实施例中,不是单纯根据补充信息后的用户问句的通顺程度来确定是否补充该信息,而是基于业务导图中每个语义节点对应的标准语义要素,首先识别用户问句包含哪些标准语义要素,然后再根据对话上下文和用户的行为状态信息确定在用户问句中补充该用户问句缺失的标准语义要素,从而能够在用户问句补充信息后更接近用户述求。
根据另一方面的实施例,还提供一种计算机可读存储介质,其上存储有计算机程序,当所述计算机程序在计算机中执行时,令计算机执行结合图2至图5所描述的方法。
根据再一方面的实施例,还提供一种计算设备,包括存储器和处理器,所述存储器中存储有可执行代码,所述处理器执行所述可执行代码时,实现结合图2至图5所描述的方法。
本领域技术人员应该可以意识到,在上述一个或多个示例中,本发明所描述的功能可以用硬件、软件、固件或它们的任意组合来实现。当使用软件实现时,可以将这些功能存储在计算机可读介质中或者作为计算机可读介质上的一个或多个指令或代码进行传输。
以上所述的具体实施方式,对本发明的目的、技术方案和有益效果进行了进一步详细说明,所应理解的是,以上所述仅为本发明的具体实施方式而已,并不用于限定本发明的保护范围,凡在本发明的技术方案的基础之上,所做的任何修改、等同替换、改进等,均应包括在本发明的保护范围之内。