搜索查询纠错系统及方法与流程

文档序号:11519749阅读:324来源:国知局
搜索查询纠错系统及方法与流程

本发明涉及互联网技术领域,特别是涉及一种搜索查询纠错系统及方法。



背景技术:

查询建议(querysuggestion)或称查询补全(queryautomaticcompletion,qac),是指用户输入不完整的查询(query)时,可自动建议完整query的功能,它是搜索系统的重要组成部分,一方面对于简化用户输入及提升用户体验有着重要帮助,另一方面,对于引导用户行为也有显著效果。

查询建议系统,其本质是建立用户的不完整query或前缀(本发明统称之为:待建议词,token)和完整query之间的关联,这种关联一般通过离线的方式实现:对每个query,提取其所有可能的token,直接建立两者的关联;而token对于不同query的分值,则由query的热度和token与query的匹配度等指标计算得出。在这种框架下,影响查询建议系统性能的主要因素就是query数据源的质量,而作为query重要来源的用户搜索日志,其中难免会包含错误的输入,这就导致查询建议系统中,往往出现大量错误建议结果。进一步地,这类错误的搜索结果,又错误地引导了用户的输入行为,导致用户搜索行为中错误的比例大量增加,循环往复,会对搜索系统会产生极大的伤害。



技术实现要素:

为了提高搜索准确度和效率,本发明实施例提供一种搜索查询纠错系统及方法。

根据本发明的一个方面,提供一种搜索查询纠错系统,包括:纠错概率计算装置,用于获取“错误查询词-正确查询词”对,并计算正确查询词被错写成错误查询词的概率作为纠错概率,其中,错误查询词中包含一个或多个待建议词;查询强度计算装置,用于计算正确查询词被搜索的概率作为查询强度;生成概率计算装置,用于生成“正确查询词-待建议词”对,并计算所述“正确查询词-待建议词”对中正确查询词对应的错误查询词被生成待建议词的概率作为生成概率;关联程度确定装置,用于根据所述纠错概率、所述查询强度和所述生成概率,计算待建议词与正确查询词的关联程度。

优选的,所述纠错概率计算装置包括:纠错对获取单元,用于获取“错误查询词-正确查询词”对,其中,错误查询词中包括一个或多个待建议词;纠错概率计算单元,用于根据错误查询词与正确查询词的相似度,计算正确查询词被错写成错误查询词的概率作为纠错概率。

优选的,所述纠错对获取单元具体用于,从用户日志中获取到所述“错误查询词-正确查询词”对,其中,通过维护查询词典,将所述用户日志中的最新的“错误查询词-正确查询词”对添加到所述查询词典中;

优选的,所述纠错对获取单元具体用于,从所述搜索查询纠错系统的历史数据中获取到所述“错误查询词-正确查询词”对,其中,将所述搜索查询纠错系统的输入作为错误查询词,将所述搜索查询纠错系统的输出作为正确查询词。

优选的,所述查询强度计算装置具体用于,根据查询词的热度和/或点击率,计算正确查询词被用户搜索的概率作为查询强度。

优选的,还包括:查询提取装置,用于从用户历史搜索记录中,提取出正确查询词,并将提取出的正确查询词提供给所述查询强度计算装置。

优选的,所述生成概率计算装置包括:“正确查询词-待建议词”对生成单元,用于根据所述纠错概率和所述查询强度,确定“正确查询词-待建议词”对;生成概率计算单元,用于根据“正确查询词-待建议词”对,计算所述“正确查询词-待建议词”对中正确查询词对应的错误查询词被生成待建议词的概率作为生成概率。

优选的,所述生成概率计算单元还用于:确定待建议词的使用频率;其中,待建议词的使用频率越低,生成概率越高。

优选的,所述关联程度确定装置采用如下公式计算待建议词与正确查询词的关联程度:

其中,p(real|token)表示待建议词与正确查询词的关联程度,p(real)表示所述查询强度,p(wrong|real)表示所述纠错概率,p(token|wrong,real)表示所述生成概率。

优选的,所述纠错概率计算装置具体还用于,对所述错误查询词进行语义/词义分析,通过对错误查询词提取前缀及非前缀的方式,获取到一个或多个待建议词。

根据本发明的一个方面,提供一种搜索查询纠错方法,包括:获取用户输入的查询词;将所述用户输入的查询词作为待建议词输入到前述的系统,得到待建议词与正确查询词的关联程度;根据待建议词与正确查询词的关联程度,向用户展示正确查询词。

优选的,所述正确查询词为多个,所述方法还包括:根据待建议词与各个正确查询词的关联程度从高至低,向用户展示各个正确查询词。

