一种问句匹配方法和计算设备与流程

文档序号:22627736发布日期:2020-10-23 19:36阅读:298来源:国知局
一种问句匹配方法和计算设备与流程

本发明涉及自然语言处理领域,尤其涉及一种问句匹配方法和计算设备。



背景技术:

随着互联网技术的不断发展,问答系统在诸如智能客服、机器人领域等方面都取得了很大的进展,促进了智能交互系统的快速发展。目前市面上也有一些基于槽填充的任务型多轮对话,用填槽的方式判断用户的意图,协助用户完成特定的需求。不过随着领域内场景的变换多样,配置的复杂性,会出现用户输入的请求意图不明确、槽位冲突、不同意图之间的槽位共享情况,导致预判出错。



技术实现要素:

鉴于上述问题,本发明提出了一种问句匹配方法和计算设备,以力图解决或者至少解决上面存在的问题。

根据本发明的一个方面,提供了一种问句匹配方法,适于计算设备中执行,该计算设备与数据存储装置连接,该数据存储装置中存储有多个用户意图的特征匹配模式,每个特征匹配模式包括用于描述该用户意图的至少一个槽位所构成的链条以及链条的成链条件,每个槽位包括至少一个语料词或者至少一个限制条件,该方法包括步骤:对用户的输入语句进行实体识别,得到一个或多个实体;基于实体识别结果提取输入语句的语义特征,该语义特征包括语句长度特征、实体词特征和除实体词之外的辅助词特征;基于语义特征确定多个候选链条,候选链条为语义特征满足成链条件的链条;基于语义特征对多个候选链条进行槽位匹配,确定与所述输入语句最匹配的目标链条;以及结合语义特征和所述目标链条的用户意图,查找对应的答案语句反馈给用户。

可选地,在根据本发明的问句匹配方法中,链条包括以下至少一种槽位类型:正向槽位,代表输入语:句的用户意图期望查找该槽位中的实体;负向槽位,代表输入语句的用户意图不期望查找该槽位中的实体;函数槽位,代表所述输入语句所应满足的限制条件;正则槽位,用于将模糊的数值表示转换为由两个实体表示的实体区间;或集合槽位,代表输入语句中只需满足该槽位中的任一语料词;与集合槽位,代表输入语句需要同时满足该槽位中的所有语料词。

可选地,在根据本发明的问句匹配方法中,用户意图包括查询产品、产品对比、查询口碑、查询配置、查询价格中的至少一种;成链条件包括所应包含的关键词、不应包含的关键词、原句长度区间、历史对话和当前对话的对话场景、实体个数中的至少一种。

可选地,在根据本发明的问句匹配方法中,实体词特征包括实体名、实体类型、有效实体个数;语句长度特征包括原句长度、去掉实体词之后的语句长度、有效实体占原句的比例;限制条件包括去除实体词之后的语句最大长度、完成槽位匹配后的剩余实体最大个数、所应包含的正则匹配词、不应包含的正则匹配词。

可选地,在根据本发明的问句匹配方法中,还包括每类用户意图的链条生成步骤:从语料库中提取多条语料,确定每条语料的用户意图;基于每类用户意图的多条语料,提取各类用户意图之间的通用词和特殊词;以及基于该通用词和特殊词生成每类用户意图的多个语料词,并将该多个语料词填入到对应链条的多个槽位中。

可选地,在根据本发明的问句匹配方法中,链条生成步骤还包括:提取多个链条之间的共有槽位和独有槽位,生成每个槽位的槽位索引,并记录每个链条所包含的槽位索引。

可选地,在根据本发明的问句匹配方法中,基于语义特征确定多个候选链条的步骤包括:确定语义特征中的关键实体所对应的槽位索引,并从记录中查找包含该槽位索引的链条,并将其中语义特征满足成链条件的链条作为所述候选链条。

可选地,在根据本发明的问句匹配方法中,对多个候选链条进行槽位匹配的步骤包括:依次基于该语义特征对每个候选链条的槽位进行匹配,其中,如果所述语义特征满足槽位要求,则代表槽位匹配,反之则不匹配;统计各候选链条的匹配槽位数目,并计算各候选链条的匹配完整度;选取达标范围内的匹配完整度最高的候选链条作为所述目标链条。

可选地,在根据本发明的问句匹配方法中,候选链条的匹配完整度为所述候选链条的匹配槽位数目除以该候选链条的总槽位数目,达标范围是指匹配完整度大于等于预定阈值。

可选地,在根据本发明的问句匹配方法中,选取达标范围内的匹配完整度最高的候选链条作为所述目标链条的步骤包括:基于语义特征和所匹配槽位中的语料词或限制条件,计算每个匹配槽位的匹配度,并计算所述候选链条的综合匹配度;如果有多个候选链条的匹配完整度相同,则选取链条槽位最多或综合匹配度最大的候选链条作为所述目标链条。

