基于人工智能的对话方法、装置及计算机可读介质与流程

文档序号:14714463发布日期:2018-06-16 01:03阅读:198来源:国知局
基于人工智能的对话方法、装置及计算机可读介质与流程

本发明涉及计算机应用技术领域,尤其涉及一种基于人工智能的对话方法、装置及计算机可读介质。



背景技术:

人工智能(Artificial Intelligence;AI),是研究、开发用于模拟、延伸和扩展人的智能的理论、方法、技术及应用系统的一门新的技术科学。人工智能是计算机科学的一个分支,它企图了解智能的实质,并生产出一种新的能以人类智能相似的方式做出反应的智能机器,该领域的研究包括机器人、语言识别、图像识别、自然语言处理和专家系统等。

智能对话系统的应用中,多采用的基于检索方式的对话系统,该基于检索方式的对话系统的框架是离线人工整理对话的数据对pair<utterance(用户话语),response(用户回复)>,建立对话数据库,该对话数据库中可以包括无数对的对话。这样在用户输入一个新的话语utterance的时候,通过匹配库里相似的话语,使用相似话语的回复response作为用户的回复,来呈现给用户。

但是在实际应用中,不同的话语是有具体的语境的,在不同的语境里,相同的一句话可能具有完全不同的含义表达,因此现有技术中,仅根据预先建立的对话数据库来获取用户的回复语句的准确性较差。



技术实现要素:

本发明提供了一种基于人工智能的对话方法、装置及计算机可读介质,用于提高获取用户的回复语句的准确性。

本发明提供一种基于人工智能的对话方法,所述方法包括:

接收用户的输入语句以及所述输入语句对应的上文语句;

根据所述输入语句,从预设的语料库中获取对应的多个候选对话语句;

根据所述输入语句、所述上文语句、各所述候选对话语句以及预先训练的分值预估模型,为各所述候选对话语句打分;

根据所述多个候选对话语句的打分,从所述多个候选对话语句中获取目标对话语句,实现对话。

进一步可选地,如上所述的方法中,根据所述输入语句,从预设的语料库中获取对应的多个候选对话语句,具体包括:

根据所述输入语句,并结合所述上文语句,从所述语料库中获取同时与所述输入语句和所述上文语句对应的多个候选对话语句。

进一步可选地,如上所述的方法中,根据所述输入语句、所述上文语句、各所述候选对话语句以及预先训练的分值预估模型,为各所述候选对话语句打分,具体包括:

对于各所述候选对话语句,将所述输入语句、所述上文语句以及对应的所述候选对话语句输入至所述分值预估模型,获取对应的所述候选对话语句的打分。

进一步可选地,如上所述的方法中,根据所述输入语句、所述上文语句、各所述候选对话语句以及预先训练的分值预估模型,为各所述候选对话语句打分之前,所述方法还包括:

采集数组训练数据,各组所述训练数据中包括训练输入语句、训练上文语句以及多个训练对话语句,所述多个训练对话语句中包括正例对话语句和负例对话语句;

根据各组所述训练数据,训练所述分值预估模型,直到所述分值预估模型对应的目标函数收敛,确定所述分值预估模型的参数,从而确定所述分值预估模型。

进一步可选地,如上所述的方法中,根据所述输入语句、所述上文语句、各所述候选对话语句以及预先训练的分值预估模型,为各所述候选对话语句打分,具体包括:

根据所述输入语句、所述上文语句、各所述候选对话语句以及预先训练的字粒度的表达模型、词粒度的表达模型以及短语粒度的表达模型,分别获取所述输入语句、所述上文语句、以及各所述候选对话语句的字粒度表达、词粒度表达以及短语粒度表达;

根据所述输入语句和所述上文语句的字粒度表达、词粒度表达以及短语粒度表达,获取所述输入语句与所述上文语句之间的正向匹配表达以及反向匹配表达;

根据所述输入语句和各所述候选对话语句的字粒度表达、词粒度表达以及短语粒度表达,获取所述输入语句与各所述候选对话语句之间的正向匹配表达以及反向匹配表达;

根据所述输入语句与所述上文语句之间的正向匹配表达以及反向匹配表达、所述输入语句与各所述候选对话语句之间的正向匹配表达以及反向匹配表达以及预先训练的打分模型,获取各所述候选对话语句的打分。

进一步可选地,如上所述的方法中,根据所述输入语句和所述上文语句的字粒度表达、词粒度表达以及短语粒度表达,获取所述输入语句与所述上文语句之间的正向匹配表达以及反向匹配表达,具体包括:

根据所述输入语句和所述上文语句的字粒度表达、词粒度表达以及短语粒度表达,分别获取所述输入语句与所述上文语句之间的字粒度的正向相似度表达以及反向相似度表达、词粒度的正向相似度表达以及反向相似度表达、以及短语粒度的正向相似度表达以及反向相似度表达;

根据所述输入语句与所述上文语句之间的所述字粒度的正向相似度表达、所述词粒度的正向相似度表达以及所述短语粒度的正向相似度表达,获取所述输入语句与所述上文语句之间的所述正向匹配表达;

根据所述输入语句与所述上文语句之间的所述字粒度的反向相似度表达、所述词粒度的反向相似度表达以及所述短语粒度的反向相似度表达,获取所述输入语句与所述上文语句之间的所述反向匹配表达。

进一步可选地,如上所述的方法中,根据所述输入语句,从预设的语料库中获取对应的多个候选对话语句之前,所述方法还包括:

获取人工方式采集的多组三元语料组,构成所述语料库;各所述三元语料组中包括预设上文语句、预设输入语句以及预设对话语句。

进一步可选地,如上所述的方法中,根据所述输入语句,从预设的语料库中获取对应的多个候选对话语句之前,所述方法还包括:

采集数组候选三元语料组;

采用预先训练的上下文相关模型,从所述数组候选三元语料组中获取符合上下文相关性的多组三元语料组,构成所述语料库;

进一步地,采用预先训练的上下文相关模型,从所述数组候选三元语料组中获取符合上下文相关性的多组三元语料组之前,所述方法还包括:

获取人工采集的多组三元训练语料组,各所述三元训练语料组中包括人工标注的训练上文语句、训练输入语句、训练对话语句以及已知的上下文相关性的概率;

根据各组所述三元训练语料组,训练上下文相关识别模型。

本发明提供一种基于人工智能的对话装置,所述装置包括:

接收模块,用于接收用户的输入语句以及所述输入语句对应的上文语句;

获取模块,用于根据所述输入语句,从预设的语料库中获取对应的多个候选对话语句;

打分模块,用于根据所述输入语句、所述上文语句、各所述候选对话语句以及预先训练的分值预估模型,为各所述候选对话语句打分;

所述获取模块,还用于根据所述多个候选对话语句的打分,从所述多个候选对话语句中获取目标对话语句,实现对话。

进一步可选地,如上所述的装置中,所述获取模块,具体用于根据所述输入语句,并结合所述上文语句,从所述语料库中获取同时与所述输入语句和所述上文语句对应的多个候选对话语句。

进一步可选地,如上所述的装置中,所述打分模块,具体用于对于各所述候选对话语句,将所述输入语句、所述上文语句以及对应的所述候选对话语句输入至所述分值预估模型,获取对应的所述候选对话语句的打分。

进一步可选地,如上所述的装置中,所述装置还包括:

采集模块,用于采集数组训练数据,各组所述训练数据中包括训练输入语句、训练上文语句以及多个训练对话语句,所述多个训练对话语句中包括正例对话语句和负例对话语句;

训练模块,用于根据各组所述训练数据,训练所述分值预估模型,直到所述分值预估模型对应的目标函数收敛,确定所述分值预估模型的参数,从而确定所述分值预估模型。

进一步可选地,如上所述的装置中,所述打分模块,具体用于:

根据所述输入语句、所述上文语句、各所述候选对话语句以及预先训练的字粒度的表达模型、词粒度的表达模型以及短语粒度的表达模型,分别获取所述输入语句、所述上文语句、以及各所述候选对话语句的字粒度表达、词粒度表达以及短语粒度表达;

根据所述输入语句和所述上文语句的字粒度表达、词粒度表达以及短语粒度表达,获取所述输入语句与所述上文语句之间的正向匹配表达以及反向匹配表达;

根据所述输入语句和各所述候选对话语句的字粒度表达、词粒度表达以及短语粒度表达,获取所述输入语句与各所述候选对话语句之间的正向匹配表达以及反向匹配表达;

根据所述输入语句与所述上文语句之间的正向匹配表达以及反向匹配表达、所述输入语句与各所述候选对话语句之间的正向匹配表达以及反向匹配表达以及预先训练的打分模型,获取各所述候选对话语句的打分。

进一步可选地,如上所述的装置中,所述打分模块,具体用于:

根据所述输入语句和所述上文语句的字粒度表达、词粒度表达以及短语粒度表达,分别获取所述输入语句与所述上文语句之间的字粒度的正向相似度表达以及反向相似度表达、词粒度的正向相似度表达以及反向相似度表达、以及短语粒度的正向相似度表达以及反向相似度表达;

根据所述输入语句与所述上文语句之间的所述字粒度的正向相似度表达、所述词粒度的正向相似度表达以及所述短语粒度的正向相似度表达,获取所述输入语句与所述上文语句之间的所述正向匹配表达;

根据所述输入语句与所述上文语句之间的所述字粒度的反向相似度表达、所述词粒度的反向相似度表达以及所述短语粒度的反向相似度表达,获取所述输入语句与所述上文语句之间的所述反向匹配表达。

进一步可选地,如上所述的装置中,所述获取模块,还用于获取人工方式采集的多组三元语料组,构成所述语料库;各所述三元语料组中包括预设上文语句、预设输入语句以及预设对话语句。

进一步可选地,如上所述的装置中,所述采集模块,还用于采集数组候选三元语料组;

所述获取模块,还用于采用预先训练的上下文相关模型,从所述数组候选三元语料组中获取符合上下文相关性的多组三元语料组,构成所述语料库;

进一步地,所述获取模块,还用于获取人工采集的多组三元训练语料组,各所述三元训练语料组中包括人工标注的训练上文语句、训练输入语句、训练对话语句以及已知的上下文相关性的概率;

所述训练模块,还用于根据各组所述三元训练语料组,训练上下文相关识别模型。

本发明还提供一种计算机设备,所述设备包括:

一个或多个处理器;

存储器,用于存储一个或多个程序;

当所述一个或多个程序被所述一个或多个处理器执行,使得所述一个或多个处理器实现如上所述的基于人工智能的对话方法。

本发明还提供一种计算机可读介质,其上存储有计算机程序,该程序被处理器执行时实现如上所述的基于人工智能的对话方法。

