一种搜索方法及装置,电子设备与流程

文档序号:15686619发布日期:2018-10-16 21:07阅读:331来源:国知局

本申请涉及计算机技术领域,特别是涉及一种搜索方法及装置,电子设备。



背景技术:

随着互联网技术的发展,互联网上的信息呈爆炸式的增长,越来越多的用户通过互联网的信息搜索沟通从海量信息中获取自己关注的内容。而现有技术中,基于用户输入的文本进行信息搜索的搜索引擎,通常是基于文本相关性执行搜索服务。搜索引擎发展伊始,网页也是传统互联网的主要信息载体,因而,现有技术中的搜索方法主要针对网页搜索,基本能够获得用户关注的内容。然而,随着移动互联网的发展,o2o(online-to-offline)平台提供的本地生活化服务,极大的方便了人们的生活,在o2o平台上的搜索需求也逐渐增多。与网页不同,o2o平台的信息描述载体往往都具有多个文本索引域,用于从不同的角度对平台服务进行具体的描述。比如:我们描述一个提供具体餐饮服务商家poi(pointofinterest),可能会从商家名称、商家注册公司名称、品牌名称、商家所处商圈、商家地址、商家主营菜品、商家营业时间等等角度来进行描述。通常,o2o平台上的描述性文本索引域有时多达五十个以上,并且,这些文本索引域描述的信息往往并不相关,利用传统网页搜索方法对所有文本索引域进行信息检索很难获得全面的、准确的用户关注的内容。

可见,现有技术中的搜索方法至少存在以下缺陷:对于具有多文本索引域的信息,无法获得准确的搜索结果的问题。



技术实现要素:

本申请提供一种搜索方法,解决现有技术中对于具有多文本索引域的信息,无法获得准确的搜索结果的问题。

为了解决上述问题,第一方面,本申请实施例提供了一种搜索方法,包括:

确定与查询文本匹配的至少一个第一搜索策略,其中,每个所述第一搜索策略对应至少一个文本索引域及所述文本索引域匹配的搜索权重;

基于每个所述第一搜索策略,在其对应的每个所述文本索引域分别执行所述查询文本的搜索操作;

将上述所有搜索操作的搜索结果进行归并输出。

第二方面,本申请实施例提供了一种搜索装置,包括:

第一搜索策略确定模块,用于确定与查询文本匹配的至少一个第一搜索策略,其中,每个所述第一搜索策略对应至少一个文本索引域及所述文本索引域匹配的搜索权重;

搜索模块,用于基于所述第一搜索策略确定模块确定的每个所述第一搜索策略,在其对应的每个所述文本索引域分别执行所述查询文本的搜索操作;

搜索结果输出模块,用于将上述所有搜索操作的搜索结果进行归并输出。

第三方面,本申请实施例提供了一种电子设备,包括存储器、处理器及存储在所述存储器上并可在处理器上运行的计算机程序,所述处理器执行所述计算机程序时实现本申请实施例公开的所述的搜索方法。

第四方面,本申请实施例提供了一种计算机可读存储介质,其上存储有计算机程序,该程序被处理器执行时本申请实施例公开的所述搜索方法的步骤。

本申请实施例公开的搜索方法,通过确定与查询文本匹配的至少一个第一搜索策略,其中,每个所述第一搜索策略对应至少一个文本索引域以及所述文本索引域的匹配的搜索权重;然后,基于每个所述第一搜索策略,在其对应的每个所述文本索引域分别执行所述查询文本的搜索操作;最后,将上述所有搜索操作的搜索结果进行归并输出,解决了现有技术中对于具有多文本索引域的信息,无法获得准确的搜索结果的问题。通过在与查询文本关联的文本索引域执行搜索操作,使得同一查询文本仅在其对应的文本索引域进行检索,不需要检索所有的文本索引域,从而避免了在不相关的文本索引域字面命中带来误召回,有效提升了结果的相关性;并且通过对不同文本域索引匹配相应的搜索权重,优化了搜索结果的排位,有效提高了搜索结果的准确率。

附图说明

为了更清楚地说明本申请实施例的技术方案,下面将对实施例或现有技术描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本申请的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动性的前提下,还可以根据这些附图获得其他的附图。

图1是本申请实施例一的搜索方法的流程图;

图2是本申请实施例二的搜索方法的流程图;

图3是本申请实施例三的搜索方法的流程图;

图4是本申请实施例四的搜索装置的结构图之一;

图5是本申请实施例四的搜索装置的结构图之二;

图6是本申请实施例四的搜索装置的结构图之三;

图7是本申请实施例四的搜索装置的结构图之四。

具体实施方式

下面将结合本申请实施例中的附图,对本申请实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例是本申请一部分实施例,而不是全部的实施例。基于本申请中的实施例,本领域普通技术人员在没有作出创造性劳动前提下所获得的所有其他实施例,都属于本申请保护的范围。

实施例一

本申请公开的一种搜索方法,如图1所示,该方法包括:步骤100至步骤120。

本申请的搜索方法包括两类搜索策略,即:第一搜索策略、第二搜索策略。其中,第一搜索策略仅针对搜索物料的部分文本索引域执行搜索操作,第二搜索策略针对搜索物料的全部文本索引域执行搜索操作。