可选地,在根据本发明的问句匹配方法中,选取达标范围内的匹配完整度最高的候选链条作为所述目标链条的步骤包括:若多个候选链条的匹配完整度均不达标,则提取每个候选链条中未匹配的槽位,并基于该槽位生成对应的问句,以便根据用户的回答结果来填充该槽位;以及根据填充后的槽位结果重新计算每个候选链条的匹配完整度,并从中选取达标范围内的匹配完整度最高的候选链条作为所述目标链条。

可选地,在根据本发明的问句匹配方法中,槽位具有层级关系、且同层级的槽位之间具有次序关系,对多个候选链条进行槽位匹配的步骤包括:将输入语句按照每个候选链条的槽位次序关系来进行匹配,以判断每个槽位是否匹配成功。

可选地,在根据本发明的问句匹配方法中,链条的多个槽位中具有必填槽和可选槽,对多个候选链条进行槽位匹配的步骤还包括:若某候选链条的必填槽匹配失败,则略过该候选链条的槽位匹配而进行下一候选链条的槽位匹配。

可选地,在根据本发明的问句匹配方法中,计算设备中还训练有意图预测模型,该意图预测模型的输入和输出分别为用户语句和预测的用户意图,每条语料的用户意图通过所述意图预测模型得到。

可选地,在根据本发明的问句匹配方法中,结合语义特征和所述目标链条的用户意图,查找对应的答案语句反馈给用户的步骤包括:采用所述意图预测模型对所述输入语句进行处理,得到该输入语句的预测意图;以及结合所述目标链条的用户意图和所述输入语句的预测意图得到该输入语句的最终意图,并结合语义特征查找对应的答案语句反馈给用户。

根据本发明的又一方面,提供了一种计算设备,包括:一个或多个处理器;存储器;以及一个或多个程序,其中一个或多个程序存储在存储器中并被配置为由一个或多个处理器执行,该一个或多个程序被处理器执行时实现如上所述的问句匹配方法的步骤。

根据本发明的又一方面,提供了一种存储一个或多个程序的计算机可读存储介质,该一个或多个程序包括指令,所述指令当由计算设备执行时实现如上所述的问句匹配方法的步骤。

根据本发明的技术方案,利用链条来控制槽位,利用成链条件加快链条的匹配速度,同时在外侧规避了链条冲突的风险,本发明能够快速准确地进行用户问句匹配,在复杂场景下更加准确的规避冲突,高效地判断用户行为意图。而且,本发明还可以自定义槽位数量、槽位类型、槽位可扩容性、槽位权重、槽位和槽位之间的关系、槽位次序,并且配置槽位索引,节省了递归填槽的时间,以此来匹配和泛化更广泛的语料特征,规避了很多模糊语料意图识别错误的风险,提高了识别准确率和交互效率。

上述说明仅是本发明技术方案的概述,为了能够更清楚了解本发明的技术手段,而可依照说明书的内容予以实施,并且为了让本发明的上述和其它目的、特征和优点能够更明显易懂,以下特举本发明的具体实施方式。

附图说明

为了实现上述以及相关目的,本文结合下面的描述和附图来描述某些说明性方面,这些方面指示了可以实践本文所公开的原理的各种方式,并且所有方面及其等效方面旨在落入所要求保护的主题的范围内。通过结合附图阅读下面的详细描述,本公开的上述以及其它目的、特征和优势将变得更加明显。遍及本公开,相同的附图标记通常指代相同的部件或元素。

图1示出了根据本发明一个实施例的问句匹配系统100的结构图;

图2示出了根据本发明一个实施例的计算设备200的结构图;

图3示出了根据本发明一个实施例的问句匹配方法300的流程图;

图4示出了根据本发明另一个实施例的问句匹配方法的流程图;以及

图5和图6分别示出了根据本发明一个实施例的口碑链条的示意图。

具体实施方式

下面将参照附图更详细地描述本公开的示例性实施例。虽然附图中显示了本公开的示例性实施例,然而应当理解,可以以各种形式实现本公开而不应被这里阐述的实施例所限制。相反,提供这些实施例是为了能够更透彻地理解本公开,并且能够将本公开的范围完整的传达给本领域的技术人员。

图1示出了根据本发明一个实施例的问句匹配系统100的示意图。如图中所示,系统100包括终端设备110和计算设备200。