本发明的基于人工智能的对话方法、装置及计算机可读介质,通过接收用户的输入语句以及输入语句对应的上文语句;根据输入语句,从预设的语料库中获取对应的多个候选对话语句;根据输入语句、上文语句、各候选对话语句以及预先训练的分值预估模型,为各候选对话语句打分;根据多个候选对话语句的打分,从多个候选对话语句中获取目标对话语句,实现对话。本发明的技术方案,根据输入语句以及输入语句的上文语句,获取目标对话语句,充分参考了语境,从而能够有效地提高获取的目标对话语句的准确性。且本发明的技术方案,通过采用模型的方式获取目标对话语句,能够有效地提高对话的智能性以及对话效率。

【附图说明】

图1为本发明的基于人工智能的对话方法实施例的流程图。

图2为本发明的基于人工智能的对话装置实施例一的结构图。

图3为本发明的基于人工智能的对话装置实施例二的结构图。

图4为本发明的计算机设备实施例的结构图。

图5为本发明提供的一种计算机设备的示例图。

【具体实施方式】

为了使本发明的目的、技术方案和优点更加清楚,下面结合附图和具体实施例对本发明进行详细描述。

图1为本发明的基于人工智能的对话方法实施例的流程图。如图1所示,本实施例的基于人工智能的对话方法,具体可以包括如下步骤:

100、接收用户的输入语句以及输入语句对应的上文语句;

本实施例的基于人工智能的对话方法的执行主体为基于人工智能的对话装置。该基于人工智能的对话装置可以为一个独立的实体,应用在智能对话系统中,在接收到用户输入的输入语句以及输入语句对应的上文语句之后,根据输入语句和对应的上文语句,获取目标对话语句,并进一步向用户反馈目标对话语句,实现对话。

本实施例中,可以采用U表示用户的输入语句Utterance,采用S表示输入语句Utterance的相关上下文(context)的上文语句Session。采用R表示输入语句Utterance对应的答复语句即对话语句Response。本实施例中的上文语句为输入语句的上一句最相邻语句或者上两句最相邻语句。

101、根据输入语句,从预设的语料库中获取对应的多个候选对话语句;

例如,该步骤具体可以包括:从输入语句中获取检索词;根据检索词,采用倒排索引的方式从语料库中获取对应的多个候选对话语句。

具体地,可以将用户的输入语句进行中文分词,然后使用词频-逆向文件频率(Term Frequency-Inverse Document Frequency,TF-IDF)计算重要度的方式,计算输入语句分词后得到的多个分词,然后选择重要度较高的前N个分词作为输入语句的检索词。对于各检索词,采用倒排索引的方式,从语料库中获取对应的多个预设输入语句,然后分别获取各预设输入语句对应的预设对话语句,作为输入语句对应的候选对话语句,从而实现多个候选对话语句的召回。

例如,该步骤具体可以包括:根据输入语句,并结合上文语句,从语料库中获取同时与输入语句和上文语句对应的多个候选对话语句。

参考上述根据输入语句召回多个候选对话语句的方式,可以召回到上文语句对应的多个候选对话语句。然后从输入语句对应的多个候选对话语句和上文语句对应的多个候选对话语句中,获取同时与输入语句和上文语句对应的多个候选对话语句,作为最终的多个候选对话语句。

102、根据输入语句、上文语句、各候选对话语句以及预先训练的分值预估模型,为各候选对话语句打分;

对于每个候选对话语句,可以利用预先训练的分值预估模型,根据输入语句、上文语句以及该候选对话语句,对该候选对话语句打分。本实施例的候选对话语句的打分可以标识该候选对话语句在智能对话系统中被输出的概率值p。该候选对话语句被输出的概率值p越大,对应的该候选对话语句打分越高;反之亦然。

103、根据多个候选对话语句的打分,从多个候选对话语句中获取目标对话语句,实现对话。

在得到多个候选对话语句的打分之后,可以从多个候选对话语句中获取打分最高的候选对话语句作为目标对话语句,反馈给用户,实现智能对话。或者本实施例中,也可以根据多个候选对话语句的打分,从多个候选对话语句中获取top N个候选对话语句,N的数量可以根据实际需求来选取,例如10个或者5个。然后可以随机从N个候选对话语句中获取一个作为目标对话语句,并反馈给用户,实现智能对话。

进一步可选地,上述实施例中的步骤102“根据输入语句、上文语句、各候选对话语句以及预先训练的分值预估模型,为各候选对话语句打分”中的分值预估模型,具体包括两种情况:

第一种情况中,分值预估模型可以包括两类:一类为字粒度的表达模型、词粒度的表达模型以及短语粒度的表达模型,另一类为打分模型。其中字粒度的表达模型用于实现对句子进行字粒度的分词,并将分词后的每个字embedding成向量表示,实现对句子进行字粒度的向量表达。词粒度的表达模型用于实现对句子进行词粒度的分词,并将分词后的每个词embedding成向量表示,实现对句子进行词粒度的向量表达。短语粒度的表达模型用于实现对句子进行短语粒度的分词,并将分词后的每个短语embedding成向量表示,实现对句子进行短语粒度的向量表达。然后再结合打分模型,实现对各候选对话语句进行打分。此时,该步骤102具体可以包括如下步骤:

(a1)根据输入语句U、上文语句S、各候选对话语句R以及预先训练的字粒度的表达模型、词粒度的表达模型以及短语粒度的表达模型,分别获取输入语句、上文语句、以及各候选对话语句的字粒度表达、词粒度表达以及短语粒度表达;

