一种生成提问的方法及装置与流程

文档序号:12786533阅读:213来源:国知局
一种生成提问的方法及装置与流程

本发明涉及互联网技术领域,具体涉及一种生成提问的方法及装置。



背景技术:

在服务对话领域,服务器端在向用户提供某些服务之前,需要自动向用户提出一些问题,服务机器人可以从用户的回答中提取针对该提问的回答参数,最后向用户提供相关服务。例如,向用户提供订购机票的服务时,则首先需要向用户提问,询问用户的出发地、目的地以及出发时间,在用户针对提问的回答中提取出出发地、目的地以及出发时间等回答参数,根据这些回答参数完成为用户订购机票的服务。

在现有技术中,针对每个回答参数预先设定了固定的提问,在对话过程中如果需要获取某个回答参数,则自动向用户发送针对该回答参数的问题。但是,事先定义好的提问比较生硬,与自然语言差距较大,缺乏智能感。



技术实现要素:

有鉴于此,本发明提供一种生成提问的方法及装置,以解决现有技术中生成提问的方式与自然语言差距较大,缺乏智能感的技术问题。

为解决上述问题,本发明提供的技术方案如下:

一种生成提问的方法,所述方法包括:

确定未获得的回答参数;

从问题库中获取针对所述未获得的回答参数的问题集合;

根据所述问题库中针对所述未获得的回答参数的问题集合,获取一个针对所述未获得的回答参数的问题;

将所述问题发送给用户。

一种生成提问的装置,所述装置包括:

确定单元,用于确定未获得的回答参数;

第一获取单元,用于从问题库中获取针对所述未获得的回答参数的问题集合;

第二获取单元,用于根据所述问题库中针对所述未获得的回答参数的问题集合,获取一个针对所述未获得的回答参数的问题;

发送单元,用于将所述问题发送给用户。

本发明实施例在对未获得的回答参数进行提问时,从问题库中获取针对未获得的回答参数的问题集合,该问题集合中包括有多个从真实语料数据中获得的针对未获得的回答参数的问题,根据问题库中针对未获得的回答参数的问题集合,获取一个针对未获得的回答参数的问题发送给用户,可以使用户接收到的问题更为自然,贴近自然语言,提升了提问的智能度。

附图说明

图1为本发明实施例中提供的生成提问的方法实施例一的流程图;

图2为本发明实施例中提供的生成提问的方法实施例二的流程图;

图3为本发明实施例中提供的生成提问的方法实施例三的流程图;

图4本发明实施例中提供的生成提问的装载实施例的示意图;

图5本发明实施例中提供的一种服务器的示意图。

具体实施方式

为使本发明的上述目的、特征和优点能够更加明显易懂,下面结合附图和具体实施方式对本发明实施例作进一步详细的说明。

在服务对话领域,服务器端为了向用户提供某些服务,需要获知一些参数,为了获知这些参数,则需要向用户发送针对这些参数的问题,然后从用户的回答中提取出针对该提问的回答参数,最后向用户提供相关服务。例如,向用户提供订购机票的服务时,所需的回答参数包括目的地信息、出发地信息以及出发时间信息,则需要向用户发送针对这些回答参数的问题。在现有技术中,针对每个回答参数预先设定了固定的提问方式,在对话过程中如果需要获取某个回答参数,则自动向用户发送针对该回答参数的问题。但是,这样对于用户来说比较生硬,缺乏智能和人性的感觉。另外,每次只针对一个回答参数提问,当需要获取多个回答参数时,提问效率较低。为了解决现有技术中所存在的技术问题,本发明实施例中提供了一种生成提问的方法及装置,从大量真实语料数据中学习得到各种回答参数的提问问法,即训练得到问题库,问题库中包括了针对各种回答参数的问题集合,在针对某个或某些回答参数进行提问时,从问题库中获取针对该回答参数的问题发送给用户,以提高提问的智能程度,使每次的提问的方式不同,更符合人类表达习惯。

本发明实施例将从生成提问的装置角度进行描述,该生成提问的装置具体可以装载在服务器中。参见图1所示,示出了本发明实施例中提供的生成提问的方法实施例一,可以包括以下步骤:

步骤101:确定未获得的回答参数。

在向用户提供服务时,需要向用户发送一些问题以获得所需的回答参数。例如,在为用户提供订购机票服务时,则需要通过向用户提问获得目的地信息、出发地信息以及出发时间信息等回答参数。在实际应用中,可以根据所需的回答参数以及已获得的回答参数,确定未获得的回答参数。如果是首次向用户进行提问,则所需的回答参数均为未获得的回答参数,如果用户已经进行过回答,则将用户回答过的回答参数均记录为已获得的回答参数,根据所需的回答参数以及已获得的回答参数确定出未获得的回答参数。当前未获得的回答参数可以有一个,也可以有多个。