终端设备110即用户所使用的终端设备,其具体可以是桌面电脑、笔记本电脑等个人计算机,也可以是手机、平板电脑、多媒体设备、智能音箱、智能可穿戴设备等,但不限于此。计算设备200用于向终端设备110提供服务,其可以实现为服务器,例如应用服务器、web服务器等;也可以实现为桌面电脑、笔记本电脑、处理器芯片、平板电脑等,但不限于此。

根据一种实施例,计算设备200可以提供人机对话服务,终端设备110可以经由互联网与计算设备200建立连接,从而使得用户可以经由终端设备110与计算设备200进行人机对话。用户在终端设备110上打开浏览器或者人机对话类应用(app),例如人工智能助手,并通过文字输入用户语句(文本),由终端设备110将用户语句发送到计算设备200。计算设备200接收到用户语句后,对用户语句进行语义识别,根据语义识别结果,向终端设备110返回合适的响应语句,从而实现人机对话。

在一种实现方式中,终端设备110还可以采集用户的语音数据,并对语音数据进行语音识别处理,得到用户语句,或者,终端设备也可以将语音数据发送到计算设备200,由计算设备200对语音数据进行语音识别处理,得到用户语句。

人机对话的过程可以有一轮或多轮,因此计算设备200可以对人机对话的对话状态进行跟踪,以便根据当前的对话状态,对用户语句进行准确的响应,从而使得对话能够流畅进行。

在一个实施例中,问句匹配系统100还包括数据存储装置120。数据存储装置120可以是关系型数据库例如mysql、access等,也可以是非关系型数据库例如nosql等;可以是驻留于计算设备200中的本地数据库,也可以作为分布式数据库例如hbase等设置于多个地理位置处,总之,数据存储装置120用于存储数据,本发明对数据存储装置120的具体部署、配置情况不做限制。计算设备200可以与数据存储装置120连接,并获取数据存储装置120中所存储的数据。例如,计算设备200可以直接读取数据存储装置120中的数据(在数据存储装置120为计算设备200的本地数据库时),也可以通过有线或无线的方式接入互联网,并通过数据接口来获取数据存储装置120中的数据。

在本发明的实施例中,数据存储装置120适于存储多个用户意图的特征匹配模式,特征匹配模式包括用于描述该用户意图的至少一个槽位所构成的链条、同时还包括每个链条的成链条件,每个槽位包括至少一个语料词或者至少一个限制条件。用户意图在人机对话过程中,用户一次话语的目的,即用户希望在对话场景中获取到的信息是什么,准确理解用户意图是人机对话顺畅进行的基本要求。用户意图一般可包括查询产品、产品对比、查询口碑、查询配置、查询价格等。例如,查询产品例如查询某价位的车,产品对比例如对比a车和b车,查询口碑、配置和价格例如查询某款车的评价、配置和价格。

链条可以理解为一类或多类语料的特征汇总,一个链条也就是一个特征匹配模式,每种用户意图可包括多个链条。以查询口碑这类用户意图为例,其包括多种产品的口碑链条,例如某车系的口碑链条(如图5和图6所示)、某车型的口碑链条、某车系的动力口碑链条、某车型的外观口碑链条等。

每个链条由一个或多个槽位组成,槽位是人机对话系统中预先定义的对话服务所需要的要素,链条中的这些槽位均用于描述对应的用户意图。链条具有多种槽位类型,具体可包括正向槽位、负向槽位、函数槽位、正则槽位和集合槽位,其中集合槽位又分为或集合槽位和与槽位集合。图5所示的车系口碑链条共有5个槽位,第一个为正向实体槽位,之后两个为集合槽位,最后两个为函数槽位。

具体而言,正向槽位代表输入语句的用户意图期望查找该槽位中的实体,输入内容中要包含这个特征,正向槽位可放在链条的第一个槽位上。图5中的车系口碑链条中,第一个车系槽位即为一个正向槽位,代表用户想要查找里边的车系实体。若用户输入为“宝马三系怎么样”,则宝马三系就是一个正向实体。

负向槽位代表输入语句的用户意图不期望查找该槽位中的实体,例如用户的输入语句为“不要德国车”,则槽位里的“国别”即是一个负向实体。

函数槽位代表输入语句所应满足的限制条件,限制条件例如可包括去除实体词之后的语句最大长度、完成槽位匹配后的剩余实体最大个数、所应包含的正则匹配词、不应包含的正则匹配词。函数槽位用于辅助提取用户信息,一般用“judgement”表示,代表进行某些判断,判断输入语句是否满足该判断条件,如是否含有某些词或是否不含某些词。

正则槽位用于将模糊的数值表示转换为由两个实体表示的实体区间,例如“30万左右的车”可转换为“27-33万的车”,方便后续给用户得出更加精确的答案。在一种实现方式中,若所述模糊的数值表示为“a左右”,则对应的实体区间为[a*90%,a*110%]。

