查询项的纠错方法和装置与流程

文档序号:19155899发布日期:2019-11-16 00:46阅读:308来源:国知局
查询项的纠错方法和装置与流程

本说明书涉及数据处理技术领域,尤其涉及一种查询项的纠错方法和装置。



背景技术:

随着网络的发展和智能终端的普及,人们渐渐习惯于通过智能终端完成生活和工作中的各种事务。通常用户在安装某个互联网服务提供商的客户端app(应用程序)后,即可在该app中使用该服务提供商的各项服务。随着用于不同事务的服务越来越多,用户常常发现难以在app中找到某个服务的入口。

因此,有的app提供了服务搜索功能,用户在搜索框中输入查询项(query),如果查询项命中了完全或部分命中了app中的服务,则将命中的服务作为搜索结果显示给用户。但是在智能终端上,用户很容易发生输入错误的情况,如果能用户输入错误时给出符合用户需要的搜索结果,将极大的提高用户的搜索效率。



技术实现要素:

有鉴于此,本说明书提供一种查询项的纠错方法,包括:

接收用户输入的用户查询项;

当用户查询项属于错误查询项集合时,将目标查询项集合中与用户查询项的向量之间非对称距离最小的m个目标查询项作为纠错候选项;m为自然数;所述错误查询项和目标查询项的向量在采用训练样本训练损失函数后得到,所述损失函数根据训练样本中查询项的向量之间的非对称距离构建;

将m个纠错候选项的搜索结果显示给用户。

本说明书还提供了一种查询项的纠错装置,包括:

用户查询项接收单元,用于接收用户输入的用户查询项;

纠错候选项确定单元,用于当用户查询项属于错误查询项集合时,将目标查询项集合中与用户查询项的向量之间非对称距离最小的m个目标查询项作为纠错候选项;m为自然数;所述错误查询项和目标查询项的向量在采用训练样本训练损失函数后得到,所述损失函数根据训练样本中查询项的向量之间的非对称距离构建;

纠错搜索单元,用于将m个纠错候选项的搜索结果显示给用户。

本说明书提供的一种计算机设备,包括:存储器和处理器;所述存储器上存储有可由处理器运行的计算机程序;所述处理器运行所述计算机程序时,执行上述查询项的纠错方法所述的步骤。

本说明书还提供了一种计算机可读存储介质,其上存储有计算机程序,所述计算机程序被处理器运行时,执行上述查询项的纠错方法所述的步骤。

由以上技术方案可见,本说明书的实施例中,将错误查询项集合和目标查询项集合中的每个查询项都以一个向量来表示,根据查询项的向量之间的非对称距离来构建损失函数,在采用训练样本对损失函数完成训练后可以得到错误查询项集合和目标查询项集合中每个查询项的向量,在输入的用户查询项属于错误查询项集合时,将与用户查询项的向量之间非对称距离最短的m(m为自然数)个目标查询项的搜索结果显示给用户,本说明书的实施例能够对采用各种输入法的用户查询项进行纠错,并且能够提供准确的搜索结果,极大的提高了用户的搜索效率。

附图说明

图1是本说明书实施例中一种查询项的纠错方法的流程图;

图2是本说明书应用示例中一种生成纠错候选表的流程图;

图3是运行本说明书实施例的一种设备的硬件结构图;

图4是本说明书实施例中一种查询项的纠错装置的逻辑结构图。

具体实施方式

本说明书的实施例提出一种新查询项的纠错方法,将每个错误查询项和每个目标查询项表征为一个向量,基于向量之间的非对称距离来构建损失函数,通过修改向量值来在模型训练中优化损失函数,使得完成训练后,可以采用一个错误查询项向量到目标查询项向量的非对称距离来得到该错误查询项的纠错候选,从而能够同时适用于多种输入法的用户查询项纠错,并且具有准确的纠错结果。

本说明书的实施例可以运行在任何具有计算和存储能力的设备上,如手机、平板电脑、pc(personalcomputer,个人电脑)、笔记本、服务器等设备;还可以由运行在两个或两个以上设备的逻辑节点来实现本说明书实施例中的各项功能。