可见,本发明实施例提供的搜索查询纠错系统中,通过计算正确查询词被错写成错误查询词的概率作为纠错概率、计算正确查询词被搜索的概率作为查询强度、计算错误查询词被生成待建议词的概率作为生成概率,并最终根据纠错概率、查询强度和生成概率,计算待建议词与正确查询词的关联程度。由于将普通的query到token的两层生成模型扩展为一个三层模型,不但扩大了query召回率,而且增加了模型的表达能力,使其可以处理错误token;使用“正确query”-“错误query”-“token”的结构,而非“错误token”-“正确token”-“正确query”的结果,可以有效避免无意义的召回结果,而且减少了人工假设,可以得到更有意义的结果。可见,本发明可提高搜索的精度和效率。

附图说明

图1是本发明实施例中“正确查询词-错误查询词-待建议词”的关系示意图;

图2是本发明实施例提供的一种搜索查询纠错系统结构示意图;

图3是本发明实施例提供的一种搜索查询纠错系统的执行示意图;

图4是本发明实施例提供的一种搜索查询纠错的方法流程图。

具体实施方式

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

基于现有技术的问题,本发明提出一种可以主动纠错的搜索查询纠错系统。例如,在用户输入“怏东”等错误token时,仍可建议“快乐大本营”、“快乐东西”等正确结果。

本发明发明人经过分析,发现针对现有技术要解决的主要问题是对token纠错,即输入错误的token,仍可建议正确的query。这其中,又有两个需要解决的问题要点:

1、如何生成错误token和正确query之间的关系;

2、对于可纠可不纠的歧义token(如“半月”可能是“芈月传”的错误token,也可能是“半月朋友”的正确token),应该采用何种打分策略,使得纠错后对应的query和不纠错对应的query有合适的排序。

其中,第二个问题尤其重要,如果过分偏重不纠错,则效果不明显,意义不大;若过分偏重纠错,则可能会召回很多无关的结果。因此本发明提出一种统一的对token的打分框架(不区分正确token和错误token),以涵盖纠错和不纠错两种模式,使得同一token召回的query可以在同一量纲上进行合理的比较。

参见图1,是本发明实施例中“正确查询词-错误查询词-待建议词”的关系示意图。

其中:

realquery:正确查询词,下文公式中用real表示;

wrongquery:错误查询词(用户实际输入的错误查询词),下文公式中用wrong表示;

token:待建议词,下文公式中用token表示。

对于每个realquery,有m种可能呈现出来的输入方式(wrong_query),每个wrongquery可能产生多种不同的待建议词(token),wrongquery生成token的方式可以通过简单的提取子串得到,例如,通过提取前缀或非前缀的方式得到token,其中,前缀是指从第一个字符开始构成的词,非前缀是指从非第一个字符开始构成的词,例如,对于“块乐大本营”这个wrongquery,可能提取的token包括:块、块乐、大本营。

在上述图1的框架下,搜索建议的问题转换为预测在给定token的情况下,建议real_query的概率,即

p(real|token)

根据贝叶斯公式,有:

一方面,对于同一个token,p(token)的值均相同,因此分母可以舍弃,另一方面,根据全概率公式,可以进一步推导出:

在这样的问题描述框架下,查询建议的问题变成估计上式中的三个概率。其中,p(real)为正确query被用户搜索的概率,称为查询强度;p(wrong|real)为正确realquery被错写为wrongquery的概率,称为纠错概率;p(token|wrong,real)为某一特定wrongquery生成特定token的概率,称为生成概率。

基于以上分析,参见图2,是本发明实施例提供的一种搜索查询纠错系统结构示意图。该系统包括纠错概率计算装置201、查询强度计算装置202、生成概率计算装置203和关联程度确定装置204。

纠错概率计算装置201,用于获取“错误查询词-正确查询词”对,并计算正确查询词被错写成错误查询词的概率作为纠错概率,其中,错误查询词中包含一个或多个待建议词;

查询强度计算装置202,用于计算正确查询词被搜索的概率作为查询强度;

生成概率计算装置203,用于生成“正确查询词-待建议词”对,并计算“正确查询词-待建议词”对中正确查询词对应的错误查询词被生成待建议词的概率作为生成概率;

其中,通过纠错概率计算装置201所获取的“错误查询词-正确查询词”对,可查询到正确查询词对应的错误查询词。错误查询词一般是根据历史搜索而记录下来的、包含一个或多个待建议词的词,例如,对于待建议词为“怏东”,错误查询词可能是“怏东大本营”等。

关联程度确定装置204,用于根据纠错概率、查询强度和生成概率,计算待建议词与正确查询词的关联程度。