集合槽位中可以容纳其他四种槽位,如图5中的集合槽位中均为函数槽位,judgementhave函数是限制语料中包含哪些词,judgementnothave函数是限制语料中不能包含哪些词。或集合槽位(setorset)中的条件满足其一即可,代表输入语句中只需满足该槽位中的任一语料词。例如口碑链条中的id7780槽位,只要输入语句中有“怎么样”、“好不好”、“好吗”这几个词中的任一个,则代表该槽位匹配。与集合槽位(setandset)的条件需要全部满足,代表输入语句需要同时满足该槽位中的所有语料词。例如口碑链条中id7783槽位,输入语句同时不能含有“保值率”、“保值”、“销量”等。

每个链条具有成链条件,成链条件利用定义好的一些实体关系函数来优先判断用户输入语料是否符合设定场景,避免误入槽位。成链条件的判断优先级最高,相当于链条的一个开关。根据用户特征填充槽位之前,先借助成链条件将用户特征和链条条件进行符合度匹配,不符合成链条件的将自动过滤。只有满足成链条件后才会进入到当前链条中来进行槽位匹配。这样可以在外层先过滤出有效链条,既避免填槽冲突,又加快匹配效率。成链条件包括所应包含的关键词、不应包含的关键词、原句长度区间、历史对话和当前对话的对话场景、实体个数中的至少一种。当不满足成链条件是,则会跳过该链条的匹配。

每个链条的槽位之间具有层级关系、且同层级的槽位之间具有次序关系,因此对于复杂语料,可以按照语料特征依次有序填充槽位、明确用户语义,提高覆盖准确率。比如口碑意图下,“2020款宝马三系运动版好不好”,用户可能问的车系口碑,也可能是车型口碑。如何判断用户输入的是车型,就需要在车系前后判断看是否有车型因素,如“版型”“年代”等等,这样就会用到槽位次序。通过在槽位中设置车系实体、车型实体和年代实体的次序关系,来判断用户语句最终素匹配的槽位。

另外,为了方便根据槽位特有属性来加快匹配度,链条的多个槽位中具有必填槽和可选槽。例如车系口碑链条中,车系这一正向实体即为必填槽,而实体个数的函数槽位可设置为可选槽。必填槽位为空时,将自动去除对应链条,以规避错配风险。根据槽位对链条的贡献度,可为每个槽位设置不同的权重,这样在进行链条的各个槽位匹配时,可以基于当各槽位的权值来计算链条整体的填充度。另外,如果输入语句中明显不匹配某链条的必填槽,则可判定当前语句不匹配该链条。

进一步地,多个链条之间既有相同的槽位特征,也有各自独有的槽位特征,因此本发明可将具有相同槽位特征的链条缓存在一起,并为每个槽位设置槽位索引。例如,车系配置和车系价格这两个链条都有车系特征,那么这两个链条的共有特征就是车系,独有特征就是剩余的语料特征,前者是配置相关,后者是询价相关。

这里,链条上的槽位数目不定、槽位深度也不可知,因此采取递归填槽会很耗时耗力且没有效率,且当链条增大时语料匹配速度会越来越慢。本发明为了加快填充效率的方法,采用横向存储和纵向存储相结合的方式。每一个链条有自己独有的特征,按照槽位类别将全部槽位归类平铺,将槽位和具有该槽位的链条一一对应,按照槽位属性索引链条,使得可以直接根据语料特征索引到包含此特征的链条上,避免递归填槽、提升识别效率。

比如:单车系选车的链条和车系口碑的链条中均有车系实体,那么就可把车系实体作为索引,索引到单车系选车和车系口碑,而不用再单独循环判断一个链条里到底有无车系实体。另外,每个链条可以设置增添或删改选项,用于修改槽位;每个槽位也可以设置增添或删改选项,用于增添或删改其中语料词或限制条件。

数据存储装置120中存储有语料库,并基于语料库来生成每种用户意图的链条数据。当然,在另一种实现方式中,计算设备还可以基于数据存储装置120中存储的语料库来生成每种用户意图的链条数据,并将所生成的链条数据保存在数据存储装置120中,以便在应用阶段基于这些链条数据进行问句匹配,从而给出问句答案。

本发明的问句匹配方法可以在计算设备200中执行。图2示出了根据本发明一个实施例的计算设备200的结构框图。如图2所示,在基本的配置202中,计算设备200典型地包括系统存储器206和一个或者多个处理器204。存储器总线208可以用于在处理器204和系统存储器206之间的通信。