步骤100,确定与查询文本匹配的至少一个第一搜索策略。

其中,每个所述第一搜索策略对应至少一个文本索引域,以及所述文本索引域匹配的搜索权重。

搜索策略用于限定所查询的检索物料的文本索引域以及所述文本索引域匹配的相应搜索权重。具体实施时,每个所述搜索策略对应至少一个文本索引域,每个所述文本索引域具有相同或不同的权重。每个所述搜索策略对应的文本索引域各自对应相同或不同的查询文本。文本索引域是用来建立索引的文本索引域,如倒排索引中,用来建立倒排索引的文本索引域,文本索引域的内容通常是有意义的文本,用来描述搜索物料的某一方面。以搜索物料为描述一个提供具体餐饮服务商家为例,搜索物料的兴趣点poi(pointofinterest),可能会有商家名称、商家注册公司名称、品牌名称、商家所处商圈、商家地址、商家主营菜品、商家营业时间等等字段,这些文本字段即是文本索引域。如搜索物料:金百万位于望京花园的分店,该搜索物料的poi_name为:金百万烤鸭店(望京花园点),其中,poi_name是系统中文本索引域的名称(如:商家名称),而后面的文本即是该文本索引域的内容,将被用来建立倒排索引。本发明的实施例中,所述文本索引域用于表示检索物料的字段,获取待搜索的查询文本之后,首先确定所述查询文本匹配的搜索策略。具体实施时,可以预先设置多个搜索策略,并设置与每个搜索策略对应的查询文本。例如,设置搜索策略包括:商家策略、地标策略、菜名策略等;然后,分别设置每个搜索策略对应的查询文本,如设置商家策略对应的查询文本包括:金百万、肯德基、全聚德等。

具体实施时,所述待搜索的查询文本可以是用户在客户端的搜索栏中输入的查询文本,也可以是客户端根据用户的历史行为日志自动生成的查询文本。例如,客户端检测到某一女性用户进入化妆品销售页面后,根据用户的年龄信息给用户推动相关的搜索结果,此时,客户端首先根据用户的信息生成查询文本(如:中年女性),然后,调用搜索引擎对自动生成的查询文本执行搜索操作。

当通过人工预先建立的查询文本与搜索策略的对应关系确定所述查询文本匹配的至少一个搜索策略时,首先需要建立查询文本与搜索策略的对应关系。如:设置查询文本“肯德基”、“金百万”对应商家策略。在设置查询文本与搜索策略的对应关系时,同时设置每个检索策略包含的文本索引域,以及每个文本索引域的搜索权重。如设置商家策略中包含的文本索引域有:商家名称、品牌名称、商家注册公司名称等。每个文本索引域的搜索权重可以为:商家名称的搜索权重为50%;品牌名称的搜索权重为30%;商家注册公司名称权重为20%。搜索策略包含的文本索引域,以及每个文本索引域的权重可以根据先验知识设置。

具体实施时,确定与查询文本匹配的至少一个第一搜索策略包括:根据预先设置的第一搜索策略和查询文本的对应关系,确定与查询文本匹配的至少一个第一搜索策略;或者,通过预先训练的每个第一搜索策略的分类器对查询文本分别进行识别,确定与所述查询文本匹配的至少一个第一搜索策略。其中,所述搜索策略可以是人工预先建立的搜索策略,也可以是通过根据用户历史行为训练的得到的识别模型识别确定的搜索策略。

当通过预先训练的分类器确定与查询文本匹配的至少一个搜索策略时,首先根据搜索日志训练分类器。具体实施时,获取一段时间内的搜索日志,根据搜索日志对应的查询文本、搜索日志对应的文本索引域、与查询文本匹配的文本索引域等信息,对获取的搜索日志进行聚类,以训练识别搜索策略的分类器。基于搜索日志训练得到的分类器可以确定与所述查询文本匹配的至少一个搜索策略。

步骤110,基于每个所述第一搜索策略,在其对应的每个所述文本索引域分别执行所述查询文本的搜索操作。

具体实施时,一个查询文本可能对应多个搜索策略,每个搜索策略中有可能包括多个文本索引域。在确定了查询文本匹配的文本索引域之后,分别基于每个文本索引域对所述查询文本执行搜索操作。例如,根据查询文本“金百万”确定的搜索策略包括:商家策略、地标策略;在商家策略中,与查询文本“金百万”匹配的文本索引域包括:商家名称、品牌名称;在地标策略中,与查询文本“金百万”匹配的文本索引域包括:建筑物。则,分别基于商家名称、品牌名称和建筑物三个文本索引域,在搜索物料中对查询文本“金百万”执行搜索操作,并分别得到三个搜索结果列表。具体实施时,基于不同的文本索引域在搜索物料中对查询文本执行搜索操作时,需要结合每个文本索引域的搜索权重计算查询文本与搜索物料的相关性。

具体实施时,为了避免遗漏检索结果,通常还需要基于第二搜索策略执行搜索操作,所述第二搜索策略对应所有文本索引域,在所有文本索引域内执行所述查询文本的搜索操作,将得到的检索结果作为基于第一搜索策略的每个所述文本索引域分别执行所述查询文本的搜索操作的检索结果的补充。

步骤120,将上述所有搜索操作的搜索结果进行归并输出。