在一种实现方式中,纠错概率计算装置201可进一步包括:

纠错对获取单元2011,用于获取“错误查询词-正确查询词”对,其中,错误查询词中包括一个或多个待建议词;

纠错概率计算单元2012,用于根据错误查询词与正确查询词的相似度,计算正确查询词被错写成错误查询词的概率作为纠错概率。

在一种实现方式中,纠错对获取单元2011具体用于,从用户日志中获取到“错误查询词-正确查询词”对,其中,通过维护查询词典,将用户日志中的最新的“错误查询词-正确查询词”对添加到所述查询词典中;

在一种实现方式中,纠错对获取单元2011具体用于,从搜索查询纠错系统的历史数据中获取到“错误查询词-正确查询词”对,其中,将搜索查询纠错系统的历史输入作为错误查询词,将搜索查询纠错系统的历史输出作为正确查询词。

在一种实现方式中,查询强度计算装置202具体用于,根据查询词的热度和/或点击率,计算正确查询词被用户搜索的概率作为查询强度。

在一种实现方式中,该系统还包括:

查询提取装置200,用于从用户历史搜索记录(例如前一天用户搜索记录)中,提取中正确查询词,并将提取出的正确查询词提供给查询强度计算装置202。

在一种实现方式中,生成概率计算装置203包括:

“正确查询词-待建议词”对生成单元2031,用于根据所述纠错概率和所述查询强度,确定“正确查询词-待建议词”对;

生成概率计算单元2032,用于根据“正确查询词-待建议词”对,计算所述“正确查询词-待建议词”对中正确查询词对应的错误查询词被生成待建议词的概率作为生成概率。

在一种实现方式中,生成概率计算单元2031还用于:确定待建议词的使用频率;其中:待建议词的使用频率越低,生成概率越高。这里可以理解的是,可以设置生成概率计算单元2032计算生成概率的策略,即,在计算生成概率时考虑待建议词的使用频率,如果待建议词的使用频率越低,则计算得到的生成概率越高。具体的上述策略可以在计算生成概率的算法上实现。

在一种实现方式中,关联程度确定装置采用如下公式计算待建议词与正确查询词的关联程度:

其中,p(real|token)表示待建议词与正确查询词的关联程度,p(real)表示所述查询强度,p(wrong|real)表示所述纠错概率,p(token|wrong,real)表示所述生成概率。

在一种实现方式中,纠错概率确定装置201具体还用于,对错误查询词进行语义/词义分析,通过对错误查询词提取前缀及非前缀的方式,获取到一个或多个待建议词。其中,语义/词义分析是对文本信息的含义判断过程,例如,基于文字或词语的构成,将一个文本信息拆分成多个字或词语。本发明中,在语义/词义分析的基础上,将文本拆分为多个字或词,然后基于提取前缀或非前缀的方式,获取到待建议词。前缀是指从第一个字符开始构成的词,非前缀是指从非第一个字符开始构成的词。例如,对于“块乐大本营”这个wrongquery,可能提取的token包括:块、块乐、大本营,其中,“块”和“块乐”是提取前缀的方式获取的待建议词,“大本营”是提取非前缀的方式获取的待建议词。

下面以具体执行顺序的角度,对本发明实施例的搜索查询系统进行介绍。

参见图3,是本发明实施例提供的一种搜索查询纠错系统的执行示意图。

上述图3所示的系统执行过程是:

s1:构建纠错对,并计算纠错概率;

s2:通过历史搜索记录提取出正确查询词,并计算出查询强度;

s3:生成“正确查询词-待建议词”对,并计算出生成概率;

s4:计算出待建议词与正确查询词的关联程度。

具体实现中,可使用c++语言实现建议词的纠错。下面就重点的几个流程做详细说明。

1、构造query纠错对

例如,query纠错对的来源有两部分,均依赖于搜索线上纠错系统,一是从用户日志中挖掘的历史纠错对,二是历史(例如,前一天)query被纠错系统纠错的结果。

对于第一部分数据,可通过维护一个词典,每天固定向其中加入一些典型的纠错query对;可以记住一些“不再流行”的错误输入模式。

对于第二部分数据,在处理作为建议系统数据源的query时,先使其经过线上的纠错系统,并将纠错的输入和输出作为对记录下来,这样便可以覆盖纠错系统可以处理的大部分错误query。

2、计算query强度

使用根据热度和点击率计算。

例如热度:

点击率:

其中,t为某一天,δt为t到今天的天数差。

最终:

p(real)=β·clickscore(real)+(1-β)queryscore(real)。