取决于期望的配置,处理器104可以是任何类型的处理,包括但不限于:微处理器(μp)、微控制器(μc)、数字信息处理器(dsp)或者它们的任何组合。处理器204可以包括诸如一级高速缓存210和二级高速缓存212之类的一个或者多个级别的高速缓存、处理器核心214和寄存器216。示例的处理器核心214可以包括运算逻辑单元(alu)、浮点数单元(fpu)、数字信号处理核心(dsp核心)或者它们的任何组合。示例的存储器控制器218可以与处理器204一起使用,或者在一些实现中,存储器控制器218可以是处理器204的一个内部部分。

取决于期望的配置,系统存储器206可以是任意类型的存储器,包括但不限于:易失性存储器(诸如ram)、非易失性存储器(诸如rom、闪存等)或者它们的任何组合。系统存储器106可以包括操作系统220、一个或者多个应用222以及程序数据224。在一些实施方式中,应用222可以布置为在操作系统上利用程序数据124进行操作。程序数据124包括指令,在根据本发明的计算设备200中,程序数据224包含用于执行问句匹配方法300的指令。

计算设备200还可以包括有助于从各种接口设备(例如,输出设备242、外设接口244和通信设备246)到基本配置202经由总线/接口控制器230的通信的接口总线240。示例的输出设备242包括图形处理单元248和音频处理单元250。它们可以被配置为有助于经由一个或者多个a/v端口252与诸如显示器或者扬声器之类的各种外部设备进行通信。示例外设接口244可以包括串行接口控制器254和并行接口控制器256,它们可以被配置为有助于经由一个或者多个i/o端口258和诸如输入设备(例如,键盘、鼠标、笔、语音输入设备、触摸输入设备)或者其他外设(例如打印机、扫描仪等)之类的外部设备进行通信。示例的通信设备246可以包括网络控制器260,其可以被布置为便于经由一个或者多个通信端口264与一个或者多个其他计算设备262通过网络通信链路的通信。

网络通信链路可以是通信介质的一个示例。通信介质通常可以体现为在诸如载波或者其他传输机制之类的调制数据信号中的计算机可读指令、数据结构、程序模块,并且可以包括任何信息递送介质。“调制数据信号”可以这样的信号,它的数据集中的一个或者多个或者它的改变可以在信号中编码信息的方式进行。作为非限制性的示例,通信介质可以包括诸如有线网络或者专线网络之类的有线介质,以及诸如声音、射频(rf)、微波、红外(ir)或者其它无线介质在内的各种无线介质。这里使用的术语计算机可读介质可以包括存储介质和通信介质二者。

计算设备200可以实现为服务器,例如文件服务器、数据库服务器、应用程序服务器和web服务器等,也可以实现为小尺寸便携(或者移动)电子设备的一部分,这些电子设备可以是诸如蜂窝电话、个人数字助理(pda)、无线网络浏览设备、应用专用设备、或者可以包括上面任何功能的混合设备。计算设备200还可以实现为包括桌面计算机和笔记本计算机配置的个人计算机。在一些实施例中,计算设备200被配置为执行问句匹配方法300。

图3示出了根据本发明一个实施例的问句匹配方法300的流程图。方法300在计算设备(如计算设备200)中执行,以便完成用户问句的匹配和答复。

如图3所示,该方法始于步骤s310。在步骤s310中,对用户的输入语句进行实体识别,得到实体识别结果,该实体识别结果包括所识别出的一个或多个实体。实体识别方法是目前比较成熟发方法,可以采用模型或词典库的方式进行,这里不再赘述。

随后,在步骤s320中,基于实体识别结果提取所述输入语句的语义特征,语义特征包括语句长度特征、实体词特征和除实体词之外的辅助词特征。

实体词特征包括实体名、实体类型、有效实体个数。语句长度特征包括原句长度、去掉实体词之后的语句长度、有效实体占原句的比例。限制条件包括去除实体词之后的语句最大长度、完成槽位匹配后的剩余实体最大个数、所应包含的正则匹配词、不应包含的正则匹配词。辅助词特征用于辅助识别用户语义的其他有用信息,去除掉识别出实体词之后,将剩余的未识别出来的其它信息和完整信息进行对比,以提取其他有用信息。有些辅助词中代表用户意图,例如“帮我选”“给我推荐”等代表用户想查找产品,“不要”之后的实体代表用户不希望查找的产品特征。因此,可提取这些意图词或否定词的特征,结合这些词之后的实体词内容来准确判断用户意图。

以“帮我选一辆30万左右的suv,不要日本车”为例,识别出的实体词包括“30万左右”、“suv”和“日本”,剩余的未识别词语为“帮我选一辆”、“的”、“不要”、“车”。将未识别中的词和完整的用户语句进行对比,可以得出有效实体占全句的比例,同时可以发现“国别”实体前是“不要”这些否定词修饰,说明需要排除该条件实体。用户语句中其他条件实体是用户正向意愿作为选车条件来选出符合用户需求的结果。