步骤102:从问题库中获取针对未获得的回答参数的问题集合。

在一些可能的实现方式中,本发明实施例中提供的生成提问的方法还可以包括:根据输入的真实语料数据训练生成包括针对回答参数的问题集合的问题库。也即问题库中包括了针对各种回答参数的问题集合,例如问题库中包括了针对回答参数A的问题集合、针对回答参数B的问题集合、针对回答参数C的问题集合、针对回答参数A以及B的问题集合、针对回答参数A、B以及C的问题集合等等。每个问题集合中又包括了多个问题,例如,回答参数A为目的地信息,则针对回答参数A的问题集合中可以包括“你要去哪里?”、“你要去哪儿?”、“你的目的地是哪儿?”等等问题;而例如回答参数B为出发地信息,则针对回答参数A以及B的问题集合中可以包括“你要从哪里去哪里?”、“你的出发地以及目的地是哪里?”等等问题。也就是说问题库中包括多个问题集合,一个问题集合可以是针对一个回答参数的问题集合,也可以是针对多个回答参数的问题集合。如何根据输入的真实语料数据训练生成问题库将在后续实施例中详细说明。

在本实施例中,当未获得的回答参数仅有一个时,则可以从问题库中直接获取针对该未获得的回答参数的问题集合。

在一些可能的实现方式中,当未获得的回答参数有n个时,从问题库中获取针对未获得的回答参数的问题集合,包括:

从问题库中获取一个针对m个未获得的回答参数的问题集合作为针对未获得的回答参数的问题集合,其中n为大于或等于2的正整数,m为小于或等于n的正整数。

例如,假设n为3,则未获得的回答参数有3个,分别为回答参数A、回答参数B以及回答参数C,则问题库中有针对1个回答参数的问题集合即针对回答参数A的问题集合、针对回答参数B的问题集合、针对回答参数C的问题集合,问题库中还有针对2个回答参数的问题集合即针对回答参数A以及B的问题集合、针对回答参数B以及C的问题集合、针对回答参数A以及C的问题集合,同时,问题库中还有针对3个回答参数的问题集合即针对回答参数A、B以及C的问题集合,则在这些问题集合中获取其中的一个问题集合作为针对未获得的回答参数的问题集合。也就是说,在未获得的回答参数有多个时,可以针对其中的一个回答参数进行提问,也可以针对其中的多个回答参数进行提问。

步骤103:根据问题库中针对未获得的回答参数的问题集合,获取一个针对未获得的回答参数的问题。

在一些可能的实现方式中,根据问题库中针对未获得的回答参数的问题集合,获取一个针对未获得的回答参数的问题的具体实现可以包括:

从针对未获得的回答参数的问题集合中随机选择一个问题作为针对未获得的回答参数的问题。

在一种实现方式中,可以直接从上述步骤中获得的一个针对未获得的回答参数的问题集合中随机选择一个问题作为针对未获得的回答参数的问题,该问题选择自问题集合,问题集合中包括了真实语境中可能会出现的针对回答参数的各种问题,且问题集合中各种问题的出现频率与真实语境中基本保持一致,所以所选择的问题也更为接近真实语境。

在一些可能的实现方式中,根据问题库中针对未获得的回答参数的问题集合,获取一个针对未获得的回答参数的问题的具体实现也可以包括:

将针对未获得的回答参数的问题集合中的问题输入神经网络模型,生成一个针对未获得的回答参数的问题。

在另一种实现方式中,当问题集合中有足够多的问题时,可以训练神经网络模型来生成一个针对未获得的回答参数的问题,这样提问的方式将更为丰富、不仅局限于问题库中已有的问题,而是生成更加符合人类习惯的提问。

步骤104:将问题发送给用户。

将步骤103中获得的问题发送给用户以使用户对未获得的回答参数进行回答。

这样,本发明实施例在对未获得的回答参数进行提问时,从问题库中获取针对未获得的回答参数的问题集合,该问题集合中包括有多个从真实语料数据中获得的针对未获得的回答参数的问题,根据问题库中针对未获得的回答参数的问题集合,获取一个针对未获得的回答参数的问题发送给用户,可以使用户接收到的问题更为自然,贴近自然语言,提升了提问的智能度。

参见图2所示,示出了本发明实施例中提供的生成提问的方法实施例二,可以包括以下步骤:

步骤201:确定未获得的回答参数。

步骤202:从问题库中获取针对未获得的回答参数的问题集合。