本实施例中,也需要预先训练字粒度的表达模型、词粒度的表达模型以及短语粒度的表达模型,实现准确表示字、词语以及短语的向量表达。例如,字粒度的表达模型训练时,可以参考字的中文语义,并结合字的同义字以及反义字来进行训练,使得同义字之间的向量表达的余弦距离足够近,而反义字之间的向量表达的余弦距离足够远。通过对一定数量级别的字进行训练,可以确定该字粒度的表达模型的参数,从而确定该子粒度的表达模型。基于同样的原理,可以实现对词粒度的表达模型以及短语粒度的表达模型进行训练。

例如,对于输入语句U,可以将输入语句U按照字粒度进行切分,得到多个字,对于输入语句U中的每个字,可以根据字粒度的表达模型,获取该输入语句U中的每个字对应的向量形式的字粒度表达。同理,还可以将输入语句U按照词粒度进行切分,得到多个词。对于输入语句U中的每个词,可以根据词粒度的表达模型,获取该输入语句U中的每个词对应的向量形式的词粒度表达。同理,还可以将输入语句U按照短语粒度进行切分,得到多个短语。对于输入语句U中的每个短语,可以根据短语粒度的表达模型,获取该输入语句U中的每个短语对应的向量形式的短语粒度表达。本实施例中字的粒度最小,短语的粒度最大,每个词中可以包括一个字、两个字或者多个字。每个短语中可以包括一个词、两个词或者多个词。

同理,按照上述对输入语句U的处理方式,对上文语句S以及各候选对话语句R进行处理,可以获取到上文语句S以及各候选对话语句R分别对应的向量形式的字粒度表达、词粒度表达以及短语粒度表达。

(b1)根据输入语句U和上文语句S的字粒度表达、词粒度表达以及短语粒度表达,获取输入语句U与上文语句S之间的正向匹配表达以及反向匹配表达;

本实施例中,采用双向的多层次的attention机制来刻画匹配过程。例如采用U2S表示输入语句U与上文语句S之间的正向匹配表达,采用S2U表示输入语句U与上文语句S之间的反向匹配表达。

例如,该步骤(b1)具体可以包括如下步骤:

(a2)根据输入语句U和上文语句S的字粒度表达、词粒度表达以及短语粒度表达,分别获取输入语句U与上文语句S之间的字粒度的正向相似度表达以及反向相似度表达、词粒度的正向相似度表达以及反向相似度表达、以及短语粒度的正向相似度表达以及反向相似度表达;

(b2)根据输入语句U与上文语句S之间的字粒度的正向相似度表达、词粒度的正向相似度表达以及短语粒度的正向相似度表达,获取输入语句U与上文语句S之间的正向匹配表达;

(c2)根据输入语句U与上文语句S之间的字粒度的反向相似度表达、词粒度的反向相似度表达以及短语粒度的反向相似度表达,获取输入语句U与上文语句S之间的反向匹配表达。

例如,下面以输入语句U与上文语句S之间的反向匹配表达S2U的获取过程为例,描述本实施例的技术方案。

首先,获取输入语句U与上文语句S的字粒度的反向相似度表达A1(S,U),即为输入语句U与上文语句S的字粒度的反向相似度矩阵。A1(S,U)中的每一位置的元素数值等于A1(i,j),其中A1(i,j)=cosine(wi,wj),此时wi可以表示上文语句S中的第i个字的字粒度表达,wj可以表示输入语句U中的第j个字的字粒度表达,这样,可以得到A1(S,U)。

按照A1(S,U)的获取方式,可以获取输入语句U与上文语句S的词粒度的反向相似度表达A2(S,U)以及短语粒度的反向相似度表达A3(S,U)。

对于A1(S,U),分别列求和、行求和得到不同的attention权重A1(S)和A1(U),然后利用如下公式可以获取到反向匹配表达S2U的字粒度的匹配表达S2U_A1。

S2U_A1=[S*A1(U)+S]*A1(S)+S]

同理,对于A2(S,U)和A3(S,U),分别列求和、行求和得到不同的attention权重A2(S)和A2(U)、以及A3(S)和A3(U),然后利用如下公式可以获取到反向匹配表达S2U的词粒度的匹配表达S2U_A2和短语粒度的匹配表达S2U_A3。

S2U_A2=[S*A2(U)+S]*A2(S)+S]

S2U_A3=[S*A3(U)+S]*A3(S)+S]

最后,将S2U_A1,S2U_A2,S2U_A3进行拼接,得到U2S的反向匹配表达。

参考上述输入语句U与上文语句S之间的反向匹配表达S2U的获取方式,可以获取到输入语句U与上文语句S之间的正向匹配表达U2S,详细可以参考上述实施例的记载,在此不再赘述。

(c1)根据输入语句U和各候选对话语句R的字粒度表达、词粒度表达以及短语粒度表达,获取输入语句U与各候选对话语句R之间的正向匹配表达以及反向匹配表达;

具体地,参考上述实施例的步骤(b1)中的输入语句U与上文语句S之间的正向匹配表达以及反向匹配表达的获取方式,该步骤(c1)具体可以包括如下步骤:

(a3)根据输入语句U和各候选对话语句R的字粒度表达、词粒度表达以及短语粒度表达,分别获取输入语句U与各候选对话语句U之间的字粒度的正向相似度表达以及反向相似度表达、词粒度的正向相似度表达以及反向相似度表达、以及短语粒度的正向相似度表达以及反向相似度表达;

(b3)根据输入语句U与各候选对话语句R之间的字粒度的正向相似度表达、词粒度的正向相似度表达以及短语粒度的正向相似度表达,获取输入语句U与各候选对话语句R之间的正向匹配表达U2R;