本说明书的实施例中,一个查询项是用来进行一次搜索的输入内容。由于用户能够输入字母(拼音字母或外文字母)、汉字、符号、笔划等,查询项可以是上述字母、汉字、符号、笔划等中的一种,也可以是两种到多种的组合。

错误查询项是被认定为有输入错误的查询项,而目标查询项是被认定为输入正确、能够在纠正输入错误时作为纠错结果的查询项。通常可以将查询项本身没有明确含义、和/或命中的搜索结果极少的查询项认定为错误查询项;反之可以将本身有明确含义、和/或命中的搜索结果较多的查询项认定为目标查询项。错误查询项和目标查询项的认定也可以采用其他的判断方式,不做限定。

本说明书的实施例中,预置错误查询项集合和目标查询项集合,错误查询项集合包括若干个错误查询项,目标查询项集合包括若干个目标查询项。可以根据实际应用场景中搜索针对的范围、运行本说明书实施例的设备的存储和处理能力等因素,来决定错误查询项集合和目标查询项集合中分别包括多少个查询项(即集合中元素的数量)。在选择将哪些查询项作为集合元素时,通常可以将出现频次作为判断依据之一,例如,可以将在用户输入的查询项中出现频次最高的若干个错误查询项作为错误查询项集合的元素,可以将在搜索结果中出现频次最高的若干个目标查询项作为目标查询项集合的元素。对错误查询项集合和目标查询项集合的大小、及其中元素的确定方式,本说明书的实施例均不做限定。

错误查询项集合和目标查询项集合中的每个查询项均由一个向量来表达,每个查询项的向量的值通过以训练样本训练机器学习模型来确定。本说明书的实施例中,根据训练样本中查询项的向量之间的非对称距离构建损失函数,以损失函数作为模型来进行训练,在训练中通过更改向量值来对模型进行优化,在训练完毕时可以得到相对于所进行的训练而言,能够最大程度优化该损失函数的查询项向量。

例如,可以采用这样的方式来训练损失函数:先初始化错误查询项集合和目标查询项集合中每个查询项的向量,即赋予每个查询项一个初始值;对每个训练样本,按照训练样本中各个查询项的向量来计算损失函数,并且通过修改查询项的向量值来优化损失函数。在使用所有训练样本完成损失函数的训练后,即可得到错误查询项集合和目标查询项集合中每个查询项的向量值。

两个查询项的向量之间的距离可以用来衡量这两个查询项的相似程度。向量之间的距离可以是对称距离,即从向量到向量的距离等于从的距离;也可以是非对称距离,即从向量到向量的距离通常不等于从的距离。在用来确定某个错误查询项最有可能的纠错结果(即目标查询项)时,采用两个查询项的向量之间的对称距离来衡量相似程度,往往会导致不符合用户输入意图的结果。

而对一个错误查询项来说,如果其向量到一个目标查询项向量的非对称距离更近,则该目标查询项就更有可能是用户在输入该错误查询项时原本想要输入的查询项。因此,本申请中采用向量之间的非对称距离来构建损失函数,同样也采用向量之间的非对称距离来确定最有可能的纠错结果,例如,采用kl散度(kullback-leiblerdivergence,相对熵)来作为两个向量之间距离的度量。

损失函数的具体形式可以根据实际应用场景中训练样本的构成、错误查询项集合及目标查询项集合的大小等因素来确定,本说明书的实施例不做限定。损失函数通常与从错误查询项到更有可能的纠错结果的向量之间的非对称距离正相关,即:在其他条件不变的情况下,从错误查询项到更有可能的纠错结果之间的非对称距离越小,损失函数越小。

可以根据实际应用场景的需要来决定训练样本的构成以及如何生成训练样本,同样不做限定。

在一种实现方式中,一个训练样本中包括参照项、正样本项和负样本项,其中参照项、正样本项和负样本项都是错误查询项集合或目标查询项集合的元素。可以采用以下方式来自动生成这种实现方式中的一个训练样本:

将满足预定会话筛选条件的一个用户会话中一次搜索的用户查询项作为一个训练样本的参照项;能够作为参照项的用户查询项是错误查询项集合或目标查询项集合的元素,并且该用户查询项所属的搜索不是该用户会话中的最后一次搜索;