步骤203:根据问题库中针对未获得的回答参数的问题集合,获取一个针对未获得的回答参数的问题。

步骤204:将问题发送给用户。

步骤201-204与步骤101-104相同,相关说明可以参见上述实施例,在此不再赘述。

步骤205:接收用户发送的回答。

在将问题发送给用户后,用户会针对该问题进行回答,在用户回答后可以接收用户发送的回答,用户发送的回答中会包括回答参数。

步骤206:从回答中提取回答参数,将从回答中提取的回答参数记录为已获得的回答参数。

在接收到回答后提取出回答参数,则所提取的回答参数为已获得的回答参数,可以理解的是,如果已经进行了多次问答,则已获得的回答参数并不仅限于本次回答中提取的回答参数。

步骤207:根据已获得的回答参数以及所需的回答参数,判断是否存在未获得的回答参数,如果存在,则返回步骤201,如果不存在,则进入步骤208。

根据已获得的回答参数以及所需的回答参数,则可以判断出是否存在未获得的回答参数,例如所需的回答参数包括目的地信息、出发地信息以及出发时间,已获得的回答参数包括目的地信息以及出发地信息,则还存在未获得的回答参数,需要返回步骤201重新确定未获得的回答参数,例如将出发时间确定为未获得的回答参数,则在后续步骤中需要针对出发时间再次进行提问。

步骤208:根据已获得的回答参数向用户提供相应的服务。

如果已经获得了全部所需的回答参数,则可以向用户提供相应的服务,例如在获取到目的地信息、出发地信息以及出发时间这些回答参数后可以向用户提供订购机票的服务。

这样,本发明实施例通过更为贴近自然语言的提问,使用户在对话的过程中与机器交流的更加顺畅、自然,从而使用户更快地回答出所需的回答参数,根据这些已获得的回答参数可以完成向用户提供相应的服务。

参见图3所示,示出了本发明实施例中提供的生成提问的方法实施例三,在本实施例中根据输入的真实语料数据训练生成包括针对回答参数的问题集合的问题库的具体实现可以包括:

步骤301:接收真实语料数据,真实语料数据包括语料数据以及对语料数据的批注数据,批注数据包括语料数据的类型以及语料数据所对应的回答参数。

在训练生成问题库的过程中,需要大量的真实语料数据,真实语料数据中的语料数据是从人工客服与用户的真实对话中提取的,真实语料数据中对语料数据的批注数据可以在人工对语料数据进行批注后得到,也可以在通过半监督式机器学习的方式对语料数据进行批注后得到。所进行的对语料数据的批注需要逐条对语料数据进行批注,批注数据包括语料数据的类型,例如该条语料数据属于问题,或者属于回答,或者属于其他(如与问答无关的问候、聊天等);批注数据还包括语料数据所对应的回答参数,当语料数据为问题语料时,则语料数据所对应的回答参数代表该条问题语料所针对的回答参数,例如语料数据为“你要去哪里”,该条语料数据的批注数据为“问题,目的地信息”,则代表“你要去哪里”这条语料数据为针对目的地信息的问题语料;而当语料数据为回答语料时,则语料数据所对应的回答参数代表该条回答语料所包括的回答参数。

在实际应用中,每条真实语料数据可以封装为一个结构体,逐条接收真实语料数据,并进行后续步骤的处理。

步骤302:根据语料数据的类型判断语料数据是否为问题语料,如果是,进入步骤303,如果否,进入步骤304。

在训练生成问题库的过程中重点是需要各种回答参数的提问方式,将提问语料与相关的回答参数对接起来,因此需要从语料数据中获得问题语料,在本实施例中可以通过读取批注数据中的语料数据的类型来判断语料数据是否为问题语料。

步骤303:获得语料数据所对应的回答参数,将问题语料保存至针对语料数据所对应的回答参数的问题集合中。

当语料数据为问题语料时,则可以获得语料数据所对应的回答参数,即获得该问题语料所针对的回答参数,并将该条问题语料保存至针对语料数据所对应的回答参数的问题集合中。当该条问题语料所针对的回答参数为一个时,则将该条问题语料保存至针对这一个回答参数的问题集合,例如,将“你要去哪里”这条问题语料保存至针对“目的地信息”的问题集合中。当该条问题语料所针对的回答参数为多个时,则将该条问题语料保存至针对这些回答参数的问题集合,例如,将“你要从哪里去哪里”这条问题语料保存至针对“出发地信息以及目的地信息”的问题集合中。

