一种残膜回收机防缠绕挑膜装置的制 一种秧草收获机用电力驱动行走机构

人机对话方法、装置、设备及存储介质与流程

2022-03-16 05:09:07 来源:中国专利 TAG:
1.本公开涉及信息
技术领域
:,尤其涉及一种人机对话方法、装置、设备及存储介质。
背景技术
::2.随着科技的不断发展,人机会话已经越来越普遍。3.但是,本技术的发明人发现,表格知识是当前世界上存在最广泛的结构化知识,比如日常办公中的表格、网页中的各种表格、存在于多数企业和组织中的结构化查询语言(structuredquerylanguage,sql)类的数据库等。因此,如何能让用户以人机对话的方式获取到表格知识中的内容就成为现有技术中亟需解决的问题。技术实现要素:4.为了解决上述技术问题或者至少部分地解决上述技术问题,本公开提供了一种人机对话方法、装置、设备及存储介质,实现了使用户以人机对话的方式获取到表格知识的目的。5.第一方面,本公开实施例提供一种人机对话方法,包括:6.获取本轮的用户语句;7.从一个或多个候选表格中确定与用户语句匹配的一个或多个目标表格;8.对本轮的用户语句进行解析,得到第一查询语句;9.根据第一查询语句,从一个或多个目标表格中查询获得目标数据;10.根据目标数据生成本轮的系统回复。11.第二方面,本公开实施例提供一种人机对话装置,包括:12.获取模块,用于获取本轮的用户语句;13.确定模块,用于从一个或多个候选表格中确定与用户语句匹配的一个或多个目标表格;14.解析模块,用于对本轮的用户语句进行解析,得到第一查询语句;15.查询模块,用于根据第一查询语句,从一个或多个目标表格中查询获得目标数据;16.生成模块,用于根据目标数据生成本轮的系统回复。17.第三方面,本公开实施例提供一种电子设备,包括:18.存储器;19.处理器;以及20.计算机程序;21.其中,所述计算机程序存储在所述存储器中,并被配置为由所述处理器执行以实现如第一方面所述的方法。22.第四方面,本公开实施例提供一种计算机可读存储介质,其上存储有计算机程序,所述计算机程序被处理器执行以实现第一方面所述的方法。23.本公开实施例提供的人机对话方法、装置、设备及存储介质,在获取到本轮对话的用户语句时,从一个或多个候选表格中确定与所述用户语句匹配的一个或多个目标表格,进而根据用户语句对应的第一查询语句从一个或多个目标表格中查询以获得目标数据,最后根据目标数据生成本轮对话中针对用户语句的系统回复;实现了基于表格知识为用户提供系统回复的目的。附图说明24.此处的附图被并入说明书中并构成本说明书的一部分,示出了符合本公开的实施例,并与说明书一起用于解释本公开的原理。25.为了更清楚地说明本公开实施例或现有技术中的技术方案,下面将对实施例或现有技术描述中所需要使用的附图作简单地介绍,显而易见地,对于本领域普通技术人员而言,在不付出创造性劳动性的前提下,还可以根据这些附图获得其他的附图。26.图1为本公开实施例提供的人机对话方法流程图;27.图2为本公开实施例提供的基于表格知识的人机对话交互系统的结构示意图;28.图3为本公开实施例提供的自动生成训练数据的流程示意图;29.图4为本公开实施例提供的基于表格知识的人机对话交互系统核心引擎的工作流程;30.图5为本公开另一实施例提供的人机对话方法流程图;31.图6为本公开另一实施例提供的人机对话方法流程图;32.图7为本公开另一实施例提供的人机对话的交互界面示意图;33.图8为本公开实施例提供的人机对话装置的结构示意图;34.图9为本公开实施例提供的电子设备实施例的结构示意图。具体实施方式35.为了能够更清楚地理解本公开的上述目的、特征和优点,下面将对本公开的方案进行进一步描述。需要说明的是,在不冲突的情况下,本公开的实施例及实施例中的特征可以相互组合。36.在下面的描述中阐述了很多具体细节以便于充分理解本公开,但本公开还可以采用其他不同于在此描述的方式来实施;显然,说明书中的实施例只是本公开的一部分实施例,而不是全部的实施例。37.通常,人机对话基于知识实现,该知识包括:流程类的知识、图谱类的知识、以及文档。然而,随着表格知识的不断发展,目前,二维表格知识是当前世界上存在较广泛的结构化知识,比如日常办公中的表格、网页中的各种表格、存在于多数企业和组织中的sql类的数据库等。而且,表格知识结构清晰、易于维护、时效性强。因此,如何让人以自然语言对话的方式和这些表格知识进行交互,是工业界和学术界共同关注的热点技术方向,也是人工智能研究的前沿方向之一。针对该问题,本公开实施例提供了一种基于表格知识的人机对话方法,下面结合具体的实施例对该方法进行介绍。38.图1为本公开实施例提供的人机对话方法流程图。本实施例可适用于客户端中进行人机对话的情况,该方法可以由人机对话装置执行,该装置可以采用软件和/或硬件的方式实现,该装置可配置于电子设备中,例如终端,具体包括手机、电脑或平板电脑等。或者,本实施例可适用于服务端中进行人机对话的情况,该方法可以由人机对话装置执行,该装置可以采用软件和/或硬件的方式实现,该装置可配置于电子设备中,例如服务器。39.另外,本实施例所述的人机对话方法可以适用于多种场景,例如,用户和终端进行人机对话,该终端可以是机器人、手机、电脑等用户设备。在用户和机器人对话的场景中,用户和机器人可以在同一地点进行面对面对话,或者用户和机器人在不同地点进行远程对话。用户和终端的对话方式不限于语音对话,还可以通过文字、手势等方式进行对话。终端接收到用户的提问(即用户语句)后,需要根据该提问给出相应的回复,该回复在本公开实施例中称为系统回复。40.参考如图2所示的一种基于表格知识的人机对话交互系统的结构示意图,该人机对话交互系统包括四大部分,分别是数据和知识部分210、预训练模型部分220、核心引擎部分230和应用层部分240。41.其中,数据和知识部分210包括数据合成器211和表知识库table212。表知识库table212中存储的是某种类型的表格数据,例如关于车辆的表格数据、关于某业务办理流程的表格数据等。表格数据的具体类型可根据应用场景确定。例如应用场景为汽车平台的智能客服系统,表格数据的类型可以是车辆相关,表格数据可以是关于车辆的表格数据。数据合成器211的功能是自动合成《text,sql》数据对,即自动合成自然语言语句text对应的查询语句sql。生成的大量数据对用于作为核心引擎部分230中语言理解装置231的训练数据集,后续进行进一步说明。42.预训练模型部分220,在自然语言处理领域,预训练语言模型的出现是一个重大突破,给下游任务带来了普遍的、显著的效果提升。在本公开的技术方案中,预训练模型采用面向表格知识的预训练表格模型,该预训练表格模型具体包括预训练表格理解模型、预训练表格生成模型等。43.核心引擎部分230包括语言理解装置231、对话管理装置232和语言生成装置233。44.其中,语言理解装置231的主要功能是提供一种语言理解的方式text-to-sql,将用户使用自然语言输入的问句text解析为机器可以识别的查询语句sql,将该查询语句sql记为第一查询语句。可选的,语言理解装置231将用户的问句text解析为第一查询语句的过程如下:语言理解装置231在接收到用户的当前问句后,从候选表格中挑选出满足当前问句的一个或多个表格,将挑选出的满足当前问句的一个或多个表格记为目标表格;进一步将目标表格和当前问句一起作为text-to-sql模型的输入,text-to-sql模型输出的sql语句即为当前问句对应的第一查询语句。语言理解装置231在得到第一查询语句后,进一步将第一查询语句提供给对话管理装置232,也可以是对话管理装置232主动从语言理解装置231请求第一查询语句。45.对话管理装置232的主要功能是提供一种语言合成的方式sql-to-text,将sql语句转换成自然语言语句text、管理多轮对话中的对话状态,并根据对话状态给出sql语句,将该sql语句记为第二查询语句,进一步根据第二查询语句从上述目标表格中查询相关表格数据,将查询到的相关表格数据记为查询结果。可选的,将查询结果提供给语言生成装置233,或者语言生成装置233主动从对话管理装置232请求查询结果。需要特别说明的是,第二查询语句与通过语言理解装置231得到的第一查询语句不同。具体的,在对话管理装置232获取到第一查询语句后,根据下述三个因素中的至少一个对第一查询语句进行修正,获得当前问句对应的第二查询语句;所述三个因素具体是:用户的当前问句之前的上一轮对话中的用户历史问句对应的修正后的sql语句(即上一轮对话中的第二查询语句)、当前问句对应的会话动作和上一轮对话所对应的系统状态。其中,“用户的当前问句之前的上一轮对话中的用户历史问句对应的修正后的sql语句”存储在图4所示的“上下文”的数据库中。“当前问句对应的会话动作”是对话管理装置232根据上一轮对话中的第二查询语句和当前轮对话中的第一查询语句得到的。“上一轮对话所对应的系统状态”是指:在上一轮对话中,系统是直接回复了话术,还是反问了用户。“上一轮对话所对应的系统状态”也存储在图4所示的“上下文”的数据库中。用户的一次提问和系统针对该提问给出的回复作为一轮对话。“会话动作”包括:增加查询条件、删除查询条件和修改查询条件。具体的,增加查询条件例如是:用户输入第一个问句:“收益率在3.5%以上的理财产品有哪些?”,系统针对第一个问句进行回复后,用户接着输入第二个问句“那保本的呢?”,此场景下用户输入的第二个问句其实是在第一个问句的基础上增加了查询条件,即第二个问句对应的完整信息是“收益率在3.5%以上且保本的理财产品有哪些”,在查询条件“收益率在3.5%以上”的基础上增加了查询条件“保本”。删除查询条件例如是:用户输入第一个问句“能保本的且收益率在3.5%以上的理财产品有哪些?”,系统针对第一个问句进行回复后,用户又输入第二个问句“那收益率在3.5%以上的呢?”,此场景下用户的第二个问句其实是在第一个问句的基础上删除了查询条件,即第二个问句对应的完整信息是“收益率在3.5%以上的理财产品有哪些”。修改查询条件例如是:用户输入第一个问句“某品牌的轿车有没有天窗?”,系统针对该第一个问句进行回复后,用户又输入第二个问句“某品牌的越野车性能如何?”,此场景下用户的第二个问句对应的查询条件与第一个问句对应的查询条件不同,为修改查询条件的场景。进一步举例说明对第一查询语句进行修正,获得当前问句对应的第二查询语句的过程:46.用户问:太阳牌的轿车有没有天窗?(该问句为历史问句)47.系统回复:太阳牌的轿车有天窗。(用户的一次提问和系统给出的针对性回复组成一轮对话)48.用户又问:那百公里加速呢?(该问句为当前问句)49.其中,问句“太阳牌的轿车有没有天窗?”对应的sql语句例如为:“select天窗where太阳牌轿车”。问句“那百公里加速呢?”对应的sql语句(即第一查询语句)为:“select百公里加速”。对第一查询语句修正后得到的第二查询语句为“select百公里加速where太阳牌轿车”。进一步,对话管理装置232根据第二查询语句到目标表格中进行数据查询,查询到的数据记为查询结果,并将查询结果提供给语言生成装置233。50.语言生成装置233的主要功能是提供一种语言生成的方式data-to-text,将表格数据data转换成自然语言语句text,具体是根据用户的当前问句、第二查询语句和查询结果,生成回复话术,具体是使用自然语言针对用户的当前问句给出针对性的回复。例如,用户的当前问句是:某品牌的轿车有没有天窗,查询结果是y,y代表有天窗,则生成的回复话术为:某品牌的轿车有天窗。51.应用层部分240,基于表格知识的人机对话交互系统有很多应用,典型的比如面向对话机器人的多轮问答系统和面向sql数据库的自然交互接口。其中,面向对话机器人的多轮问答系统的应用场景例如是人和机器人对话,人和机器人在同一地点进行面对面对话,或在不同地点进行远程对话。面向sql数据库的自然交互接口的应用场景例如是用户在浏览器或用户界面中输入问句,终端将该问句发送给远程服务器,远程服务器内集成有sql数据库,或者远程服务器与sql数据库通信连接;进一步,远程服务器根据用户问句从sql数据库所存储的表格中查询到数据,将该数据发送给终端,终端根据该数据生成自然语言,并向用户给出回复。52.为了充分公开本实施例的技术方案,针对图2所示的基于表格知识的人机对话交互系统中的关键部分进行进一步说明。53.具体的,基于表格知识的人机对话交互系统依托表格知识完成系统与用户的交互,其核心功能是如何将用户使用自然语言输入的问句(即用户的提问text)转化成sql表达式(即机器可以识别的sql查询语句),该核心功能的实现依赖text-to-sql模型,即核心引擎部分230中的语言理解装置231。54.text-to-sql模型的训练需要大量的《text,sql》数据对作为训练数据,但通过人工标注获得训练数据的难度较大、成本较高,针对该问题,本公开提出一种自动生成训练数据的数据合成器211,在给定表格知识时,通过数据合成器211自动生成训练数据,其自动生成训练数据的流程如图3所示。55.具体的,给定表格知识,表格知识指以表格形式存储的数据;首先对表格知识进行预处理,包括归一化、特殊字符的处理等;通过预处理得到符合规范的表格知识。然后通过sql采样器,生成与给定的候选表格相关的大量sql语句,具体生成过程如下:sql采样器中可以预先设置一个或多个sql模板,例如,其中一个sql模板为:selecta,whereb;进一步,将该sql模板中的a和b分别替换为给定的候选表格中的字段;由于候选表格中存在多个字段,例如,列名、列值等,因此,可以将a替换为该候选表格中的某个字段,将b替换为该候选表格中的另一个字段,从而得到多个实例化的sql语句。进一步,还可以将a和b分别替换成的字段进行更新,从而得到又一组实例化的sql语句。依次类推,可得到给定候选表格对应的很多实例化的sql语句。概括性的,根据sql模板和某个候选表格得到sql语句,基于不同的候选表格得到不同的sql语句。最后将每个sql语句转换成对应的自然语言,例如,一个sql语句对应一个自然语言。为了提高话术的泛化性和生成话术的流畅性,可以将每个sql语句转换成的自然语言中的一些词替换为该词的同义词或同义短语等,从而使得一个sql语句可以对应多个自然语言,从而增加了训练数据的多样性和数量,降低了训练数据的获取难度。例如,将某个sql语句转换成对应的自然语言是“年化收益率为3.5%”,由于“年化收益率”和“收益率”是同义词,因此,该sql语句对应的自然语言可以有两个,一个是“年化收益率为3.5%”,另一个是“收益率为3.5%”。进一步,根据该sql语句和其对应的两个自然语言,可以得到两组数据对《text,sql》,其中一组数据对《text,sql》中的text是“年化收益率为3.5%”;另一组数据对《text,sql》中的text是“收益率为3.5%”,而这两组数据对《text,sql》中的sql为同一sql语句。由于与给定的候选表格相关的sql语句有很多,其中一个sql语句可以对应有一个或多个自然语言语句text,因此,可以得到大量的数据对《text,sql》。56.当前自然语言处理领域的任务,基本范式是pretrain(预训练) finetune(微调),即以预训练模型(典型的比如bert模型)为基础模型,进一步采用具体任务的标注数据即根据某个或某几个给定的表格知识得到的数据对《text,sql》,在基础模型上做finetune(微调)即对基础模型的参数进行微调。在本实施例中,该基础模型选用预训练表格模型,而不是预训练语言模型,这是因为预训练语言模型有两个缺点:(1)预训练语言模型没有将文本数据和表格知识结合;(2)预训练语言模型主要学习语言知识(例如语句是否通顺、语法是否正确),缺乏对结构化知识的建模。所以本案采用专门面向表格知识的预训练表格模型作为基础模型。57.基于表格知识的人机对话交互系统核心引擎的工作流程如图4所示。首先用户使用自然语言发出提问,比如输入问句text“收益率3.5%以上的理财产品有哪些?”,语言理解装置231接收到用户语句text后,先从所有候选表格(候选表格可以是一个或多个,存储在table库212中)中选出满足用户问句text的表格,将满足用户问句text的表格标记为目标表格。例如,table库212中默认有3张表格,分别是基金表格、证券表格和外汇表格,每个表格中的内容不同,最能满足用户问句text的表格可以是该3张表格中的一个或多个。从候选表格中选出目标表格的过程有如下几种可选方法:一种是选取用户问句text中的关键词,将该关键词与每个表格的描述信息进行匹配,选出匹配度达到阈值的一个或多个表格作为目标表格。另一种是通过一个预先训练好的模型来选,例如,该模型的输入是用户问句text,该模型的输出是用户问句text与每个候选表格的匹配度,进一步将匹配度达到阈值的一个或多个候选表格作为目标表格。然后将目标表格、用户问句text作为text-to-sql模型的输入,text-to-sql模型输出用户问句text对应的sql语句(即第一查询语句),该sql语句例如为“select产品名称where收益率==3.5%”。然后对话管理装置232获取到语言理解装置231的处理结果(即语言理解装置231得到的sql语句,也就是图4中(2)所示的sql),可以是对话管理装置232主动从语言理解装置231获取处理结果,也可以是对话管理装置232被动接收语言理解装置231发送的处理结果。进一步,对话管理装置232对该处理结果继续进行处理,换言之,对话管理装置232对第一查询语句进行修正获得第二查询语句(即图4中(3)所示的sql),修正过程可参见前述说明。图4中(3)所示的sql与(2)所示的sql有所不同:(2)所示的sql是语言理解装置231根据用户当前的问句text例如“收益率3.5%以上的理财产品有哪些”得到的sql语句,但(3)所示的sql是对(2)所示的sql进行修正后得到的sql语句。(3)所示的sql是最终的、更完整的sql语句。对话管理装置232将生成的修改后的sql,即(3)所示的sql发送到表格知识库(即语言理解装置231从候选表格中选出的一个或多个目标表格)进行知识查询,得到查询结果(从目标表格中查询到的数据),对话管理装置232进一步将修正后的sql即图4中(3)所示的sql以及该查询结果(该查询结果对应图4中的(5)所示的对话管理结果)发送给语言生成装置233;最后语言生成装置233基于修改后的sql、该查询结果以及用户当前的问句text(语言生成装置233从图4中上下文的数据库中提取到用户当前的问句text)生成回复话术“收益率大于3.5%的理财产品有a、b等10款产品”,并回复给用户,至此在线流程完成一轮完整的交互。可以理解的是,图4中的语言理解装置、对话管理装置、存储上下文的存储空间、语言生成装置、存储表格知识的存储空间等可以部署在同一个服务器,也可以部署在不同的服务器上,如果部署在多个不同的服务器上,则多个不同的服务器可以构成服务器集群。图4中对话管理装置向上下文数据库中写入上下文的含义是:将用户当前的问句text、用户当前的问句text对应的修正后的sql语句以及本轮对话对应的系统状态写入上下文数据库中,为下一轮对话提供参考数据。58.概括性的,在用户基于终端进行人机对话的场景中,终端根据用户的问句确定系统回复的过程中,需要用到图2所示的基于表格知识的人机对话交互系统中的核心引擎部分230中的3个装置,即语言理解装置231、对话管理装置232和语言生成装置233。核心引擎部分230可以部署在终端本地,或者也可以部署在与终端能够通信的远程服务器上,或者核心引擎部分230中的部分装置部署在终端本地、部分装置部署在远程服务器上。对于核心引擎部分230中的3个装置或部分装置部署在远程服务器上的这种情况,该3个装置或部分装置可以部署在同一台远程服务器上,也可以分别部署在不同的远程服务器上。另外,针对核心引擎部分230中的同一个装置,该装置还可以部署在多台远程服务器上,由多台远程服务器实现该装置对应的功能。此外,如图2所示的核心引擎部分230中的语言理解装置231具体是text-to-sql模型。如图2所示的数据和知识部分210和预训练模型部分220的作用是对text-to-sql模型进行训练。数据和知识部分210的作用是提供训练数据即训练样本数据。预训练模型部分220的作用是提供预训练表格模型,该预训练表格模型可以作为基础模型,基础模型是预先通过广泛的、大量的、多种不同类型的表格数据训练得到的。而数据和知识部分210提供的训练样本数据是根据某种类型的表格数据生成的,某种类型的表格数据例如为关于车辆信息的表格数据。通过数据和知识部分210提供的训练样本数据对该基础模型进行训练,得到text-to-sql模型。可以理解的是,在没有基础模型的情况下,通过数据和知识部分210提供的训练样本数据也可以直接训练出text-to-sql模型,但是,在这种情况下,相当于text-to-sql模型没有对应的基础模型,text-to-sql模型的参数需要从0开始优化,从而导致训练周期较长。因此,数据和知识部分210和预训练模型部分220可以部署在远程服务器上,例如,数据和知识部分210和预训练模型部分220可以部署在同一个或不同的远程服务器上。当text-to-sql模型在远程服务器上被训练完成后,text-to-sql模型可以被移植到终端,由终端实现语言理解的相关功能。或者,text-to-sql模型可以在某一个远程服务器上被训练完成后,移植到其他远程服务器上,由其他远程服务器实现语言理解的相关功能。59.进一步的,下面以终端为例介绍该人机对话方法,该终端包括但不限于智能手机、掌上电脑、平板电脑、带显示屏的可穿戴设备、台式机、笔记本电脑、一体机、智能家居设备等。如图1所示,该方法具体步骤如下:60.s101、获取本轮的用户语句。61.其中,用户语句为用户主动输入,通常是用户的提问,例如用户语句是“收益率在3.5%以上的理财产品有哪些?”。用户输入用户语句的方式可以是语音输入、文字输入或者手势输入等。62.通常将用户输入的用户语句以及系统针对该用户语句给出的回复确定为一轮人机对话。本轮的用户语句指当前的用户问句,换言之,本轮的用户语句指距离当前时刻最近的一次用户的提问。63.具体的,用户通过终端输入用户语句,基于表格知识的人机对话交互系统中的语言理解装置231获取到用户语句。64.s102、从一个或多个候选表格中确定与用户语句匹配的一个或多个目标表格。65.具体的,语言理解装置231获取到用户语句后,先从一个或多个候选表格中确定与用户语句匹配的一个或多个目标表格。其中,一个或多个候选表格存储在图2中的table库212中。例如,table库212中默认有3张表格,分别是基金表格、证券表格和外汇表格,每个表格中的内容不同,最能满足用户语句的表格可以是该3张表格中的一个或多个。66.从一个或多个候选表格中确定与用户语句匹配的一个或多个目标表格包括:67.确定用户语句中的关键词,将关键词与每个候选表格的描述信息进行匹配,将匹配度达到阈值的一个或多个表格作为目标表格。或者,通过预先训练好的模型来选,具体的,将用户语句输入至预先训练好的模型,获得用户语句与每个候选表格的匹配度,将匹配度达到阈值的一个或多个候选表格作为目标表格。68.s103、对本轮的用户语句进行解析,得到第一查询语句。69.可选的,对本轮的用户语句进行解析,得到第一查询语句,包括:将一个或多个目标表格、以及本轮的用户语句作为预设模型的输入,通过预设模型得到第一查询语句。预设模型具体可以是上述的text-to-sql模型。70.例如用户语句是“收益率在3.5%以上的理财产品有哪些?”,对应的第一查询语句是“select产品名称where收益率==3.5%”。71.进一步的,也可以通过目前被广泛使用的将自然语言转换为sql语言的方式对本轮的用户语句进行解析,得到第一查询语句。72.s104、根据第一查询语句,从一个或多个目标表格中查询获得目标数据。73.可选的,通过语言理解装置231获得第一查询语句后,语言理解装置231将第一查询语句发送给对话管理装置232,或者对话管理装置232主动从语言理解装置231获取第一查询语句。进一步,对话管理装置232对第一查询语句进行修正获得第二查询语句,并根据第二查询语句从一个或多个目标表格中查询获得目标数据。进一步将目标数据以及第二查询语句提供给语言生成装置233。74.进一步的,对话管理装置232在获取到第一查询语句时,也可直接基于第一查询语句从一个或多个目标表格中查询获得目标数据。进一步将目标数据以及第二查询语句提供给语言生成装置233。可以理解的是,参考的信息维度越多,则从目标表格中查询获得的目标数据越准确,越符合用户的需求。75.s105、根据目标数据生成本轮的系统回复。76.在一些实施方式中,语言生成装置233基于目标数据以及本轮的用户语句(语言生成装置233从图4中上下文的数据库中提取到用户语句)生成系统回复,例如是“收益率大于3.5%的理财产品有a、b等10款产品”,并回复给用户,向用户回复的方式可以是通过语音播放给用户,或者通过终端显示屏进行显示等。77.在另一些实施方式中,语言生成装置233基于目标数据、本轮的用户语句以及第二查询语句(语言生成装置233从图4中上下文的数据库中提取到用户语句)生成系统回复。通过参考更多的相关信息可使得生成的系统回复更通顺,可读性更好。78.本公开实施例在获取到本轮对话的用户语句时,从一个或多个候选表格中确定与所述用户语句匹配的一个或多个目标表格,进而根据用户语句对应的第一查询语句从一个或多个目标表格中查询以获得目标数据,最后根据目标数据生成本轮对话中针对用户语句的系统回复;实现了基于表格知识为用户提供系统回复的目的。79.图5为本公开另一实施例提供的人机对话方法流程图。在本实施例中,针对上述步骤s104给出了一种可选实施方式。如图5所示,该方法具体步骤如下:80.s501、获取本轮的用户语句。81.s502、从一个或多个候选表格中确定与用户语句匹配的一个或多个目标表格。82.s503、对本轮的用户语句进行解析,得到第一查询语句。83.s504、根据历史对话数据中用户历史语句对应的历史查询语句、本轮的用户语句对应的会话动作、历史对话数据对应的系统状态中的至少一个,对第一查询语句进行处理,得到第二查询语句。84.其中,会话动作是根据历史查询语句和第一查询语句得到的;历史对话数据对应的系统状态用于表征历史对话数据中的系统历史回复是否为反问语句。85.历史对话数据指用户与系统的历史对话记录,历史对话数据包括一轮或多轮人机对话,每轮人机对话中的用户语句为用户历史语句,每个用户历史语句均对应有历史查询语句,即sql语句。86.具体的,在对话管理装置232获取到第一查询语句后,根据下述三个因素中的至少一个对第一查询语句进行修正,获得本轮用户语句对应的第二查询语句。所述三个因素具体是:历史对话数据中用户历史语句对应的历史查询语句、本轮的用户语句对应的会话动作和历史对话数据对应的系统状态。其中,历史对话数据中用户历史语句对应的历史查询语句指:本轮对话之前的上一轮对话中的用户语句对应的修正后的sql语句(即上一轮对话中的第二查询语句),该历史查询语句存储在图4所示的“上下文”的数据库中;本轮的用户语句对应的会话动作是对话管理装置232根据上一轮对话中的第二查询语句和本轮对话中的第一查询语句得到的,即会话动作是根据历史查询语句和第一查询语句得到的。“历史对话数据对应的系统状态”是指:在上一轮对话中,系统是直接回复了话术,还是反问了用户。“历史对话数据对应的系统状态”也存储在图4所示的“上下文”的数据库中。用户的一次提问和系统针对该提问给出的回复作为一轮对话。“会话动作”包括:增加查询条件、删除查询条件和修改查询条件。具体的,增加查询条件例如是:用户输入第一个语句:“收益率在3.5%以上的理财产品有哪些?”,系统针对第一个语句进行回复后,用户接着输入第二个语句“那保本的呢?”,此场景下用户输入的第二个语句其实是在第一个语句的基础上增加了查询条件,即第二个语句对应的完整信息是“收益率在3.5%以上且保本的理财产品有哪些”,在查询条件“收益率在3.5%以上”的基础上增加了查询条件“保本”。删除查询条件例如是:用户输入第一个语句“能保本的且收益率在3.5%以上的理财产品有哪些?”,系统针对第一个语句进行回复后,用户又输入第二个语句“那收益率在3.5%以上的呢?”,此场景下用户的第二个语句其实是在第一个语句的基础上删除了查询条件,即第二个语句对应的完整信息是“收益率在3.5%以上的理财产品有哪些”。修改查询条件例如是:用户输入第一个语句“某品牌的轿车有没有天窗?”,系统针对该第一个语句进行回复后,用户又输入第二个语句“某品牌的越野车性能如何?”,此场景下用户的第二个语句对应的查询条件与第一个语句对应的查询条件不同,为修改查询条件的场景。进一步举例说明对第一查询语句进行修正,获得当前问句对应的第二查询语句的过程:87.用户语句:太阳牌的轿车有没有天窗?(该语句为用户历史语句)88.系统回复:太阳牌的轿车有天窗。(用户的一次提问和系统给出的针对性回复组成一轮对话)89.用户又问:那百公里加速呢?(该语句为本轮的用户语句)90.其中,历史用户语句“太阳牌的轿车有没有天窗?”对应的历史查询语句例如为:“select天窗where太阳牌轿车”。本轮的用户语句“那百公里加速呢?”对应的sql语句(即第一查询语句)为:“select百公里加速”。对第一查询语句修正后得到的本轮对话中的第二查询语句为“select百公里加速where太阳牌轿车”。通过对第一查询语句进行修正获得的第二查询语句与用户的查询意图更加匹配,即更能体现用户的查询意图,进而使得基于第二查询语句获得的目标数据更准确,使得最后的系统回复更具针对性,实现所答即所问的技术效果。91.s505、根据第二查询语句,从一个或多个目标表格中查询获得目标数据。92.进一步,对话管理装置232根据第二查询语句到目标表格中进行数据查询,查询到的数据记为目标数据,并将目标数据提供给语言生成装置233。93.s506、根据目标数据生成本轮的系统回复。94.语言生成装置233根据目标数据和本轮的用户语句,生成本轮的系统回复。例如,本轮的用户语句是:太阳牌的轿车有没有天窗,目标数据是y,y代表有天窗,则语言生成装置233根据目标数据和本轮的用户语句,生成本轮的系统回复为:太阳牌的轿车有天窗。95.具体的,s501-s503和s101-s103的实现方式和具体原理一致,此处不再赘述。96.本实施例针对上述步骤s104给出了一种可选实施方式,具体是在根据第一查询语句,从一个或多个目标表格中查询获得目标数据的过程中,首先根据历史对话数据中用户历史语句对应的历史查询语句、本轮的用户语句对应的会话动作、历史对话数据对应的系统状态中的至少一个,对第一查询语句进行处理,得到第二查询语句,然后根据第二查询语句从一个或多个目标表格中查询获得目标数据,提高了目标数据的查询精度,使得基于表格知识为用户提供系统回复的效果更好。97.图6为本公开另一实施例提供的一种人机对话方法的流程图。在本实施例中,增加了获取预设模型的步骤。如图6所示,该方法具体步骤如下:98.s601、获取本轮的用户语句,从一个或多个候选表格中确定与用户语句匹配的一个或多个目标表格。99.s602、生成一个或多个候选表格中每个候选表格相关的样本查询语句;将样本查询语句转换为第一自然语言语句;根据每个候选表格相关的样本查询语句、以及第一自然语言语句,得到训练数据。100.具体的,可以通过sql采样器,生成与每个候选表格相关的大量sql语句,即样本查询语句。具体生成过程如下:sql采样器中可以预先设置一个或多个sql模板,例如,其中一个sql模板为:selecta,whereb;进一步,将该sql模板中的a和b分别替换为候选表格中的字段;由于候选表格中存在多个字段,例如,列名、列值等,因此,可以将a替换为该候选表格中的某个字段,将b替换为该候选表格中的另一个字段,从而得到多个实例化的sql语句。进一步,还可以将a和b分别替换成的字段进行更新,从而得到又一组实例化的sql语句。依次类推,可得到每个候选表格对应的很多实例化的sql语句。概括性的,根据sql模板和某个候选表格得到样本查询语句,基于不同的候选表格得到不同的样本查询语句。最后将每个样本查询语句转换成对应的第一自然语言语句,例如,一个样本查询语句对应一个自然语言语句。为了提高话术的泛化性和生成话术的流畅性,可以将每个样本查询语句转换成的第一自然语言语句中的一些词替换为该词的同义词或同义短语等,从而使得一个样本查询语句可以对应多个自然语言语句,从而增加了训练数据的多样性和数量,降低了训练数据的获取难度。例如,将某个样本查询语句转换成对应的自然语言语句是“年化收益率为3.5%”,由于“年化收益率”和“收益率”是同义词,因此,该样本查询语句对应的自然语言语句可以有两个,一个是“年化收益率为3.5%”,另一个是“收益率为3.5%”。进一步,根据该样本查询语句和其对应的两个自然语言语句,可以得到两组数据对《text,sql》,其中一组数据对《text,sql》中的text是“年化收益率为3.5%”;另一组数据对《text,sql》中的text是“收益率为3.5%”,而这两组数据对《text,sql》中的sql为同一样本查询语句。由于与给定的候选表格相关的样本查询语句有很多,其中一个样本查询语句可以对应有一个或多个自然语言语句text,因此,可以得到大量的数据对《text,sql》,将大量的数据对《text,sql》确定为训练数据。101.概括性的,根据每个候选表格相关的样本查询语句、以及第一自然语言语句,得到训练数据,包括:将第一自然语言语句中的关键词替换为关键词对应的同义词或同义短语,得到样本查询语句对应的一个或多个第二自然语言语句;根据每个候选表格相关的样本查询语句、第一自然语言语句、以及一个或多个第二自然语言语句,得到训练数据。102.s603、根据训练数据进行模型训练得到预设模型。103.可选的,根据训练数据对预训练模型进行训练得到预设模型,预训练模型是预先根据表格信息训练得到的模型。104.当前自然语言处理领域的任务,基本范式是pretrain(预训练) finetune(微调),即以预训练模型(典型的比如bert模型)为基础模型,进一步采用具体任务的标注数据即根据某个或某几个给定的表格知识得到的数据对《text,sql》,在基础模型上做finetune(微调)即对基础模型的参数进行微调。在本实施例中,该基础模型选用预训练表格模型,而不是预训练语言模型,这是因为预训练语言模型有两个缺点:(1)预训练语言模型没有将文本数据和表格知识结合;(2)预训练语言模型主要学习语言知识(例如语句是否通顺、语法是否正确),缺乏对结构化知识的建模。所以本案采用专门面向表格知识的预训练表格模型作为基础模型。可以理解的是,在没有基础模型的情况下,通过训练数据也可以直接训练出预设模型,但是,在这种情况下,相当于预设模型没有对应的基础模型,预设模型的参数需要从0开始优化,从而导致训练周期较长。105.s604、将一个或多个目标表格、以及本轮的用户语句作为预设模型的输入,通过预设模型得到第一查询语句。106.s605、根据历史对话数据中用户历史语句对应的历史查询语句、本轮的用户语句对应的会话动作、历史对话数据对应的系统状态中的至少一个,对第一查询语句进行处理,得到第二查询语句,根据第二查询语句,从一个或多个目标表格中查询获得目标数据。107.s606、根据目标数据生成本轮的系统回复。108.本实施例增加了获取预设模型的步骤,具体是首先生成一个或多个候选表格中每个候选表格相关的样本查询语句,将样本查询语句转换为第一自然语言语句,根据每个候选表格相关的样本查询语句、以及第一自然语言语句,得到训练数据;然后根据训练数据对预训练模型进行训练得到预设模型,预训练模型是预先根据表格信息训练得到的模型。通过将每个样本查询语句转换成的第一自然语言语句中的一些词替换为该词的同义词或同义短语等,从而使得一个样本查询语句可以对应多个自然语言语句,从而增加了训练数据的多样性和数量,降低了训练数据的获取难度,实现了训练数据的自动生成;通过使用预训练模型作为基础模型,缩短了预设模型的训练周期,提升了预设模型的模型性能和效果;通过采用专门面向表格知识的预训练表格模型作为基础模型,实现了基于表格知识为用户提供系统回复的目的。109.在上述各实施例的基础上,参考如图7所示的一种在具体应用场景中,人机对话的交互界面示意图,其中左边的消息是系统给出的系统回复,右边的消息是用户语句,在实际业务场景中,通过多轮对话可解决实际的用户问题。示例性的:110.用户语句:我想了解一下户籍的办理途经。111.系统回复:请选择具体业务:户口登记、恢复户口、注销户口。112.用户语句:恢复户口。113.系统回复:已为您找到具体业务是恢复户口的,请选择具体事项:军人退伍、出国出境公民回国申报、被判刑的公民。114.用户语句:军人退伍。115.系统在对用户的第二个语句进行回复时,结合系统的第一次回复以及用户的第二个语句,即系统对用户进行第二次回复是基于对话历史确定的。116.图8为本公开实施例提供的人机对话装置的结构示意图。本公开实施例提供的人机对话装置可以执行人机对话方法实施例提供的处理流程,如图8所示,该人机对话装置80包括:获取模块810、确定模块820、解析模块830、查询模块840和生成模块850。117.其中,获取模块810用于获取本轮的用户语句;确定模块820用于从一个或多个候选表格中确定与用户语句匹配的一个或多个目标表格;解析模块830用于对本轮的用户语句进行解析,得到第一查询语句;查询模块840用于根据第一查询语句,从一个或多个目标表格中查询获得目标数据;生成模块850用于根据目标数据生成本轮的系统回复。118.可选的,查询模块840包括处理单元,用于根据历史对话数据中用户历史语句对应的历史查询语句、本轮的用户语句对应的会话动作、历史对话数据对应的系统状态中的至少一个,对第一查询语句进行处理,得到第二查询语句;查询单元,用于根据第二查询语句,从一个或多个目标表格中查询获得目标数据;其中,会话动作是根据历史查询语句和第一查询语句得到的;历史对话数据对应的系统状态用于表征历史对话数据中的系统历史回复是否为反问语句。119.可选的,生成模块850具体用于:根据目标数据和本轮的用户语句,生成本轮的系统回复。120.可选的,解析模块830具体用于:将一个或多个目标表格、以及本轮的用户语句作为预设模型的输入,通过预设模型得到第一查询语句。121.可选的,还包括:训练数据生成模块,用于在将一个或多个目标表格、以及本轮的用户语句作为预设模型的输入,通过预设模型得到第一查询语句之前,生成一个或多个候选表格中每个候选表格相关的样本查询语句;将样本查询语句转换为第一自然语言语句;根据每个候选表格相关的样本查询语句、以及第一自然语言语句,得到训练数据;训练模块,用于根据训练数据进行模型训练得到预设模型。122.可选的,训练模块具体用于:根据训练数据对预训练模型进行训练得到预设模型,预训练模型是预先根据表格信息训练得到的模型。123.可选的,训练数据生成模块包括:替换单元,用于将第一自然语言语句中的关键词替换为关键词对应的同义词或同义短语,得到样本查询语句对应的一个或多个第二自然语言语句;根据每个候选表格相关的样本查询语句、第一自然语言语句、以及一个或多个第二自然语言语句,得到训练数据。124.图8所示实施例的人机对话装置可用于执行上述方法实施例的技术方案,其实现原理和技术效果类似,此处不再赘述。125.以上描述了人机对话装置的内部功能和结构,该装置可实现为一种电子设备。图9为本公开实施例提供的电子设备实施例的结构示意图。如图9所示,该电子设备包括存储器151和处理器152。126.存储器151,用于存储程序。除上述程序之外,存储器151还可被配置为存储其它各种数据以支持在电子设备上的操作。这些数据的示例包括用于在电子设备上操作的任何应用程序或方法的指令,联系人数据,电话簿数据,消息,图片,视频等。127.存储器151可以由任何类型的易失性或非易失性存储设备或者它们的组合实现,如静态随机存取存储器(sram),电可擦除可编程只读存储器(eeprom),可擦除可编程只读存储器(eprom),可编程只读存储器(prom),只读存储器(rom),磁存储器,快闪存储器,磁盘或光盘。128.处理器152,与存储器151耦合,执行存储器151所存储的程序,以用于:129.获取本轮的用户语句;从一个或多个候选表格中确定与所述用户语句匹配的一个或多个目标表格;对所述本轮的用户语句进行解析,得到第一查询语句;根据所述第一查询语句,从所述一个或多个目标表格中查询获得目标数据;根据所述目标数据生成本轮的系统回复。130.进一步,如图9所示,电子设备还可以包括:通信组件153、电源组件154、音频组件155、显示器156等其它组件。图9中仅示意性给出部分组件,并不意味着电子设备只包括图9所示组件。131.通信组件153被配置为便于电子设备和其他设备之间有线或无线方式的通信。电子设备可以接入基于通信标准的无线网络,如wifi,2g或3g,或它们的组合。在一个示例性实施例中,通信组件153经由广播信道接收来自外部广播管理系统的广播信号或广播相关信息。在一个示例性实施例中,所述通信组件153还包括近场通信(nfc)模块,以促进短程通信。例如,在nfc模块可基于射频识别(rfid)技术,红外数据协会(irda)技术,超宽带(uwb)技术,蓝牙(bt)技术和其他技术来实现。132.电源组件154,为电子设备的各种组件提供电力。电源组件154可以包括电源管理系统,一个或多个电源,及其他与为电子设备生成、管理和分配电力相关联的组件。133.音频组件155被配置为输出和/或输入音频信号。例如,音频组件155包括一个麦克风(mic),当电子设备处于操作模式,如呼叫模式、记录模式和语音识别模式时,麦克风被配置为接收外部音频信号。所接收的音频信号可以被进一步存储在存储器151或经由通信组件153发送。在一些实施例中,音频组件155还包括一个扬声器,用于输出音频信号。134.显示器156包括屏幕,其屏幕可以包括液晶显示器(lcd)和触摸面板(tp)。如果屏幕包括触摸面板,屏幕可以被实现为触摸屏,以接收来自用户的输入信号。触摸面板包括一个或多个触摸传感器以感测触摸、滑动和触摸面板上的手势。所述触摸传感器可以不仅感测触摸或滑动动作的边界,而且还检测与所述触摸或滑动操作相关的持续时间和压力。135.另外,本公开实施例还提供一种计算机可读存储介质,其上存储有计算机程序,所述计算机程序被处理器执行以实现上述实施例所述的人机对话方法。136.需要说明的是,在本文中,诸如“第一”和“第二”等之类的关系术语仅仅用来将一个实体或者操作与另一个实体或操作区分开来,而不一定要求或者暗示这些实体或操作之间存在任何这种实际的关系或者顺序。而且,术语“包括”、“包含”或者其任何其他变体意在涵盖非排他性的包含,从而使得包括一系列要素的过程、方法、物品或者设备不仅包括那些要素,而且还包括没有明确列出的其他要素,或者是还包括为这种过程、方法、物品或者设备所固有的要素。在没有更多限制的情况下,由语句“包括一个……”限定的要素,并不排除在包括所述要素的过程、方法、物品或者设备中还存在另外的相同要素。137.以上所述仅是本公开的具体实施方式,使本领域技术人员能够理解或实现本公开。对这些实施例的多种修改对本领域的技术人员来说将是显而易见的,本文中所定义的一般原理可以在不脱离本公开的精神或范围的情况下,在其它实施例中实现。因此,本公开将不会被限制于本文所述的这些实施例,而是要符合与本文所公开的原理和新颖特点相一致的最宽的范围。当前第1页12当前第1页12
再多了解一些

本文用于企业家、创业者技术爱好者查询,结果仅供参考。

发表评论 共有条评论
用户名: 密码:
验证码: 匿名发表

相关文献