(c3)根据输入语句U与各候选对话语句R之间的字粒度的反向相似度表达、词粒度的反向相似度表达以及短语粒度的反向相似度表达,获取输入语句U与各候选对话语句R之间的反向匹配表达R2U。

步骤(a3)-(c3)中输入语句U与任意一个候选对话语句R之间的正向匹配表达U2R以及反向匹配表达R2U的获取过程,具体可以参考上述步骤(a2)-(c2)中输入语句U与上文语句S之间的正向匹配表达U2S以及反向匹配表达S2U的获取过程,在此不再赘述。

(d1)根据输入语句U与上文语句S之间的正向匹配表达U2S以及反向匹配表达S2U、输入语句U与各候选对话语句R之间的正向匹配表达U2R以及反向匹配表达R2U以及预先训练的打分模型,获取各候选对话语句R的打分。

其中候选对话语句R的打分可以表示为:score(R)=f(S,U,R)。

对于任意一个候选对话语句R,可以将对应的S2U、U2S、U2R以及R2U拼接,最终得到一个关于该候选对话语句R的全向量。然后将该候选对话语句R的全向量输入至预先训练的打分模型中,该打分模型便可以输出该候选对话语句R的打分。也就是说,该打分模型就类似于一个全联通的隐层向量,其向量维度与该候选对话语句R的全向量的维度相对,例如若候选对话语句R的全向量的维度为1*100,则打分模型对应的全联通的隐层向量的维度为100*1,这样,便可以将候选对话语句R的全向量乘以预先训练好的全联通的隐层向量,便得到该候选对话语句R的打分,该打分标识该候选对话语句R被输出的概率值p。参考上述方式,可以获取到每一个候选对话语句R的打分。

本实施例的打分模型在训练时,可以采集数组已知正确的语料三元组S、U和R,作为训练数据的正例,并采集多组已知错误的语料三元组S、U和R‘,其中R’不是S和U对应的对话语句,作为训练数据的负例;其中正例和负例的数量比例大于1,如5:1、10:1或者20:1或者其他比例。在训练时,设置训练数据的正例的已知打分为1,训练数据的负例的已知打分为0。如果根据上述实施例的方式,预测的各训练数据对应的打分与已知打分不一致,则调整打分模型的参数,使得打分模型预测的打分朝向已知打分的方向变化。按照上述方式,采用数万条的训练数据对打分模型进行训练,直到打分模型预测训练数据的打分与已知打分一致,确定打分模型的参数,从而确定打分模型,即打分模型训练完毕。

第二种情况中,本实施例的预先训练的分值预估模型为一个整体的大模型,使用时,对于任意一个候选对话语句,将输入语句、上文语句以及对应的候选对话语句直接输入至该分值预估模型,该分值预估模型便可以预测该候选对话语句的打分,从而可以获取到对应的候选对话语句的打分。

需要说明的是,本实施例的分值预估模型为一个整体的大模型,该模型集成有上述第一种情况中的字粒度的表达模型、词粒度的表达模型、短语粒度的表达模型以及打分模型的结构。

该情况中,在线使用时,仅需要将输入语句、上文语句以及对应的候选对话语句直接输入至该分值预估模型,该分值预估模型便可以输出该候选对话语句的打分,其打分过程可以参考上述第一种情况的记载。

对于上述第二种情况,步骤102“根据输入语句、上文语句、各候选对话语句以及预先训练的分值预估模型,为各候选对话语句打分”之前,还可以包括如下步骤:采集数组训练数据,各组训练数据中包括训练输入语句、训练上文语句以及多个训练对话语句,多个训练对话语句中包括正例对话语句和负例对话语句;其中正例对话语句和负例对话语句的数量比例大于1,如5:1、10:1或者20:1或者其他比例。其中作为正例对话语句的训练对话语句可以采用R+来表示。根据各组训练数据,训练分值预估模型,直到分值预估模型对应的目标函数收敛,确定分值预估模型的参数,从而确定分值预估模型。

训练时,每一组训练数据中的任意一个训练对话语句采用R′表示,R′∈V,V为该组训练数据中的所有训练对话语句的集合,对于每一组训练数据中的任意一个训练对话语句R′,按照上述方式,均可以获取到分值预估模型对其的打分f(R′,S,U)。其中每个对话语句R′的打分可以表示为f(R′,S,U),并根据如下公式,获取每个对话语句R′被输出的概率p(R′|S,U)。

并使用如下公式获取优化的目标函数L:

L=-log∏p(R′|S,U)

训练时,对于每一组训练数据中的每一个训练对话语句,都采用上述方式获取对应的优化的目标函数L,然后调整分值预估模型的参数,包括上述实施例中的字粒度的表达模型、词粒度的表达模型、短语粒度的表达模型以及打分模型的参数,使得L值减小。按照上述的方式,采用无数组训练数据不断地训练,直到优化目标函数L值最小,确定分值预估模型的参数,即确定其所包括的字粒度的表达模型、词粒度的表达模型、短语粒度的表达模型以及打分模型的参数,从而确定分值预估模型,即分值预估模型训练完毕。实际应用中,具体可以使用随机梯度下降(Stochastic Gradient Descent;SGD)的方法对分值预估模型进行训练。

也就是说,第二种情况中,若该分值预估模型中集成有多个模型,训练时,同时对其包括的多个模型同时训练;而第一种情况是分别采用不同的训练数据,分开对两类模型分别进行训练,其实现方式并不相同。