将所有所述搜索操作的搜索进行归并输出时,首先需要对搜索结果进行排序,然后过滤掉排在后面的重复的搜索结果,将剩余的搜索结果输出。进行搜索结果排序时,可以将基于多个搜索策略执行搜索操作得到的搜索结果,按照人工设定的搜索策略优先级分块排位;或者,按照每个搜索策略的判别得分分块排位;再或者,按照搜索结果的评价得分对所有搜索策略得到的搜索结果进行混合排序。如果执行搜索操作时,包括基于第二搜索策略执行所述查询文本的搜索操作,则将基于第二搜索策略执行搜索操作得到的检索结果排在最后。

本申请实施例公开的搜索方法,通过确定与查询文本匹配的至少一个第一搜索策略,其中,每个所述第一搜索策略对应至少一个文本索引域以及所述文本索引域匹配的搜索权重;然后,基于每个所述第一搜索策略,在其对应的每个所述文本索引域分别执行所述查询文本的搜索操作;最后,将上述所有搜索操作的搜索结果进行归并输出,解决了现有技术中对于具有多文本索引域的信息,无法获得准确的搜索结果的问题。通过在与查询文本关联的文本索引域执行搜索操作,使得同一查询文本仅在其对应的文本索引域进行检索,不需要检索所有的文本索引域,从而避免了在不相关的文本索引域字面命中带来误召回,有效提升了结果的相关性;并且通过对不同文本索引域匹配相应的搜索权重,优化了搜索结果的排位,有效提高了搜索结果的准确率。

实施例二

本实施例公开的一种搜索方法,如图2所示,该方法包括:步骤200至步骤250。

步骤200,基于搜索日志训练第一搜索策略的分类器。

当通过预先训练的分类器确定与查询文本匹配的至少一个搜索策略时,首先根据搜索日志训练分类器。所述基于搜索日志训练第一搜索策略的分类器,包括:对搜索日志进行聚类,生成搜索策略空间定义,所述搜索策略空间定义用于表示不同第一搜索策略和查询文本的映射关系;分别获取每个所述第一搜索策略对应的搜索日志;基于每个所述第一搜索策略对应的搜索日志,分别训练相应的第一搜索策略的分类器。对搜索日志进行聚类,生成搜索策略空间定义,包括:将根据每条搜索日志提取的查询文本在文本检索域的命中得分作为特征,对搜索日志进行聚类,获得搜索类别,即查询文本类别;其中,每一个查询文本类别对应一个检索策略。

在没有训练得到第一搜索策略的分类器时,首先获取基于第二搜索策略执行搜索操作的搜索日志。为了训练得到的分类器更准确,并且尽量减少训练的运算量,优选的,选择下单行为的搜索日志进行分类器训练。搜索服务器记录的搜索日志在不同的系统中会因为不同的实现方式而有些差异,通常搜索日志包括:搜索时间、查询文本、匹配文本、文本索引域、展现结果列表、点击或下单等行为标识等。如果下单行为的搜索日志相对于所有搜索日志占比太低,则选择点击日志和下单日志训练第一搜索策略的分类器。当选择点击日志和下单日志训练第一搜索策略的分类器时,点击日志的行为类型权重小于下单日志的行为类型权重。

对于获取的搜索日志,分别计算每一个文本索引域的命中得分。具体实施时,可以采用以下公式计算每个文本索引域的命中得分scorei:

其中,matchi表示对搜索文本执行搜索操作时所述搜索文本在第i个文本索引域匹配的文本;fieldi表示第i个文本索引域的内容,len(fieldi)表示第i个文本索引域的文本长度,n为平滑因子,公式1中分母表示取文本索引域的文本长度和n中较小者。n即是该分母的上限,用于使得整个score不至于太小。typej表示当前搜索日志对应的用户行为类型权重,例如点击行为的行为类型权重type=0.8;下单行为的行为类型权重type=1。由公式1可知len(matchi)<=len(fieldi)。可见,每一条发生了点击或者下单行为的日志,都可以得到至少一个非零的值,对应在发生匹配的第i个文本域。具体实施时,n可以根据搜索服务的功能设置为一个自然数,如30。

具体实施时,初始化文本索引域向量,向量维数等于搜索日志中文本索引域的数量。以搜索日志中包括m个文本索引域为例,则文本索引域向量为一个m维的向量。对于每一个文本索引域,分别通过公式1计算文本索引域的命中得分scorei,每一搜索日志都可以得到一个文本索引域向量,则可以得到类似于:[0,0,1.0,0.8,0...0];[0,0,0.9,0.9,0...0]的多个m维向量。m是文本索引域的个数,而向量的第i维数值对应着第i个文本索引域的命中得分。

根据下单行为日志或下单行为日志和点击行为日志得到多个m维非零向量之后,通过对得到的多个m维向量进行聚类,即可以得出的用户对每个文本索引域需求分布。对获取的多个m维向量进行聚类的过程即是发现检索策略的过程。通过对搜索日志进行聚类,可以将在索引文本域上匹配情况相似的一类搜索聚到同一个类别中,该类别即对应着一类查询文本的集合。即通过对搜索日志进行聚类,可以建立每个第一搜索策略和查询文本的映射关系。具体实施时,可以采用n维空间的数值聚类方法对获得的m维向量进行聚类,如dbscan聚类算法、k-means聚类算法,本发明对采用的聚类算法不作限定。