另外,即使问题语料重复出现也依然将问题语料保存至相应的问题集合中,从而可以使问题集合中各个问题的出现频率与真实语境中基本保持一致,例如,在提问目的地信息时,80%的提问方式均为“你要去哪里?”,则“你要去哪里?”这个问题语料在针对目的地信息的问题集合中也占80%的比例,则在针对目的地信息的问题集合中选择问题时,选中“你要去哪里?”这个问题的可能性也为80%,使所以所选择的问题也更为接近真实语境。

步骤304:判断语料数据是否为回答语料,当语料数据为回答语料,则保存回答语料。

当语料数据不为问题语料时,则该语料数据可能为回答语料,也可能为其他语料,则可以通过语料数据的类型判断该语料数据是否为回答语料,当语料数据为回答语料,对该回答语料进行保存。另外,需要注意的是,步骤304并不属于生成问题库的过程,在根据语料数据的类型判断语料数据不为问题语料时,也可以不进行任何处理。

这样,本发明实施例在接收到输入的语料数据以及对语料数据的批注数据后,可以自动提取出问题语料以及所对应的回答参数,建立包括针对回答参数的问题集合的问题库,从而在聊天服务中使得提问显得更加人性和智能。

参见图4所示,示出了本发明实施例中提供的生成提问的装置实施例的示意图,可以包括:

确定单元401,用于确定未获得的回答参数。

第一获取单元402,用于从问题库中获取针对未获得的回答参数的问题集合。

第二获取单元403,用于根据问题库中针对未获得的回答参数的问题集合,获取一个针对未获得的回答参数的问题。

发送单元404,用于将问题发送给用户。

在本发明一些可能的实现方式中,当未获得的回答参数有n个时,第一获取单元可以具体用于:

从问题库中获取一个针对m个未获得的回答参数的问题集合作为针对未获得的回答参数的问题集合,其中n为大于或等于2的正整数,m为小于或等于n的正整数。

在本发明一些可能的实现方式中,第二获取单元可以具体用于:

从针对未获得的回答参数的问题集合中随机选择一个问题作为针对未获得的回答参数的问题。

在本发明一些可能的实现方式中,第二获取单元还可以具体用于:

将针对未获得的回答参数的问题集合中的问题输入神经网络模型,生成一个针对未获得的回答参数的问题。

在本发明一些可能的实现方式中,本发明实施例中提供的生成提问的还可以包括:

接收单元,用于接收用户发送的回答。

记录单元,用于从回答中提取回答参数,将从回答中提取的回答参数记录为已获得的回答参数。

判断单元,用于根据已获得的回答参数以及所需的回答参数,判断是否存在未获得的回答参数,如果存在,则返回确定单元确定未获得的回答参数,如果不存在,则根据已获得的回答参数向用户提供相应的服务。

在本发明一些可能的实现方式中,本发明实施例中提供的生成提问的还可以包括:

训练单元,用于根据输入的真实语料数据训练生成包括针对回答参数的问题集合的问题库。

在本发明一些可能的实现方式中,训练单元可以包括:

接收子单元,用于接收真实语料数据,真实语料数据包括语料数据以及对语料数据的批注数据,批注数据包括语料数据的类型以及语料数据所对应的回答参数;

判断子单元,用于根据语料数据的类型判断语料数据是否为问题语料;

保存子单元,用于如果语料数据为问题语料,则获得语料数据所对应的回答参数,将问题语料保存至针对语料数据所对应的回答参数的问题集合中。

这样,本发明实施例在对未获得的回答参数进行提问时,从问题库中获取针对未获得的回答参数的问题集合,该问题集合中包括有多个从真实语料数据中获得的针对未获得的回答参数的问题,根据问题库中针对未获得的回答参数的问题集合,获取一个针对未获得的回答参数的问题发送给用户,可以使用户接收到的问题更为自然,贴近自然语言,提升了提问的智能度。

相应的,本发明实施例还提供一种服务器,参见图5所示,可以包括:

处理器501、存储器502、输入装置503和输出装置504。服务器中的处理器501的数量可以一个或多个,图5中以一个处理器为例。在本发明的一些实施例中,处理器501、存储器502、输入装置503和输出装置504可通过总线或其它方式连接,其中,图5中以通过总线连接为例。

存储器502可用于存储软件程序以及模块,处理器501通过运行存储在存储器502的软件程序以及模块,从而执行服务器的各种功能应用以及数据处理。存储器502可主要包括存储程序区和存储数据区,其中,存储程序区可存储操作系统、至少一个功能所需的应用程序等。此外,存储器502可以包括高速随机存取存储器,还可以包括非易失性存储器,例如至少一个磁盘存储器件、闪存器件、或其他易失性固态存储器件。输入装置503可用于接收输入的数字或字符信息,以及产生与服务器的用户设置以及功能控制有关的键信号输入。