将参照项的一个可选正样本项作为该训练样本的正样本项;该参照项的可选正样本项是在同一个用户会话中时序在参照项所属搜索之后的t(t为自然数)次搜索的用户查询项中、属于错误查询项集合或目标查询项集合的用户查询项;

将属于错误查询项集合或目标查询项集合、并且不属于该参照项的可选正样本项的一个查询项作为该训练样本的负样本项。

其中,用户查询项是在响应用户在搜索栏中的输入时所进行的一次搜索中所使用的查询项。例如,当用户在搜索栏中持续输入m、a、y、i、蚂蚁,响应于用户的输入,共进行了5次搜索,从第1次搜索到第5次搜索的用户查询项分别是:m、ma、may、mayi、蚂蚁。

会话(session)是服务端与客户端(如互联网提供商的服务器与安装在用户移动终端上的app)之间一个持续的交互过程。在一个会话开启后,客户端可以向服务端发送多次请求,接收多次服务端的回复,这些请求和回复能够被同一个会话关联起来。

用户可以在一次会话中发起多次搜索请求,各次搜索请求采用的用户查询项通常是不同的,可以采用预定会话筛选条件来选择适宜的会话,将这些会话中的用户查询项用来作为生成训练样本的数据源。预定会话筛选条件可以根据实际应用场景的特点和需要来设置,不做限定。以下举例说明:

例一,会话的持续时间过长,则会话中用户后续进行的搜索可能已经与之前的搜索的关联程度很低,不适合作为正样本,可以将会话持续时间不超过预定持续时间作为预定会话筛选条件、或预定会话筛选条件的组成部分;

例二,会话中的搜索次数过少,可供提取的查询项过少,不利于得到关联程度较高的多个正样本,可以将会话中的搜索次数达到预定搜索次数作为预定会话筛选条件、或预定会话筛选条件的组成部分;

例三,在会话中用户进行点击等操作的次数过多或过少,在很多情形下用户在该会话中不具有明确的意图,这样会影响各次用户查询项的关联程度,可以将会话中用户操作次数达到预定下阈值并且不超过预定上阈值作为预定会话筛选条件、或预定会话筛选条件的组成部分。

在一次会话中,用户连续进行的数次搜索之间通常有很强的相关性,并且这些搜索中时序上越靠后,往往越能正确反映用户想要搜索的对象。假设用户在输入查询项时发生错误,极有可能会在随后输入正确的查询项,即使用户不知道正确的查询项,也会围绕正确的查询项来进行随后的输入。因此,可以认为在同一个会话中,一次搜索的用户查询项与时序在该次搜索之后的用户查询项有较高的相似程度,可以将时序靠后的用户查询项用来生成时序靠前的用户查询项的正样本。

在从保存的历史会话中筛选出符合预定会话筛选条件的用户会话后,如果某个用户会话中非最后一次搜索的用户查询项属于错误查询项集合或目标查询项集合,则可以将该用户查询项作为参照项,来生成一个训练样本。

同一个用户会话中,参照项所属的搜索之后进行的t(t为自然数)次搜索的用户查询项中,属于错误查询项集合或目标查询项集合的用户查询项都是该参照项的可选正样本项;换言之,在该用户会话中,以参照项所属的搜索为起点,取一个长度为t次搜索的窗口(不包括起点),则起点搜索之后的t次搜索进入窗口,窗口中t次搜索的用户查询项中属于错误查询项集合或目标查询项集合的用户查询项,都是参照项的可选正样本项。设起点搜索使用的用户查询项为s0,其后t次搜索使用的用户查询项分别为s1、s2、…、sk,假设s1、s2、…、sk都是错误查询项集合或目标查询项集合的元素,则从s1直到sk都是s0作为参照项时的可选正样本项。

错误查询项集合或目标查询项集合中,除某个参照项的可选正样本项之外的其他查询项,都可以作为该参照项的负样本项。在选择某个参照项的负样本项时,可以在上述其他查询项中,优先选择在满足预定会话筛选条件的会话中出现频次高的查询项来作为负样本项,以达到更好的训练效果。

在训练样本包括参照项、正样本项和负样本项的实现方式中,损失函数可以采用如下方式构建:损失函数与从参照项到正样本项的非对称距离正相关、与从正样本项到参照项的非对称距离负相关、与从参照项到负样本项的非对称距离负相关。一个例子中,设一个训练样本为(qn,qnk+,qnk-),其中qn为参照项,qnk+为正样本项,qnk-为负样本项;设qn、qnk+和qnk-的向量分别为wn、wnk+和wnk-,则损失函数可以如式1所示:

l=dkl(wn||wnk+)-dkl(wnk+||wn)-dkl(wn||wnk-)式1

式1中,为从的kl散度。

这样,在以式1的损失函数为模型进行训练时,将朝着缩小从训练样本的参照项到正样本项的kl散度、增大从正样本项到参照项的kl散度、增大参照项到负样本项的kl散度的方向,优化各个错误查询项和目标查询项的向量值。

在损失函数训练完成后,可以采用训练后得到的错误查询项和目标查询项的向量,来为用户输入的错误查询项进行纠错。

本说明书的实施例中,查询项的纠错方法的流程如图1所示,该方法可以运行在服务端,也可以运行在客户端。

步骤110,接收用户输入的用户查询项。

当本说明书实施例的方法运行在客户端时,可以直接接收用户在搜索栏中输入的用户查询项。当本说明书实施例的方法运行在服务端时,可以由用户使用的智能终端将用户在搜索栏中输入的用户查询项发送给服务端。

步骤120,当用户查询项属于错误查询项集合时,将目标查询项集合中与用户查询项的向量之间非对称距离最短的m(m为自然数)个目标查询项作为纠错候选项。其中,错误查询项和目标查询项的向量在采用训练样本训练损失函数后得到。

如果接收的用户查询项属于错误查询项集合,计算该用户查询项的向量与目标查询项集合中每个目标查询项的向量之间的非对称距离,将非对称距离最小的m个目标查询项作为纠错候选项。

在一种实现方式中,可以预先针对错误查询项集合中的每个错误查询项,计算并查找与其向量的非对称距离最小的m个目标查询项,并将这m个目标查询项与该错误查询项的对应关系保存在纠错候选表中。这样,在用户输入错误查询项时,查找纠错候选表就可以得到纠错候选项,加快了纠错的速度。

步骤130,根据m个纠错候选项生成搜索结果。

当本说明书实施例运行在服务端时,服务端以m个纠错候选项作为用户查询项进行搜索,并返回给客户端。当本说明书实施例运行在客户端时,由客户端以m个纠错候选项作为用户查询项进行搜索,得到搜索结果。客户端将搜索结果显示给用户。本步骤可参照现有技术实现,不再赘述。

可见,本说明书的实施例中,将错误查询项集合和目标查询项集合中的每个查询项都以一个向量来表示,以向量之间的非对称距离来构建损失函数,通过修改向量值来在模型训练中优化损失函数,完成训练后可以得到错误查询项集合和目标查询项集合中每个查询项的向量,在输入的用户查询项属于错误查询项集合时,可以采用该错误查询项向量到目标查询项向量的非对称距离来得到该错误查询项的纠错候选,从而能够对采用各种输入法的用户查询项进行纠错,并且提供准确的搜索结果,极大的提高了用户的搜索效率。

上述对本说明书特定实施例进行了描述。其它实施例在所附权利要求书的范围内。在一些情况下,在权利要求书中记载的动作或步骤可以按照不同于实施例中的顺序来执行并且仍然可以实现期望的结果。另外,在附图中描绘的过程不一定要求示出的特定顺序或者连续顺序才能实现期望的结果。在某些实施方式中,多任务处理和并行处理也是可以的或者可能是有利的。

在本说明书的一个应用示例中,某个互联网服务提供商在其app中向用户提供多种业务服务,为了便于用户找到这些服务的入口,该app具有对服务的搜索功能。该互联网服务提供商利用损失函数模型生成纠错候选表,基于纠错候选表对用户输入搜索栏的错误查询项进行纠错。

生成纠错候选表的流程如图2所示:

步骤205,生成错误查询项集合和目标查询项集合。

统计用户在app中搜索的历史记录中的用户查询项和搜索结果,将命中的搜索结果少于第一阈值、出现频次最高的若干个用户查询项作为错误查询项,并将所有错误查询项组合为错误查询项集合;将命中的搜索结果多于第二阈值、出现频次最高的若干个用户查询项作为目标查询项,并将所有目标查询项组合为目标查询项集合。