经过聚类计算,聚类的中心点即可认为是第一搜索策略的空间定义,所述第一搜索策略的空间定义用于表示不同第一搜索策略和查询文本的映射关系。该类别的查询文本对应该检索策略。例如:当用户输入“金百万”,“海底捞”,“九头鹰酒家”等查询文本时,通常是搜索对应的商家,按照前述的聚类方法,根据搜索日志进行聚类后,查询文本“金百万”,“海底捞”,“九头鹰酒家”将聚成一类。聚类的过程实际是通过对杂乱的搜索结果做监督学习,学习到某一类查询文本在某些文本索引域上搜索要比搜索所有文本域更高效的过程。通常聚类结果不宜太细,控制在百以内为佳。采用自动聚类的方法,无需关注检索策略想要表达的具体意义,可以无需预先定义检索策略,就可以确定与检索策略对应的查询文本,并进一步确定该检索策略对应的文本检索域。该方法有效的减少了人工制定策略出错的可能性,并能识别出潜在的、难以发现的数据规律。

然后,分别基于每一类别的查询文本训练相应的搜索策略分类器。

具体实施时,可以使用每个类别的查询文本作为正样本,并采集一定数量的负样本,将正样本和负样本作为训练样本数据做监督学习,训练搜索策略分类器。每一个查询文本类别对应一种检索策略。具体实施时,多分类器的常见实现有两种方式:一种是一个多分类器;另一种是多个二分类器拟合,本实施例中使用多个二分类器拟合。分类模型有多重选择,本实施例中以使用svm分类器对训练样本数据进行监督学习为例,说明分类器的训练过程。首先,从训练样本数据中提取样本特征。所述提取的样本特征至少包括:查询文本的文本特征,即查询文本包含的重要文字,如查询文本、查询文本的分词后得到的分词组合。具体实施时,从训练样本数据中提取样本特征还可以包括:querylength,prefix,suffix,pos+unigram,pos及其他组合特征。其中,querylength为查询文本长度、prefix,suffix分别为查询文本的前缀和后缀,unigram,bigram为查询文本的文本特征,pos+unigram为查询文本的文本特征的位置。

具体实施时,将上述提取的样本特征列表利用svm分类器进行训练,得到第一搜索策略分的类器。基于样本特征列表训练分类器的过程为现有技术,此处不再赘述。

经过样本训练,对于每一个查询文本集合,可以得到相应的第一搜索策略的分类器,用于后续对获取的查询文本进行识别。

步骤210,确定每个所述第一搜索策略对应的文本索引域,及每个文本索引域匹配的搜索权重。

具体实施时,确定每个所述第一搜索策略对应的文本索引域,及每个文本索引域匹配的相应搜索权重的方式有两种。第一种,如果第一搜索策略由人工预先设定,第一搜索策略中的文本索引域和查询文本的对应关系也通过人工预先设定,则每个第一搜索策略对应的文本索引域匹配的搜索权重也可以通过人工预先设定。第一搜索策略、每个第一搜索策略对应的文本索引域以及各文本索引域匹配的搜索权重,可以根据经验预先人工设置在程序代码中,也可以通过提供用户界面,由用户根据需要设置,此处不再赘述。第二种,根据搜索日志设置每个第一搜索策略的文本索引域,以及每个文本索引域匹配的搜索权重的具体方案。

本申请实施例重点介绍第二种方式。根据搜索日志设置每个第一搜索策略的文本索引域,以及每个文本索引域匹配的搜索权重的具体方案包括:对于每个第一搜索策略,获取基于该第一搜索策略对应的查询文本执行所有文本索引域的搜索操作的搜索日志;根据所述搜索日志中查询文本在各文本索引域的命中得分,迭代计算各文本索引域的平均权重;根据各文本索引域的平均权重确定该第一搜索策略匹配的文本索引域以及各文本索引域匹配的搜索权重。其中,所述搜索日志可以为采用第二搜索策略执行所有文本索引域的搜索操作时得到的搜索日志。例如,通过对聚类获得第一搜索策略的空间定义时采用的搜索日志进行标引,确定每个所述第一搜索策略对应的搜索日志。

所述搜索日志也可以为分别根据每个第一搜索策略,采用初始文本索引域的搜索权重执行所有文本索引域的搜索操作时得到的搜索日志。以搜索物料包括m个文本索引域为例,假设每个第一搜索策略都对应所述m个文本索引域,并且每个所述文本索引域匹配的搜索权重为1/m。然后运行所述假设的第一搜索策略,对于查询文本按照假设的第一搜索策略执行搜索操作,并获取一段时间的所述搜索操作的搜索日志。

通过搜索服务器,可以获得以每一个第一搜索策略获得的搜索日志、每条搜索日志对应的查询文本、命中文本、文本索引域,以及搜索日志的行为类型。通常,命中文本即是查询文本在文本索引域上的匹配文本。在本发明的一个实施例中,针对每一个第一搜索策略,根据所述搜索日志中查询文本在各文本索引域的命中得分,迭代计算各文本索引域匹配的搜索权重包括以下四个步骤。