进一步可选地,上述实施例的步骤101“根据输入语句,从预设的语料库中获取对应的多个候选对话语句”之前,具体还可以包括生成语料库。本实施例的语料库的生成可以包括如下两种方式:

第一种方式采用纯人工采集的方式,具体地,人工采集多组三元语料组,构成语料库;各三元语料组中包括预设上文语句、预设输入语句以及预设对话语句。也就是说,由工作人员人工采集并审核获取多组正确的三元语料组,构成语料库。本实施例所述的正确的三元语料组指的是预设上文语句、预设输入语句以及预设对话语句为具有上下文相关性的三元组。本实施例中,可以从论坛、微博等互联网语料中挖掘三元语料组。由于在对话中,其中连续的三句话可能是上下文相关的,也有可能是位于前后两个话题的交接点、上下文不相关的。因此,本实施例的三元语料组中的预设上文语句、预设输入语句以及预设对话语句必须是上下文相关的。

第二种方式采用智能化采集的方式,具体地,首先可以随机采集数组候选三元语料组;例如,可以采用窗口移动的方式随机从互联网语料中获取三句话,分别作为预设上文语句、预设输入语句以及预设对话语句。窗口的大小为三句话。然后采用预先训练的上下文相关模型,从数组候选三元语料组中获取符合上下文相关性的多组三元语料组,构成语料库。例如使用时,可以将每组候选三元语料组输入至该上下文相关模型,该上下文相关模型可以输出该组候选三元语料组具有上下文相关性的概率,若该概率大于或者等于预设的概率阈值,可以认为该组候选三元语料组具有上下文相关性,可以作为语料库中的三元语料组;否则若该概率小于预设的概率阈值,可以认为该组候选三元语料组不具有上下文相关性,不予保留。

实际应用中,若上文语句采用输入语句的紧相邻的前两句,则对应的窗口的大小设置为4句话,采用同样的方式也可以获取到多组三元语料组,从而得到语料库。

进一步地,采用预先训练的上下文相关模型,从数组候选三元语料组中获取符合上下文相关性的多组三元语料组之前,还可以包括:获取人工方式采集的多组三元训练语料组,各三元训练语料组中包括人工标注的训练上文语句、训练输入语句、训练对话语句以及已知的上下文相关性的概率;其中各三元训练语料组中包括作为正例的三元训练语料组和作为负例的三元训练语料组,同理,正例和负例的数量比例大于1,如5:1、10:1或者20:1或者其他比例。其中,作为正例的三元训练语料组对应的已知的上下文相关性的概率为1,而作为负例的三元训练语料组对应的已知的上下文相关性的概率为0。然后根据各组三元训练语料组,训练上下文相关识别模型。训练之前,上下文相关识别模型的参数设置有初始值。训练时,将各组三元训练语料组输入至该上下文相关识别模型中,该上下文相关识别模型预测对应的三元训练语料组的上下文相关性的概率,然后判断预测的概率与已知的概率是否一致,若不一致,调整上下文相关识别模型的参数,使得预测的概率与已知的概率一致。采用上述方式,使用数组三元训练语料组对该上下文相关识别模型进行训练,直到预测的概率与已知的概率一致,确定上下文相关识别模型的参数,从而确定上下文识别模型,即上下文识别模型训练完毕。

本实施例的基于人工智能的对话方法,通过接收用户的输入语句以及输入语句对应的上文语句;根据输入语句,从预设的语料库中获取对应的多个候选对话语句;根据输入语句、上文语句、各候选对话语句以及预先训练的分值预估模型,为各候选对话语句打分;根据多个候选对话语句的打分,从多个候选对话语句中获取目标对话语句,实现对话。本实施例的技术方案,根据输入语句以及输入语句的上文语句,获取目标对话语句,充分参考了语境,从而能够有效地提高获取的目标对话语句的准确性。且本实施例的技术方案,通过采用模型的方式获取目标对话语句,能够有效地提高对话的智能性以及对话效率。

图2为本发明的基于人工智能的对话装置实施例一的结构图。如图4所示,本实施例的基于人工智能的对话装置,具体可以包括:

接收模块10用于接收用户的输入语句以及输入语句对应的上文语句;

获取模块11用于根据接收模块10接收的输入语句,从预设的语料库中获取对应的多个候选对话语句;

打分模块12用于根据接收模块10接收的输入语句、上文语句、获取模块11获取的各候选对话语句以及预先训练的分值预估模型,为获取模块11获取的各候选对话语句打分;

获取模块11还用于根据打分模块12得到的多个候选对话语句的打分,从多个候选对话语句中获取目标对话语句,实现对话。

本实施例的基于人工智能的对话装置,通过采用上述模块实现基于人工智能的对话处理的实现原理以及技术效果与上述相关方法实施例的实现相同,详细可以参考上述相关方法实施例的记载,在此不再赘述。

图3为本发明的基于人工智能的对话装置实施例二的结构图。如图3所示,本实施例的基于人工智能的对话装置在上述图2所示实施例的技术方案的基础上,进一步更加详细地介绍本发明的技术方案。

本实施例的基于人工智能的对话装置中,获取模块11具体用于根据接收模块10接收的输入语句,并结合接收模块10接收的上文语句,从语料库中获取同时与输入语句和上文语句对应的多个候选对话语句。

进一步可选地,本实施例的基于人工智能的对话装置中,打分模块12具体用于对于各候选对话语句,将接收模块10接收的输入语句、上文语句以及对应的候选对话语句输入至分值预估模型,获取对应的候选对话语句的打分。

此时对应地,如图3所示,本实施例的基于人工智能的对话装置中,还包括:

采集模块13用于采集数组训练数据,各组训练数据中包括训练输入语句、训练上文语句以及多个训练对话语句,多个训练对话语句中包括正例对话语句和负例对话语句;

训练模块14用于根据采集模块13采集的各组训练数据,训练分值预估模型,直到分值预估模型对应的目标函数收敛,确定分值预估模型的参数,从而确定分值预估模型。

此时对应地,打分模块12具体用于对于获取模块11获取的各候选对话语句,将接收模块10接收的输入语句、上文语句以及对应的候选对话语句输入至训练模块14训练的分值预估模型,获取对应的候选对话语句的打分。

或者可选地,本实施例的基于人工智能的对话装置中,打分模块12具体用于:

根据输入语句、上文语句、各候选对话语句以及预先训练的字粒度的表达模型、词粒度的表达模型以及短语粒度的表达模型,分别获取输入语句、上文语句、以及各候选对话语句的字粒度表达、词粒度表达以及短语粒度表达;

根据输入语句和上文语句的字粒度表达、词粒度表达以及短语粒度表达,获取输入语句与上文语句之间的正向匹配表达以及反向匹配表达;

根据输入语句和各候选对话语句的字粒度表达、词粒度表达以及短语粒度表达,获取输入语句与各候选对话语句之间的正向匹配表达以及反向匹配表达;

根据输入语句与上文语句之间的正向匹配表达以及反向匹配表达、输入语句与各候选对话语句之间的正向匹配表达以及反向匹配表达以及预先训练的打分模型,获取各候选对话语句的打分。

此时对应地,打分模块12具体用于:

根据输入语句和上文语句的字粒度表达、词粒度表达以及短语粒度表达,分别获取输入语句与上文语句之间的字粒度的正向相似度表达以及反向相似度表达、词粒度的正向相似度表达以及反向相似度表达、以及短语粒度的正向相似度表达以及反向相似度表达;

根据输入语句与上文语句之间的字粒度的正向相似度表达、词粒度的正向相似度表达以及短语粒度的正向相似度表达,获取输入语句与上文语句之间的正向匹配表达;

根据输入语句与上文语句之间的字粒度的反向相似度表达、词粒度的反向相似度表达以及短语粒度的反向相似度表达,获取输入语句与上文语句之间的反向匹配表达。

进一步可选地,本实施例的基于人工智能的对话装置中,获取模块11还用于获取人工方式采集的多组三元语料组,构成语料库;各三元语料组中包括预设上文语句、预设输入语句以及预设对话语句。

进一步可选地,本实施例的基于人工智能的对话装置中,采集模块13还用于采集数组候选三元语料组;

获取模块11还用于采用预先训练的上下文相关模型,从采集模块13采集的数组候选三元语料组中获取符合上下文相关性的多组三元语料组,构成语料库;

进一步地,获取模块11还用于获取人工采集的多组三元训练语料组,各三元训练语料组中包括人工标注的训练上文语句、训练输入语句、训练对话语句以及已知的上下文相关性的概率;

训练模块14还用于根据获取模块11获取的各组三元训练语料组,训练上下文相关识别模型。

本实施例的基于人工智能的对话装置,通过采用上述模块实现基于人工智能的对话处理的实现原理以及技术效果与上述相关方法实施例的实现相同,详细可以参考上述相关方法实施例的记载,在此不再赘述。

图4为本发明的计算机设备实施例的结构图。如图4所示,本实施例的计算机设备,包括:一个或多个处理器30,以及存储器40,存储器40用于存储一个或多个程序,当存储器40中存储的一个或多个程序被一个或多个处理器30执行,使得一个或多个处理器30实现如上图1所示实施例的基于人工智能的对话方法。图4所示实施例中以包括多个处理器30为例。

例如,图5为本发明提供的一种计算机设备的示例图。图5示出了适于用来实现本发明实施方式的示例性计算机设备12a的框图。图5显示的计算机设备12a仅仅是一个示例,不应对本发明实施例的功能和使用范围带来任何限制。

如图5所示,计算机设备12a以通用计算设备的形式表现。计算机设备12a的组件可以包括但不限于:一个或者多个处理器16a,系统存储器28a,连接不同系统组件(包括系统存储器28a和处理器16a)的总线18a。

总线18a表示几类总线结构中的一种或多种,包括存储器总线或者存储器控制器,外围总线,图形加速端口,处理器或者使用多种总线结构中的任意总线结构的局域总线。举例来说,这些体系结构包括但不限于工业标准体系结构(ISA)总线,微通道体系结构(MAC)总线,增强型ISA总线、视频电子标准协会(VESA)局域总线以及外围组件互连(PCI)总线。

计算机设备12a典型地包括多种计算机系统可读介质。这些介质可以是任何能够被计算机设备12a访问的可用介质,包括易失性和非易失性介质,可移动的和不可移动的介质。

系统存储器28a可以包括易失性存储器形式的计算机系统可读介质,例如随机存取存储器(RAM)30a和/或高速缓存存储器32a。计算机设备12a可以进一步包括其它可移动/不可移动的、易失性/非易失性计算机系统存储介质。仅作为举例,存储系统34a可以用于读写不可移动的、非易失性磁介质(图5未显示,通常称为“硬盘驱动器”)。尽管图5中未示出,可以提供用于对可移动非易失性磁盘(例如“软盘”)读写的磁盘驱动器,以及对可移动非易失性光盘(例如CD-ROM,DVD-ROM或者其它光介质)读写的光盘驱动器。在这些情况下,每个驱动器可以通过一个或者多个数据介质接口与总线18a相连。系统存储器28a可以包括至少一个程序产品,该程序产品具有一组(例如至少一个)程序模块,这些程序模块被配置以执行本发明上述图1-图3各实施例的功能。