步骤210,筛选用户会话,生成训练语料。

从该app的用户会话的历史记录中,筛选出符合预定会话筛选条件的若干个会话,来作为训练语料。预定会话筛选条件为:会话中的搜索次数达到预定搜索次数、会话持续时间不超过预定持续时间、并且会话中用户操作次数达到预定下阈值并且不超过预定上阈值。其中,预定搜索次数不小于(t+1)。

步骤215,利用训练语料自动生成训练样本。

对训练语料中的一个用户会话,如果会话中某次搜索的用户查询项属于错误查询项集合或目标查询项集合,并且该次搜索之后同一会话中还进行了至少t次搜索,则将该次搜索作为起点搜索,将起点搜索的用户查询项作为参照项。起点搜索之后的t次搜索中,如果某次搜索的用户查询项属于错误查询项集合或目标查询项集合,则将这次搜索的用户查询项作为该参照项的可选样本项。

将参照项、一个可选样本项、和一个负样本项组合生成一个训练样本。其中,可选样本项是该训练样本中的正样本;负样本项从属于错误查询项集合或目标查询项集合、但不属于可选正样本项的查询项中以采样的方式产生,采样基于这些查询项在训练语料中的出现频次。

训练语料中的一个用户会话可以生成0个到t个训练样本。

步骤220,通过更改错误查询项和目标查询项的向量,训练损失函数。

为每个错误查询项和每个目标查询项设置一个对应的向量,初始化这些向量。

对每个训练样本(qn,qnk+,qnk-),利用训练样本中qn、qnk+和qnk-的向量wn、wnk+和wnk-,根据式1计算损失函数l,并采用梯度下降的方法,通过修改向量的值,来优化损失函数l。

在训练完成后,可以得到每个错误查询项和每个目标查询项的向量值。

步骤225,确定每个错误查询项的纠错候选项。

对每个错误查询项,计算从其向量到每个目标查询项的向量的kl散度,将kl散度最小的m个目标查询项作为纠错候选项。将该错误查询项和m个纠错候选项的对应关系保存在纠错候选表中。

该互联网服务提供商将生成的纠错候选表保存在服务端。当用户在app上的搜索栏内进行搜索时,app将用户查询项上传到服务端。如果上传的用户查询项属于错误查询项集合,则服务端查找纠错候选表,按照上传的用户查询项对应的m个目标查询项进行搜索,并将搜索结果返回给app。

app将纠错后的搜索结果显示给用户。

本应用示例中纠错方法不限制用户在输入查询项时使用的输入法,对多种输入法的输入错误都能够得到很好的纠错效果;此外,错误查询项和纠错候选项的长度是否相同,也不会影响应用示例中纠错方法的纠错效果。

与上述流程实现对应,本说明书的实施例还提供了一种查询项的纠错装置。该装置可以通过软件实现,也可以通过硬件或者软硬件结合的方式实现。以软件实现为例,作为逻辑意义上的装置,是通过所在设备的cpu(centralprocessunit,中央处理器)将对应的计算机程序指令读取到内存中运行形成的。从硬件层面而言,除了图3所示的cpu、内存以及存储器之外,查询项的纠错装置所在的终端通常还包括用于进行无线信号收发的芯片等其他硬件,和/或用于实现网络通信功能的板卡等其他硬件。

图4所示为本说明书实施例提供的一种查询项的纠错装置,包括用户查询项接收单元、纠错候选项确定单元和纠错搜索单元,其中:用户查询项接收单元用于接收用户输入的用户查询项;纠错候选项确定单元用于当用户查询项属于错误查询项集合时,将目标查询项集合中与用户查询项的向量之间非对称距离最小的m个目标查询项作为纠错候选项;m为自然数;所述错误查询项和目标查询项的向量在采用训练样本训练损失函数后得到,所述损失函数根据训练样本中查询项的向量之间的非对称距离构建;纠错搜索单元用于将m个纠错候选项的搜索结果显示给用户。