第一步,获取每一条搜索日志的所有文本索引域各自的命中得分,作为该文本索引域的单一日志权重。以搜索物料包括m个文本索引域为例,每条搜索日志匹配的文本索引域至少为1个。计算命中得分前,初始化m个文本索引域的搜索权重分别为1/m。然后,遍历所有的m个文本索引域,通过如下公式计算每一条搜索日志的所有文本搜索域匹配的单一日志权重:

其中,typej为搜索日志的行为类型权重,如:若搜索日志为点击日志,则typej=0.8,若搜索日志为下单日志,则typej=1,具体实施时,typej还可以取其他值,只要满足点击日志的行为类型权重小于下单日志的类型权重即可。fieldi表示第i个索引文本域的内容,len(fieldi)表示第i个索引文本域的内容的长度。matchi表示搜索日志在第i个索引文本域的匹配内容,检索过程中可以得到。具体实施时,还可以采用其他公式计算每一条搜索日志中各文本索引域的单一日志权重,本实例施中,采用指数的比例是为了控制权重的上限,以便获取平滑的上限。

通过上述公式2可以得到每一条搜索日志的所有文本索引域的单一日志权重。例如,共有n条下单日志,每条下单日志有m个文本索引域,则通过公式2分别获得n条下单日志的所有文本搜索引域的单一日志权重之后,每个文本索引域将得到n个单一日志权重。每个第一搜索策略包括至少一个文本索引域,每个文本索引域可能隶属于多个第一搜索策略,例如:商家策略包括:商家名称、地址、商家品牌三个文本索引域;而地标策略也可以包括:商家名称、地址文本索引域。

通过采用上述公式2分别对每一个第一搜索策略对应的搜索日志进行计算,可以得到每个第一搜索策略对应的每一条搜索日志的所有文本索引域的单一日志权重。

第二步,对于每个第一搜索策略对应的每一条搜索日志的所有文本索引域的单一日志权重,分别计算每个文本索引域的平均权重。已知搜索日志中各文本索引域的单一日志权重,对每个文本索引域的单一日志权重计算平均值,得到各文本索引域的平均权重,公式如下:

其中,weighti为一个第一搜索策略的第i个文本索引域,counti是该第一搜索策略下所有搜索日志中第i个文本索引域的非零单一日志权重的数量。

以聚类得到p个第一搜索策略(例如,p个第一搜索策略分别记为:g1、g2、…、gp)为例,假设第一搜索策略g1中包含3个文本索引域,分别记为t1、t2和t3。计算文本索引域t1的非零单一日志权重的平均值weight_avg1、文本索引域t2的非零单一日志权重的平均值weight_avg2和文本索引域t3的非零单一日志权重的平均值weight_avg3。

第三步,获取每个第一搜索策略对应的文本索引域的平均权重的归一化权重值。

计算每个第一搜索策略下m个文本索引域的平均权重的归一化权重值。通过前面两个步骤的计算,每一个第一搜索策略都获得了一组文本索引域的平均权重,其中部分非零,其余为零。使用如下公式对非零权重做归一化,得到平均权重的归一化权重值。公式如下:

其中,weight_avgj为非0平均权重,weight′i为归一化权重值。例如,对weight_avg1、weight_avg2和weight_avg3进行归一化处理,得到该文本索引域的归一化权重值weight′1、weight′2和weight′3。经过归一化,每一个第一搜索策略的所有域权重之和为1。

第四步,确定具有非零归一化权重值的文本索引域为每个第一搜索策略对应的文本索引域。所述非零归一化权重值即是该文本索引域的搜索权重。

经过以上的迭代计算,会得到每一个第一搜索策略对应的多个非零归一化权重值的文本索引域,即是算法选择出的搜索物料中的用户感兴趣字段,即用户感兴趣的文本索引域,而文本索引域的搜索权重即是在计算搜索物料的相关性时可使用的权重。

具体实施时,得到的每一个第一搜索策略对应的文本索引域的非零归一化权重可能存在过小的情况,为了避免噪声,可以设置阈值将其去掉。在根据所述搜索日志中查询文本在各文本索引域的命中得分,迭代计算各文本索引域的搜索权重时,还包括:确定归一化权重值大于预设阈值的文本索引域为每个第一搜索策略对应的文本索引域。其中,所述预设阈值可以为1/非零搜索权重对应的文本索引域数量。

在进行搜索策略识别时,将整个查询文本分别输入训练好的每个第一搜索策略的分类器,将得出所述查询文本是否适用于当前搜索策略的结果。

步骤220,获取待搜索的查询文本。

具体实施时,所述待搜索的查询文本可以是用户在客户端的搜索栏中输入的查询文本,也可以是客户端根据用户的历史行为日志自动生成的查询文本。例如,客户端检测到某一女性用户进入化妆品销售页面后,根据用户的年龄信息给用户推动相关的搜索结果,此时,客户端首先根据用户的信息生成查询文本(如:中年女性),然后,调用搜索引擎对自动生成的查询文本执行搜索操作。

步骤230,确定与所述查询文本匹配的至少一个第一搜索策略。

其中,每个所述第一搜索策略对应至少一个文本索引域以及所述文本索引域匹配的搜索权重。