其中,β取值为0.1。因与token无关,不需要归一化到0-1之间。

3、计算纠错概率

对于p(wrong|real),从搜索日志中统计是困难的,因为线上的纠错系统无法覆盖所有的错误输入。因此可使用两个query之间的相似度sim(wrong,real)来模拟这个值:p(wrong|real)~sim(wrong,real)。

具体的,sim(wrong,real)可通过编辑距离计算:

sim(wrong,real)=e-edit_distance(wrong,real)

因与token无关,不需要归一化到0-1之间。

4、生成概率计算

对于p(token|wrong,real),一个基本原则是,越常用的token越不应该被纠错。因此,可选择下面的函数来模拟生成概率:

p(token|wrong,real)=e-α·f(token)

其中,f(token)是表征token常用性的函数,使用该token在query日志中出现的次数来表示,α取值为0.01。

可见,本发明实施例提供的搜索查询纠错系统中,通过计算正确查询词被错写成错误查询词的概率作为纠错概率、计算正确查询词被搜索的概率作为查询强度、计算错误查询词被生成待建议词的概率作为生成概率,并最终根据纠错概率、查询强度和生成概率,计算待建议词与正确查询词的关联程度。由于将普通的query到token的两层生成模型扩展为一个三层模型,不但扩大了query召回率,而且增加了模型的表达能力,使其可以处理错误token;使用“正确query”-“错误query”-“token”的结构,而非“错误token”-“正确token”-“正确query”的结果,可以有效避免无意义的召回结果,而且减少了人工假设,可以得到更有意义的结果;提出纠错/不纠错打分的统一模型,使得对同一token召回的query可以有良好的排序。

参见图4,为本发明实施例提供的一种方法流程图,该方法包括:

s401:获取用户输入的查询词;

s402:将用户输入的查询词作为待建议词输入本发明提供的搜索查询纠错系统中,得到待建议词与正确查询词的关联程度;

s403:根据待建议词与正确查询词的关联程度,向用户展示正确查询词。

其中,对于本发明提供的搜索查询纠错系统,请参见前述图1-图3及相关描述。

优选的,一个待建议词可对应多个正确查询词,因此,可以根据待建议词与各个正确查询词的关联程度从高至低,向用户展示各个正确查询词,即,优先向用户展示与待建议词关联性最高的正确查询词。

需要说明的是,对于方法实施例,为了简单描述,故将其都表述为一系列的动作组合,但是本领域技术人员应该知悉,本发明实施例并不受所描述的动作顺序的限制,因为依据本发明实施例,某些步骤可以采用其他顺序或者同时进行。其次,本领域技术人员也应该知悉,说明书中所描述的实施例均属于优选实施例,所涉及的动作并不一定是本发明实施例所必须的。

本说明书中的各个实施例均采用递进的方式描述,每个实施例重点说明的都是与其他实施例的不同之处,各个实施例之间相同相似的部分互相参见即可。

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

本发明实施例是参照根据本发明实施例的方法、终端设备(系统)、和计算机程序产品的流程图和/或方框图来描述的。应理解可由计算机程序指令实现流程图和/或方框图中的每一流程和/或方框、以及流程图和/或方框图中的流程和/或方框的结合。可提供这些计算机程序指令到通用计算机、专用计算机、嵌入式处理机或其他可编程数据处理终端设备的处理器以产生一个机器,使得通过计算机或其他可编程数据处理终端设备的处理器执行的指令产生用于实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能的装置。

这些计算机程序指令也可存储在能引导计算机或其他可编程数据处理终端设备以特定方式工作的计算机可读存储器中,使得存储在该计算机可读存储器中的指令产生包括指令装置的制造品,该指令装置实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能。

这些计算机程序指令也可装载到计算机或其他可编程数据处理终端设备上,使得在计算机或其他可编程终端设备上执行一系列操作步骤以产生计算机实现的处理,从而在计算机或其他可编程终端设备上执行的指令提供用于实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能的步骤。

尽管已描述了本发明实施例的优选实施例,但本领域内的技术人员一旦得知了基本创造性概念,则可对这些实施例做出另外的变更和修改。所以,所附权利要求意欲解释为包括优选实施例以及落入本发明实施例范围的所有变更和修改。

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

以上对本发明所提供的一种关系型数据库的调度方法及系统,进行了详细介绍,本文中应用了具体个例对本发明的原理及实施方式进行了阐述,以上实施例的说明只是用于帮助理解本发明的方法及其核心思想;同时,对于本领域的一般技术人员,依据本发明的思想,在具体实施方式及应用范围上均会有改变之处,综上所述,本说明书内容不应理解为对本发明的限制。

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