一种实现方式中,所述训练样本包括参照项、正样本项和负样本项;训练样本通过以下方式生成:将满足预定会话筛选条件的一个用户会话中一次搜索的用户查询项作为一个训练样本的参照项;所述参照项属于错误查询项集合或目标查询项集合;将参照项的一个可选正样本项作为所述训练样本的正样本项;所述参照项的可选正样本项包括所述用户会话里时序在参照项所属搜索之后的t次搜索的用户查询项中、属于错误查询项集合或目标查询项集合的用户查询项;t为自然数;将属于错误查询项集合或目标查询项集合、并且不属于参照项的可选正样本项的一个查询项作为所述训练样本的负样本项。

上述实现方式中,在生成所述负样本时,在属于错误查询项集合或目标查询项集合、但不属于参照项的可选正样本项的查询项中,优先选择在满足预定会话筛选条件的会话中出现频次高的查询项作为负样本项。

上述实现方式中,所述预定会话筛选条件包括以下至少一项:会话中的搜索次数达到预定搜索次数、会话持续时间不超过预定持续时间、会话中用户操作次数达到预定下阈值并且不超过预定上阈值。

上述实现方式中,所述损失函数与从参照项到正样本项的非对称距离正相关、与从正样本项到参照项的非对称距离负相关、与从参照项到负样本项的非对称距离负相关。

可选的,所述损失函数通过以下方式训练:初始化错误查询项集合和目标查询项集合中每个查询项的向量;根据训练样本中查询项的向量,计算损失函数;通过修改查询项的向量,来优化损失函数。

可选的,所述向量之间的非对称距离包括:向量之间的相对熵kl散度。

可选的,所述用户查询项、目标查询项、错误查询项包括以下至少一种:字母、汉字、符号、笔划。

本说明书的实施例提供了一种计算机设备,该计算机设备包括存储器和处理器。其中,存储器上存储有能够由处理器运行的计算机程序;处理器在运行存储的计算机程序时,执行本说明书实施例中查询项的纠错方法的各个步骤。对查询项的纠错方法的各个步骤的详细描述请参见之前的内容,不再重复。

本说明书的实施例提供了一种计算机可读存储介质,该存储介质上存储有计算机程序,这些计算机程序在被处理器运行时,执行本说明书实施例中查询项的纠错方法的各个步骤。对查询项的纠错方法的各个步骤的详细描述请参见之前的内容,不再重复。

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

在一个典型的配置中,计算设备包括一个或多个处理器(cpu)、输入/输出接口、网络接口和内存。

内存可能包括计算机可读介质中的非永久性存储器,随机存取存储器(ram)和/或非易失性内存等形式,如只读存储器(rom)或闪存(flashram)。内存是计算机可读介质的示例。

计算机可读介质包括永久性和非永久性、可移动和非可移动媒体可以由任何方法或技术来实现信息存储。信息可以是计算机可读指令、数据结构、程序的模块或其他数据。计算机的存储介质的例子包括,但不限于相变内存(pram)、静态随机存取存储器(sram)、动态随机存取存储器(dram)、其他类型的随机存取存储器(ram)、只读存储器(rom)、电可擦除可编程只读存储器(eeprom)、快闪记忆体或其他内存技术、只读光盘只读存储器(cd-rom)、数字多功能光盘(dvd)或其他光学存储、磁盒式磁带,磁带磁磁盘存储或其他磁性存储设备或任何其他非传输介质,可用于存储可以被计算设备访问的信息。按照本文中的界定,计算机可读介质不包括暂存电脑可读媒体(transitorymedia),如调制的数据信号和载波。

还需要说明的是,术语“包括”、“包含”或者其任何其他变体意在涵盖非排他性的包含,从而使得包括一系列要素的过程、方法、商品或者设备不仅包括那些要素,而且还包括没有明确列出的其他要素,或者是还包括为这种过程、方法、商品或者设备所固有的要素。在没有更多限制的情况下,由语句“包括一个……”限定的要素,并不排除在包括所述要素的过程、方法、商品或者设备中还存在另外的相同要素。

本领域技术人员应明白,本说明书的实施例可提供为方法、系统或计算机程序产品。因此,本说明书的实施例可采用完全硬件实施例、完全软件实施例或结合软件和硬件方面的实施例的形式。而且,本说明书的实施例可采用在一个或多个其中包含有计算机可用程序代码的计算机可用存储介质(包括但不限于磁盘存储器、cd-rom、光学存储器等)上实施的计算机程序产品的形式。

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