确定与所述查询文本匹配的至少一个第一搜索策略包括:根据预先设置的第一搜索策略和查询文本的对应关系,确定与查询文本匹配的至少一个第一搜索策略;或者,通过预先训练的每个第一搜索策略的分类器对查询文本分别进行识别,确定与所述查询文本匹配的至少一个第一搜索策略。具体实施时,当通过预先训练的每个第一搜索策略的分类器对查询文本分别进行识别,确定与所述查询文本匹配的至少一个第一搜索策略时,将所述查询文本分别输入预先训练的多个第一搜索策略的分类器,获取每个所述第一搜索策略的分类器的识别结果,当某个或某些第一搜索策略的分类器识别为适应于所述查询文本时,则将所述某个或某些第一搜索策略作为所述查询文本匹配的第一搜索策略。

步骤240,基于每个所述文本索引域,分别执行所述查询文本的搜索操作。

一个搜索通常可以被识别为匹配一个或者多个第一搜索策略,每个第一搜索策略又对应着各自的文本索引域及搜索权重,搜索系统将根据多个第一搜索策略分别执行搜索操作,以便得到每个第一搜索策略对应的召回结果集合。

具体实施时,基于每个所述第一搜索策略,在其对应的每个所述文本索引域分别执行所述查询文本的搜索操作,包括:根据搜索物料的相应文本索引域与所述查询文本的相关性执行物料召回;其中,所述相关性基于相应文本索引域的搜索权重确定。可以使用多线程技术由搜索系统基于多个第一搜索策略并行执行搜索操作,以便得到每个第一搜索策略对应的召回结果集合。由于每个第一搜索策略都对应着各自的文本索引域及其搜索权重,在使用常用的计算搜索物料与所述查询文本的相关性得分的公式时,更重要的文本索引域就得到更高的相关性得分,从而提升了整个搜索系统的召回结果排序效果。

举例如下,假设搜索系统使用线性相关性加权得分作为相关性得分,公式如下:

相关性得分=∑(文本索引域匹配长度/文本索引域长度)×搜索权重。

以商家肯德基有两个文本索引域为例:第一个文本索引域为“商家名”,对应的查询文本为“肯德基”;第二个文本索引域为“地点”,对应的查询文本为“五道口地铁站西侧”。商家必胜客有两个同样的文本索引域:第一个文本索引域为“商家名”,对应的查询文本为“必胜客”;第二个文本索引域为“地点”,对应的查询文本为“肯德基五道口店东侧”。用户搜索肯德基即查询文本为“肯德基”时,如果“商家名”对应的文本索引域的搜索权重更大,商家肯德基的相关性得分将高于必胜客。

步骤250,将上述所有搜索操作的搜索结果进行归并输出。

将上述所有搜索操作的搜索结果进行归并输出包括:按照预设策略对基于上述至少一个第一搜索策略的搜索结果进行排序;滤除排在后面的重复的搜索结果;输出剩余的搜索结果。所述将所有所述搜索操作的搜索进行归并输出时,首先需要对搜索结果按照预设策略进行排序。进行搜索结果排序时,可以将基于多个第一搜索策略执行搜索操作得到的搜索结果,按照人工设定的优先级分块排位;或者,按照基于每个第一搜索策略执行搜索操作时得到的搜索结果的相关性得分分块排位;再或者,按照搜索结果的相关性得分对所有第一搜索策略得到的搜索结果进行混合排序。然后,过滤掉排在后面的重复的搜索结果,将剩余的搜索结果输出。

本申请实施例公开的搜索方法,通过基于搜索日志训练第一搜索策略的分类器,确定每个所述第一搜索策略对应的文本索引域,及每个文本索引域匹配的搜索权重,然后在搜索过程中,根据获取待搜索的查询文本,确定与所述查询文本匹配的至少一个第一搜索策略,基于每个所述文本索引域,分别执行所述查询文本的搜索操作;将上述所有搜索操作的搜索结果进行归并输出,解决了现有技术中对于具有多文本索引域的信息,无法获得准确的搜索结果的问题。通过在与查询文本关联的文本索引域执行搜索操作,使得同一查询文本仅在其对应的文本索引域进行检索,不需要检索所有的文本索引域,从而避免了在不相关的文本索引域字面命中带来误召回,有效提升了结果的相关性;并且通过对不同文本域索引匹配相应的搜索权重,优化了搜索结果的排位,有效提高了搜索结果的准确率。

基于搜索日志进行训练第一搜索策略及其分类器,并且基于搜索日志进行迭代计算获得第一搜索策略的文本索引域及各文本索引域匹配的搜索权重,充分体现了用户的搜索期望,进一步有效提高搜索结果的准确度。

实施例三

本实施例公开的一种搜索方法,如图3所示,该方法包括:步骤300至步骤370。

步骤300,基于搜索日志训练第一搜索策略的分类器。

基于搜索日志训练第一搜索策略的分类器的具体实施方式参见实施例二,此处不再赘述。

步骤310,确定每个所述第一搜索策略对应的文本索引域,及每个文本索引域匹配的搜索权重。

确定每个所述第一搜索策略对应的文本索引域,及每个文本索引域匹配的搜索权重的具体实施方式参见实施例二,此处不再赘述。

步骤320,获取待搜索的查询文本。

获取待搜索的查询文本的具体实施方式参见实施例二,此处不再赘述。