具体在本实施例中,处理器501会按照如下的指令,将一个或一个以上的应用程序的进程对应的可执行文件加载到存储器502中,并由处理器501来运行存储在存储器502中的应用程序,从而实现各种功能:

确定未获得的回答参数;

从问题库中获取针对所述未获得的回答参数的问题集合;

根据所述问题库中针对所述未获得的回答参数的问题集合,获取一个针对所述未获得的回答参数的问题;

将所述问题发送给用户。

相应的,当所述未获得的回答参数有n个时,所述从问题库中获取针对所述未获得的回答参数的问题集合,包括:

从问题库中获取一个针对m个未获得的回答参数的问题集合作为针对所述未获得的回答参数的问题集合,其中n为大于或等于2的正整数,m为小于或等于n的正整数。

相应的,所述根据问题库中针对所述未获得的回答参数的问题集合,获取一个针对所述未获得的回答参数的问题,包括:

从所述针对所述未获得的回答参数的问题集合中随机选择一个问题作为针对所述未获得的回答参数的问题。

相应的,所述根据问题库中针对所述未获得的回答参数的问题集合,获取一个针对所述未获得的回答参数的问题,包括:

将所述针对所述未获得的回答参数的问题集合中的问题输入神经网络模型,生成一个针对所述未获得的回答参数的问题。

相应的,还包括:

接收所述用户发送的回答;

从所述回答中提取回答参数,将从所述回答中提取的回答参数记录为已获得的回答参数;

根据所述已获得的回答参数以及所需的回答参数,判断是否存在未获得的回答参数,如果存在,则返回步骤确定未获得的回答参数,如果不存在,则根据所述已获得的回答参数向所述用户提供相应的服务。

相应的,还包括:

根据输入的真实语料数据训练生成包括针对回答参数的问题集合的问题库。

相应的,所述根据输入的真实语料训练生成包括针对回答参数的问题集合的问题库,包括:

接收真实语料数据,所述真实语料数据包括语料数据以及对所述语料数据的批注数据,所述批注数据包括所述语料数据的类型以及所述语料数据所对应的回答参数;

根据所述语料数据的类型判断所述语料数据是否为问题语料;

如果所述语料数据为问题语料,则获得所述语料数据所对应的回答参数,将所述问题语料保存至针对所述语料数据所对应的回答参数的问题集合中。

这样,本发明实施例在对未获得的回答参数进行提问时,从问题库中获取针对未获得的回答参数的问题集合,该问题集合中包括有多个从真实语料数据中获得的针对未获得的回答参数的问题,根据问题库中针对未获得的回答参数的问题集合,获取一个针对未获得的回答参数的问题发送给用户,可以使用户接收到的问题更为自然,贴近自然语言,提升了提问的智能度。

需要说明的是,本说明书中各个实施例采用递进的方式描述,每个实施例重点说明的都是与其他实施例的不同之处,各个实施例之间相同相似部分互相参见即可。对于实施例公开的系统或装置而言,由于其与实施例公开的方法相对应,所以描述的比较简单,相关之处参见方法部分说明即可。

还需要说明的是,在本文中,诸如第一和第二等之类的关系术语仅仅用来将一个实体或者操作与另一个实体或操作区分开来,而不一定要求或者暗示这些实体或操作之间存在任何这种实际的关系或者顺序。而且,术语“包括”、“包含”或者其任何其他变体意在涵盖非排他性的包含,从而使得包括一系列要素的过程、方法、物品或者设备不仅包括那些要素,而且还包括没有明确列出的其他要素,或者是还包括为这种过程、方法、物品或者设备所固有的要素。在没有更多限制的情况下,由语句“包括一个……”限定的要素,并不排除在包括所述要素的过程、方法、物品或者设备中还存在另外的相同要素。

结合本文中所公开的实施例描述的方法或算法的步骤可以直接用硬件、处理器执行的软件模块,或者二者的结合来实施。软件模块可以置于随机存储器(RAM)、内存、只读存储器(ROM)、电可编程ROM、电可擦除可编程ROM、寄存器、硬盘、可移动磁盘、CD-ROM、或技术领域内所公知的任意其它形式的存储介质中。

对所公开的实施例的上述说明,使本领域专业技术人员能够实现或使用本发明。对这些实施例的多种修改对本领域的专业技术人员来说将是显而易见的,本文中所定义的一般原理可以在不脱离本发明的精神或范围的情况下,在其它实施例中实现。因此,本发明将不会被限制于本文所示的这些实施例,而是要符合与本文所公开的原理和新颖特点相一致的最宽的范围。

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