具有一组(至少一个)程序模块42a的程序/实用工具40a,可以存储在例如系统存储器28a中,这样的程序模块42a包括——但不限于——操作系统、一个或者多个应用程序、其它程序模块以及程序数据,这些示例中的每一个或某种组合中可能包括网络环境的实现。程序模块42a通常执行本发明所描述的上述图1-图3各实施例中的功能和/或方法。

计算机设备12a也可以与一个或多个外部设备14a(例如键盘、指向设备、显示器24a等)通信,还可与一个或者多个使得用户能与该计算机设备12a交互的设备通信,和/或与使得该计算机设备12a能与一个或多个其它计算设备进行通信的任何设备(例如网卡,调制解调器等等)通信。这种通信可以通过输入/输出(I/O)接口22a进行。并且,计算机设备12a还可以通过网络适配器20a与一个或者多个网络(例如局域网(LAN),广域网(WAN)和/或公共网络,例如因特网)通信。如图所示,网络适配器20a通过总线18a与计算机设备12a的其它模块通信。应当明白,尽管图中未示出,可以结合计算机设备12a使用其它硬件和/或软件模块,包括但不限于:微代码、设备驱动器、冗余处理器、外部磁盘驱动阵列、RAID系统、磁带驱动器以及数据备份存储系统等。

处理器16a通过运行存储在系统存储器28a中的程序,从而执行各种功能应用以及数据处理,例如实现上述实施例所示的基于人工智能的对话方法。

本发明还提供一种计算机可读介质,其上存储有计算机程序,该程序被处理器执行时实现如上述实施例所示的基于人工智能的对话方法。

本实施例的计算机可读介质可以包括上述图5所示实施例中的系统存储器28a中的RAM30a、和/或高速缓存存储器32a、和/或存储系统34a。

随着科技的发展,计算机程序的传播途径不再受限于有形介质,还可以直接从网络下载,或者采用其他方式获取。因此,本实施例中的计算机可读介质不仅可以包括有形的介质,还可以包括无形的介质。

本实施例的计算机可读介质可以采用一个或多个计算机可读的介质的任意组合。计算机可读介质可以是计算机可读信号介质或者计算机可读存储介质。计算机可读存储介质例如可以是——但不限于——电、磁、光、电磁、红外线、或半导体的系统、装置或器件,或者任意以上的组合。计算机可读存储介质的更具体的例子(非穷举的列表)包括:具有一个或多个导线的电连接、便携式计算机磁盘、硬盘、随机存取存储器(RAM)、只读存储器(ROM)、可擦式可编程只读存储器(EPROM或闪存)、光纤、便携式紧凑磁盘只读存储器(CD-ROM)、光存储器件、磁存储器件、或者上述的任意合适的组合。在本文件中,计算机可读存储介质可以是任何包含或存储程序的有形介质,该程序可以被指令执行系统、装置或者器件使用或者与其结合使用。

计算机可读的信号介质可以包括在基带中或者作为载波一部分传播的数据信号,其中承载了计算机可读的程序代码。这种传播的数据信号可以采用多种形式,包括——但不限于——电磁信号、光信号或上述的任意合适的组合。计算机可读的信号介质还可以是计算机可读存储介质以外的任何计算机可读介质,该计算机可读介质可以发送、传播或者传输用于由指令执行系统、装置或者器件使用或者与其结合使用的程序。

计算机可读介质上包含的程序代码可以用任何适当的介质传输,包括——但不限于——无线、电线、光缆、RF等等,或者上述的任意合适的组合。

可以以一种或多种程序设计语言或其组合来编写用于执行本发明操作的计算机程序代码,所述程序设计语言包括面向对象的程序设计语言—诸如Java、Smalltalk、C++,还包括常规的过程式程序设计语言—诸如”C”语言或类似的程序设计语言。程序代码可以完全地在用户计算机上执行、部分地在用户计算机上执行、作为一个独立的软件包执行、部分在用户计算机上部分在远程计算机上执行、或者完全在远程计算机或服务器上执行。在涉及远程计算机的情形中,远程计算机可以通过任意种类的网络——包括局域网(LAN)或广域网(WAN)—连接到用户计算机,或者,可以连接到外部计算机(例如利用因特网服务提供商来通过因特网连接)。

在本发明所提供的几个实施例中,应该理解到,所揭露的系统,装置和方法,可以通过其它的方式实现。例如,以上所描述的装置实施例仅仅是示意性的,例如,所述单元的划分,仅仅为一种逻辑功能划分,实际实现时可以有另外的划分方式。

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

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

上述以软件功能单元的形式实现的集成的单元,可以存储在一个计算机可读取存储介质中。上述软件功能单元存储在一个存储介质中,包括若干指令用以使得一台计算机设备(可以是个人计算机,服务器,或者网络设备等)或处理器(processor)执行本发明各个实施例所述方法的部分步骤。而前述的存储介质包括:U盘、移动硬盘、只读存储器(Read-Only Memory,ROM)、随机存取存储器(Random Access Memory,RAM)、磁碟或者光盘等各种可以存储程序代码的介质。

以上所述仅为本发明的较佳实施例而已,并不用以限制本发明,凡在本发明的精神和原则之内,所做的任何修改、等同替换、改进等,均应包含在本发明保护的范围之内。

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