步骤330,确定与所述查询文本匹配的至少一个第一搜索策略。

其中,每个所述第一搜索策略对应至少一个文本索引域及所述文本索引域匹配的搜索权重。

确定与所述查询文本匹配的至少一个第一搜索策略的具体实施方式参见实施例二,此处不再赘述。

步骤340,基于所述至少一个第一搜索策略,在其对应的每个所述文本索引域分别执行所述查询文本的搜索操作。

基于所述至少一个第一搜索策略对应的每个所述文本索引域,分别执行所述查询文本的搜索操作的具体实施方式参见实施例二,此处不再赘述。

步骤350,基于第二搜索策略对应的每个所述文本索引域,分别执行所述查询文本的搜索操作。

其中,所述第二搜索策略对应搜索物料的全部文本索引域,且每个所述文本索引域的搜索权重相同。

为了增加系统的鲁棒性,还可以基于第二搜索策略执行查询文本的搜索操作,对全部文本索引域进行搜索。在排序时将第二搜索策略的召回的结果放在第一搜索策略的召回结果的后面,以免无结果被召回。

步骤360,将上述所有搜索操作的搜索结果进行归并输出。

将上述所有搜索操作的搜索结果进行归并输出包括:按照预设策略对所有基于第一搜索策略执行的搜索操作的搜索结果进行排序;将基于第二搜索策略执行的搜索操作的搜索结果排在基于第一搜索策略执行的搜索操作的搜索结果的后面;滤除排在后面的重复的搜索结果;输出剩余的搜索结果。对基于第一搜索策略执行的搜索操作的搜索结果进行排序的具体方法参见实施例二,此处不再赘述。然后,过滤掉排在后面的重复的搜索结果,将剩余的搜索结果输出。

步骤370,当满足预设条件时,基于所述第二搜索策略对应的搜索日志训练并更新所述第一搜索策略的分类器。

随着用户使用习惯的改变或者搜索物料的不断增加,现有第一搜索策略会出现无法适应用户搜索需求的问题。比如,用户会频繁选择基于第二搜索策略执行搜索操作返回的搜索结果,则需要基于用户对展现的所述搜索结果的行为日志,更新搜索策略。所述预设条件包括以下至少一项:达到预设更新周期、第一点击率与第二点击率的比值大于预设阈值;其中,所述第一点击率为对基于所述第二搜索策略执行搜索操作的搜索结果的点击率,所述第二点击率为对基于第一搜索策略执行搜索操作的搜索结果的点击率。

具体实施时,所述预设更新周期根据搜索物料的更新速度确定,或者人为设定,例如,可以为1个月。用户对基于所述第二搜索策略执行搜索操作的搜索结果的第一点击率以及用户对基于所述第一搜索策略执行搜索操作的搜索结果的第二点击率,可以通过对搜索系统的搜索日志进行统计分析获得。

当达到预设更新周期,或第一点击率与第二点击率的比值大于预设阈值时,根据基于第二搜索策略执行搜索操作的搜索日志执行步骤300和步骤310,基于搜索日志重复执行训练第一搜索策略的分类器以及确定文本索引域、文本索引域匹配的搜索权重的操作,并将训练得到的第一搜索策略的分类器及第一搜索策略补充至原有第一搜索策略中。

本申请实施例公开的搜索方法,通过基于搜索日志训练第一搜索策略的分类器,确定每个所述第一搜索策略对应的文本索引域,及每个文本索引域匹配的搜索权重;然后在搜索过程中,根据获取待搜索的查询文本,确定与所述查询文本匹配的至少一个第一搜索策略;基于每个所述文本索引域,分别执行所述查询文本的搜索操作;基于第二搜索策略对应的每个所述文本索引域,分别执行所述查询文本的搜索操作;将上述所有搜索操作的搜索结果进行归并输出,解决了现有技术中对于具有多文本索引域的信息,无法获得准确的搜索结果的问题。通过在与查询文本关联的文本索引域执行搜索操作,使得同一查询文本仅在其对应的文本索引域进行检索,不需要检索所有的文本索引域,从而避免了在不相关的文本索引域字面命中带来误召回,有效提升了结果的相关性;并且通过对不同文本域索引匹配相应的搜索权重,优化了搜索结果的排位,有效提高了搜索结果的准确率。

通过结合第二搜索策略执行搜索操作,可以避免漏检导致的无结果被召回的问题。同时,通过结合第二搜索策略的搜索结果,重复执行训练第一搜索策略的分类器,可以发现由于用户的使用习惯的改变导致第一搜索策略不适用的问题,可以及时发现新的搜索策略。

实施例四

本实施例公开的一种搜索装置,如图4所示,该装置包括:

第一搜索策略确定模块400,用于确定与查询文本匹配的至少一个第一搜索策略,其中,每个所述第一搜索策略对应至少一个文本索引域及所述文本索引域匹配的搜索权重;

搜索模块410,用于基于所述第一搜索策略确定模块确定的每个所述第一搜索策略,在其对应的每个所述文本索引域分别执行所述查询文本的搜索操作;

搜索结果输出模块420,用于将上述所有搜索操作的搜索结果进行归并输出。