随后,在步骤s330中,基于语义特征确定多个候选链条,该候选链条为语义特征满足成链条件的链条。

具体地,在确定候选链条时,考虑到每个槽位具有槽位索引,因此可以首先确定语义特征中的关键实体所对应的槽位索引,并从记录中查找包含该槽位索引的链条。之后,判断各语义特征是否满足所查找到的链条的成链条件,并将其中语义特征满足成链条件的链条作为候选链条。

根据一个实施例,方法300还可以包括每类用户意图的链条生成步骤:

首先,从语料库中提取多条语料,确定每条语料的用户意图。这里可借助模型来生成每条语料的用户意图,也可以进行人工标注,或者同时结合模型结果和人工标注结果来生成每条语料的意图标签。在一种实现方式中,计算设备中训练有意图预测模型,该意图预测模型的输入和输出分别为用户语句和预测的用户意图,这样可通过该意图预测模型来预测每条语料的用户意图。意图预测模型可为神经网络模型,其可以采用任意类型的预测模型,本发明对具体采用的预测模型不做限制,本领域技术人员可以根据需要进行合理选择。

然后,基于每类用户意图的多条语料,提取各类用户意图之间的通用词和特殊词。例如,“宝马三系多少钱”的意图是询价,“宝马三系好不好”的意图是口碑,这两个意图都包含车系,则车系就是该两个意图的通用词,而特殊词则是询价语料中包含“问价格”相关的词语、以及口碑语料中包含“怎么样/好不好/好吗”之类的评价相关词语。

最后,基于该通用词和特殊词生成每类用户意图的多个语料词,并将该多个语料词填入到对应链条的多个槽位中。

也就是,本发明基于每种意图的多种语料,按照意图分类提取数据的通用点和特殊点,根据每一组数据特征配置对应的链条。在链条生成时,还可以提取多个链条之间的共有槽位和独有槽位,生成每个槽位的槽位索引,并记录每个链条所包含的槽位索引。同时,链条上可以自由定义槽位类型、槽位数量、槽位可扩容性、槽位权重、槽位和槽位之间的关系、槽位次序,以此来匹配和泛化不同的语料特征。

随后,在步骤s340中,基于语义特征对多个候选链条进行槽位匹配,确定与输入语句最匹配的目标链条。

具体地,步骤340可基于以下分步骤实现:

首先,依次基于该语义特征对每个候选链条的槽位进行匹配,其中,如果语义特征满足槽位要求,则代表槽位匹配,反之则不匹配。这里,考虑到每个槽位可能有多个语料词或限制条件,因此在步骤s340中还可以基于语义特征和所匹配槽位中的语料词或限制条件,计算每个匹配槽位的匹配度,并计算候选链条的综合匹配度。综合匹配度可以是各匹配槽位的匹配度求平均;也可以结合各槽位的权重,将各匹配槽位的匹配度加权求平均后计算综合匹配度。

应当理解的是,在对多个候选链条进行槽位匹配时,可以将输入语句按照每个候选链条的槽位次序关系来进行匹配,以判断每个槽位是否匹配成功。同时,若某候选链条的必填槽匹配失败,则略过该候选链条的槽位匹配而进行下一候选链条的槽位匹配。

然后,统计各候选链条的匹配槽位数目,并计算各候选链条的匹配完整度。其中,候选链条的匹配完整度为候选链条的匹配槽位数目除以该候选链条的总槽位数目。假设候选链条共有5个槽位,其中有3个槽位匹配,则该链条的匹配完整度为60%。

最后,选取达标范围内的匹配完整度最高的候选链条作为目标链条。达标范围是指匹配完整度大于等于预定阈值。也就是,首先选取匹配完整度大于等于预定阈值的多个链条,并从该多个链条中选取匹配完整度最高的链条作为目标链条。

在一种实现方式中,如果有多个候选链条的匹配完整度相同,则选取链条槽位最多或综合匹配度最大的候选链条作为目标链条。

在另一种实现方式中,若多个候选链条的匹配完整度均不达标(也就是均小于预定阈值),则提取每个候选链条中未匹配的槽位,并基于该槽位生成对应的问句,以便根据用户的回答结果来填充该槽位。之后,如果有多个候选链条的匹配完整度相同,则选取链条槽位最多或综合匹配度最大的候选链条作为目标链条。根据填充后的槽位结果重新计算每个候选链条的匹配完整度,并从中选取达标范围内的匹配完整度最高的候选链条作为目标链条。