本申请实施例公开的搜索装置,通过确定与查询文本匹配的至少一个第一搜索策略,其中,每个所述第一搜索策略对应至少一个文本索引域以及所述文本索引域匹配的搜索权重;然后,基于每个所述第一搜索策略,在其对应的每个所述文本索引域分别执行所述查询文本的搜索操作;最后,将上述所有搜索操作的搜索结果进行归并输出,解决了现有技术中对于具有多文本索引域的信息,无法获得准确的搜索结果的问题。通过在与查询文本关联的文本索引域执行搜索操作,使得同一查询文本仅在其对应的文本索引域进行检索,不需要检索所有的文本索引域,从而避免了在不相关的文本索引域字面命中带来误召回,有效提升了结果的相关性;并且通过对不同文本域索引匹配相应搜索权重,优化了搜索结果的排位,有效提高了搜索结果的准确率。

可选的,如图5所示,所述第一搜索策略确定模块400包括:

第一确定单元4001,用于根据预先设置的第一搜索策略和查询文本的对应关系,确定与查询文本匹配的至少一个第一搜索策略。

可选的,如图6所示,所述第一搜索策略确定模块400包括:

第二确定单元4002,用于通过预先训练的每个第一搜索策略的分类器对查询文本分别进行识别,确定与所述查询文本匹配的至少一个第一搜索策略。

可选的,若通过第二确定单元4002确定与查询文本匹配的至少一个第一搜索策略,则如图6所示,所述装置还包括:

搜索策略分类器训练模块430,用于基于搜索日志训练第一搜索策略的分类器。

可选的,若通过第二确定单元4002确定与查询文本匹配的至少一个第一搜索策略,则如图6所示,所述装置还包括:

文本域及权重确定模块440,用于确定每个第一搜索策略对应的文本索引域,及每个文本索引域匹配的搜索权重。

可选的,如图6所示,所述搜索策略分类器训练模块430包括:

搜索策略空间定义确定单元4301,用于对搜索日志进行聚类,生成搜索策略空间定义,所述搜索策略空间定义用于表示不同第一搜索策略和查询文本的映射关系;

训练单元4302,用于基于每个所述第一搜索策略对应的搜索日志,分别训练相应的第一搜索策略的分类器。

可选的,如图6所示,所述文本域及权重确定模块440包括:

日志获取单元4401,用于对于每个第一搜索策略,获取基于该第一搜索策略对应的查询文本执行所有文本索引域的搜索操作的搜索日志;

权重计算单元4402,用于根据所述搜索日志中查询文本在各文本索引域的命中得分,迭代计算各文本索引域的平均权重;

文本域及权重确定单元4403,用于根据各文本索引域的平均权重确定该第一搜索策略匹配的文本索引域以及各文本索引域匹配的搜索权重。

基于搜索日志进行训练第一搜索策略及其分类器,并且基于搜索日志进行迭代计算获得第一搜索策略的文本索引域及各文本索引域匹配的搜索权重,充分体验了用户的搜索期望,有效提高搜索结果的准确度。

可选的,所述搜索模块410具体用于:

根据搜索物料的相应文本索引域与所述查询文本的相关性执行物料召回;其中,所述相关性基于相应文本索引域的搜索权重确定。

可选的,如图7所示,所述装置还包括:

补充搜索模块450,用于基于第二搜索策略对应的每个所述文本索引域,分别执行所述查询文本的搜索操作;其中,所述第二搜索策略对应搜索物料的全部文本索引域,且每个所述文本索引域的搜索权重相同。

可选的,如图7所示,所述装置还包括:

搜索策略更新模块460,用于当满足预设条件时,基于所述第二搜索策略对应的搜索日志训练并更新所述第一搜索策略的分类器。

可选的,所述预设条件包括以下至少一项:达到预设更新周期、第一点击率与第二点击率的比值大于预设阈值;其中,所述第一点击率为对基于所述第二搜索策略执行搜索操作的搜索结果的点击率,所述第二点击率为对基于第一搜索策略执行搜索操作的搜索结果的点击率。

通过结合第二搜索策略执行搜索操作,可以避免漏检导致的无结果被召回的问题。同时,通过结合第二搜索策略的搜索结果,重复执行训练第一搜索策略的分类器,可以发现由于用户的使用习惯的改变导致第一搜索策略不适用的问题,可以及时发现新的搜索策略。

相应的,本申请还公开了一种电子设备,包括存储器、处理器及存储在所述存储器上并可在处理器上运行的计算机程序,所述处理器执行所述计算机程序时实现如本申请实施例一至实施例三所述的搜索方法。所述电子设备可以为pc机、移动终端、个人数字助理、平板电脑等。

本申请还公开了一种计算机可读存储介质,其上存储有计算机程序,该程序被处理器执行时实现如本申请实施例一至实施例三所述的搜索方法的步骤。

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

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

通过以上的实施方式的描述,本领域的技术人员可以清楚地了解到各实施方式可借助软件加必需的通用硬件平台的方式来实现,当然也可以通过硬件实现。基于这样的理解,上述技术方案本质上或者说对现有技术做出贡献的部分可以以软件产品的形式体现出来,该计算机软件产品可以存储在计算机可读存储介质中,如rom/ram、磁碟、光盘等,包括若干指令用以使得一台计算机设备(可以是个人计算机,服务器,或者网络设备等)执行各个实施例或者实施例的某些部分所述的方法。

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