这里,候选链条的匹配完整度都很低,代表用户语句的输入信息太少,无法有效匹配链条,因此根据链条未填充的槽位来生成问句,引导用户回答对应槽位的问题,以完成槽位填充。之后,根据填充结果再次计算匹配完整度,直至计算到的匹配完整度达标后选取目标链条。

最后,在步骤s350中,结合语义特征和目标链条的用户意图,查找对应的答案语句反馈给用户。

这里,语义特征包含实体识别结果,有希望查找的条件实体、不希望查找的条件实体、以及范围模糊的条件实体等。语义特征填充最完整的链条所对应的意图即为用户所需。结合目标链条的用户意图和语义特征所填充的槽位,可进行最终决策,确定带有用户查询实体的真正意图。根据不同的意图和用户需求出不同的答案结果。例如,用户问句“宝马三系怎么样”,对应的链条为车系口碑链条,结合该用户问句的特征可确定用户的真正意图为“查询宝马三系的口碑”,之后查找对应的口碑结果返回给用户。

如前文所述,计算设备中还有意图预测模型,因此步骤s350中,还可以采用该意图预测模型对输入语句进行处理,得到该输入语句的预测意图。之后,结合目标链条的用户意图和输入语句的预测意图得到该输入语句的最终意图,并结合语义特征查找对应的答案语句反馈给用户。

根据本发明的技术方案,利用链条来控制槽位、自定义槽位数量、槽位类型、槽位可扩容性、槽位权重、槽位和槽位之间的关系、槽位次序,以此来匹配和泛化更广泛的语料特征。将当前对话结合多轮上下文关系,对用户历史信息进行提取,能更自然地和用户进行交互。同时,本发明利用成链条件加快链条的匹配速度,在外侧规避了链条冲突的风险。而且,本发明还节省了递归填槽的时间,规避了很多模糊语料意图识别错误的风险。提高了识别准确率和交互效率。

a9、如a8所述的方法,其中,所述候选链条的匹配完整度为所述候选链条的匹配槽位数目除以该候选链条的总槽位数目,所述达标范围是指匹配完整度大于等于预定阈值。a10、如a8或a9所述的方法,其中,所述选取达标范围内的匹配完整度最高的候选链条作为所述目标链条的步骤包括:基于所述语义特征和所匹配槽位中的语料词或限制条件,计算每个匹配槽位的匹配度,并计算所述候选链条的综合匹配度;如果有多个候选链条的匹配完整度相同,则选取链条槽位最多或综合匹配度最大的候选链条作为所述目标链条。

a11、如a8-a10中任一项所述的方法,其中,所述选取达标范围内的匹配完整度最高的候选链条作为所述目标链条的步骤包括:若所述多个候选链条的匹配完整度均不达标,则提取每个候选链条中未匹配的槽位,并基于该槽位生成对应的问句,以便根据用户的回答结果来填充该槽位;以及根据填充后的槽位结果重新计算每个候选链条的匹配完整度,并从中选取达标范围内的匹配完整度最高的候选链条作为所述目标链条。

a12、如a1-a11中任一项所述的方法,其中,所述槽位具有层级关系、且同层级的槽位之间具有次序关系,所述对多个候选链条进行槽位匹配的步骤包括:将所述输入语句按照每个候选链条的槽位次序关系来进行匹配,以判断每个槽位是否匹配成功。

a13、如a1-a12中任一项所述的方法,其中,所述链条的多个槽位中具有必填槽和可选槽,所述对多个候选链条进行槽位匹配的步骤还包括:若某候选链条的必填槽匹配失败,则略过该候选链条的槽位匹配而进行下一候选链条的槽位匹配。

a14、如a3所述的方法,其中,所述计算设备中还训练有意图预测模型,所述意图预测模型的输入和输出分别为用户语句和预测的用户意图,所述每条语料的用户意图通过所述意图预测模型得到。

a15、如a14所述的方法,其中,所述结合所述语义特征和所述目标链条的用户意图,查找对应的答案语句反馈给用户的步骤包括:采用所述意图预测模型对所述输入语句进行处理,得到该输入语句的预测意图;以及结合所述目标链条的用户意图和所述输入语句的预测意图得到该输入语句的最终意图,并结合所述语义特征查找对应的答案语句反馈给用户。

这里描述的各种技术可结合硬件或软件,或者它们的组合一起实现。从而,本发明的方法和设备,或者本发明的方法和设备的某些方面或部分可采取嵌入有形媒介,例如可移动硬盘、u盘、软盘、cd-rom或者其它任意机器可读的存储介质中的程序代码(即指令)的形式,其中当程序被载入诸如计算机之类的机器,并被所述机器执行时,所述机器变成实践本发明的设备。

在程序代码在可编程计算机上执行的情况下,计算设备一般包括处理器、处理器可读的存储介质(包括易失性和非易失性存储器和/或存储元件),至少一个输入装置,和至少一个输出装置。其中,存储器被配置用于存储程序代码;处理器被配置用于根据该存储器中存储的所述程序代码中的指令,执行本发明的方法。

以示例而非限制的方式,可读介质包括可读存储介质和通信介质。可读存储介质存储诸如计算机可读指令、数据结构、程序模块或其它数据等信息。通信介质一般以诸如载波或其它传输机制等已调制数据信号来体现计算机可读指令、数据结构、程序模块或其它数据,并且包括任何信息传递介质。以上的任一种的组合也包括在可读介质的范围之内。

在此处所提供的说明书中,算法和显示不与任何特定计算机、虚拟系统或者其它设备固有相关。各种通用系统也可以与本发明的示例一起使用。根据上面的描述,构造这类系统所要求的结构是显而易见的。此外,本发明也不针对任何特定编程语言。应当明白,可以利用各种编程语言实现在此描述的本发明的内容,并且上面对特定语言所做的描述是为了披露本发明的最佳实施方式。

在此处所提供的说明书中,说明了大量具体细节。然而,能够理解,本发明的实施例可以在没有这些具体细节的情况下被实践。在一些实例中,并未详细示出公知的方法、结构和技术,以便不模糊对本说明书的理解。

类似地,应当理解,为了精简本公开并帮助理解各个发明方面中的一个或多个,在上面对本发明的示例性实施例的描述中,本发明的各个特征有时被一起分组到单个实施例、图、或者对其的描述中。然而,并不应将该公开的方法解释成反映如下意图:即所要求保护的本发明要求比在每个权利要求中所明确记载的特征更多特征。更确切地说,如下面的权利要求书所反映的那样,发明方面在于少于前面公开的单个实施例的所有特征。因此,遵循具体实施方式的权利要求书由此明确地并入该具体实施方式,其中每个权利要求本身都作为本发明的单独实施例。

本领域那些技术人员应当理解在本文所公开的示例中的设备的模块或单元或组件可以布置在如该实施例中所描述的设备中,或者可替换地可以定位在与该示例中的设备不同的一个或多个设备中。前述示例中的模块可以组合为一个模块或者此外可以分成多个子模块。

本领域那些技术人员可以理解,可以对实施例中的设备中的模块进行自适应性地改变并且把它们设置在与该实施例不同的一个或多个设备中。可以把实施例中的模块或单元或组件组合成一个模块或单元或组件,以及此外可以把它们分成多个子模块或子单元或子组件。除了这样的特征和/或过程或者单元中的至少一些是相互排斥之外,可以采用任何组合对本说明书(包括伴随的权利要求、摘要和附图)中公开的所有特征以及如此公开的任何方法或者设备的所有过程或单元进行组合。除非另外明确陈述,本说明书(包括伴随的权利要求、摘要和附图)中公开的每个特征可以由提供相同、等同或相似目的的替代特征来代替。

此外,本领域的技术人员能够理解,尽管在此所述的一些实施例包括其它实施例中所包括的某些特征而不是其它特征,但是不同实施例的特征的组合意味着处于本发明的范围之内并且形成不同的实施例。例如,在下面的权利要求书中,所要求保护的实施例的任意之一都可以以任意的组合方式来使用。

此外,所述实施例中的一些在此被描述成可以由计算机系统的处理器或者由执行所述功能的其它装置实施的方法或方法元素的组合。因此,具有用于实施所述方法或方法元素的必要指令的处理器形成用于实施该方法或方法元素的装置。此外,装置实施例的在此所述的元素是如下装置的例子:该装置用于实施由为了实施该发明的目的的元素所执行的功能。

如在此所使用的那样,除非另行规定,使用序数词“第一”、“第二”、“第三”等等来描述普通对象仅仅表示涉及类似对象的不同实例,并且并不意图暗示这样被描述的对象必须具有时间上、空间上、排序方面或者以任意其它方式的给定顺序。

尽管根据有限数量的实施例描述了本发明,但是受益于上面的描述,本技术领域内的技术人员明白,在由此描述的本发明的范围内,可以设想其它实施例。此外,应当注意,本说明书中使用的语言主要是为了可读性和教导的目的而选择的,而不是为了解释或者限定本发明的主题而选择的。因此,在不偏离所附权利要求书的范围和精神的情况下,对于本技术领域的普通技术人员来说许多修改和变更都是显而易见的。对于本发明的范围,对本发明所做的公开是说明性的而非限制性的,本发明的范围由所附权利要求书限定。

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