一种搜索方法、装置和电子设备与流程

文档序号:26050512发布日期:2021-07-27 15:25阅读:81来源:国知局
一种搜索方法、装置和电子设备与流程

本申请涉及计算机技术领域,具体涉及一种搜索方法、装置和电子设备。



背景技术:

现有的搜索方法的搜索过程通常是:接收用户的搜索词,对搜索词进行分词处理,得到分词结果,然后基于分词结果进行搜索。然而,采用此种方式经常出现搜索出大量无关结果的情况,可见,现有的搜索方法存在搜索效果较差的问题。



技术实现要素:

本申请提供的一种搜索方法、装置和电子设备,可以解决现有的搜索方法存在的搜索效果较差的问题。

为了解决上述技术问题,本发明的具体实现方案如下:

第一方面,本发明实施例提供了一种搜索方法,包括:

获取搜索词;

基于所述搜索词的字符数量,确定目标搜索词,其中,在所述搜索词的字符数量小于或等于第一预设值的情况下,所述目标搜索词为所述搜索词,在所述搜索词的字符数量大于所述第一预设值的情况下,所述目标搜索词为对所述搜索词进行分词处理得到的分词结果;

基于所述目标搜索词在目标数据库中进行搜索,输出搜索结果。

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

获取模块,用于获取搜索词;

确定模块,用于基于所述搜索词的字符数量,确定目标搜索词,其中,在所述搜索词的字符数量小于或等于第一预设值的情况下,所述目标搜索词为所述搜索词,在所述搜索词的字符数量大于所述第一预设值的情况下,所述目标搜索词为对所述搜索词进行分词处理得到的分词结果;

搜索模块,用于基于所述目标搜索词在目标数据库中进行搜索,输出搜索结果。

第三方面,本发明实施例还提供一种电子设备,包括处理器、存储器及存储在所述存储器上并可在所述处理器上运行的计算机程序,所述计算机程序被所述处理器执行时实现上述第一方面所述方法的步骤。

第四方面,本发明实施例还提供一种计算机可读存储介质,所述计算机可读存储介质上存储有计算机程序,所述计算机程序被处理器执行时实现上述第一方面所述方法的步骤。

本申请实施例中,通过基于搜索词的文字数量确定目标搜索词,其中,当搜索词的文字数量小于一定值时,直接将搜索词作为目标搜索词,当搜索词的文字数量大于一定值时,将对搜索词进行分词处理后的分词结果作为目标搜索词,这样,可以避免当搜索词较短时,由于进一步对搜索词进行分词处理,而导致搜索出大量无关搜索结果的问题,从而可以提高搜索的效果。

附图说明

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

图1是本发明实施例提供的搜索方法的流程图之一;

图2是本发明实施例提供的搜索方法的流程图之二;

图3是本发明实施例提供的搜索装置的结构图;

图4是本发明实施例提供的一种电子设备的结构图。

具体实施方式

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

请参见图1,图1为本申请提供的一种搜索方法,所述搜索方法包括:

步骤101、获取搜索词;

步骤102、基于所述搜索词的字符数量,确定目标搜索词,其中,在所述搜索词的字符数量小于或等于第一预设值的情况下,所述目标搜索词为所述搜索词,在所述搜索词的字符数量大于所述第一预设值的情况下,所述目标搜索词为对所述搜索词进行分词处理得到的分词结果;

步骤103、基于所述目标搜索词在目标数据库中进行搜索,输出搜索结果。

上述字符数量至少可以包括:中文字符数量、英文字符数量、标点符号数量、特殊字符数量等。其中,当用户输入的搜索词为中文搜索词时,可以通过所述字符数量确定中文文字的数量。下文以所述搜索词为中文搜索词为例,对本申请实施例所提供的方法作进一步的解释说明。

上述搜索词的字符数量即搜索词中所包含的字节数量,例如,当所述搜索词为“手机号码被注册”时,字节数量为14,文字数量为7。此外,还可以直接识别搜索词的字数。

上述第一预设值的大小可以根据实际需要进行设定,例如,所述第一预设值的取值可以为4,即文字数量为2,在此情况下,当搜索词所包含的字数小于或等于2时,则直接将搜索词确定为目标搜索词,也即在搜索过程中不对搜索词进行分词处理。相应地,当所述搜索词所包含的字数大于2时,则在搜索过程中需要对搜索词进行分词处理,并将分词处理后的分词结果作为目标搜索词,然后,基于目标搜索词进行搜索。

在本申请一个实施例中,当所述搜索词的字符数量小于或等于第一预设值时,可以基于所述目标搜索词,按照通配符的方法在所述目标数据库中进行搜索,输出搜索结果。相应地,当所述搜索词的字符数量大于第一预设值时,则可以基于所述目标搜索词,按照多字段匹配查询(multi_match)的方法进行分词模糊搜索,输出搜索结果。

上述对搜索词进行分词处理的过程中,可以基于中文分词插件中的最大力度拆分方法,将输入的搜索字进行分词操作。例如,可以采用基于词典和规则的开源中文分词器(ik分词器),使用ik分词器的细粒度模式,对搜索词进行分词处理。

上述目标数据库可以根据具体的搜索场景进行确定,其中,所述目标数据库用于存储搜索结果。例如,当将本申请的方法应用于客服智能问答系统时,所述目标数据库可以存储系统所维护的各种常见的问题的答案,这样,当用户输入搜索词时,可以准确的基于用户的搜索词在目标数据库中搜索与搜索词相关的问题及答案。

可以理解的是,目标数据库中所存储的每个搜索结果可以均为分词处理后的结果,例如,某一搜索结果包括标题部分、关键词部分和正文部分,在将该搜索存入目标数据库之前,需要先分别对该搜索结果的标题部分、关键词部分和正文部分分别进行分词处理,然后,可以将该三部分的分词处理结果储存于同一搜索结果中的不同子段。这样,当基于目标搜索词在目标数据库中进行搜索时,可以将目标搜索词与目标数据库中每个搜索结果中的分词进行匹配,以确定所需搜索的搜索结果。

此外,相对于现有的通配符的搜索方法而言,采用本申请的搜索方法可以提高搜索的效果。其理由在于:基于通配符的搜索方式,若搜索词的长度较长,例如,用户输入的搜索词为“能用微信还款吗”,由于通配符的搜索方法不需对搜索词进行拆分,按照通配符模式类似sql语句的like进行查询,则很难检索出有效结果,且查询多字段时,时耗较高。由于此种搜索方法,不进行分词,如果维护内容中只有“微信还款”,则用户无法搜索到搜索结果。

相应地,相对于现有的多字段匹配的搜索方式而言,采用本申请的搜索方法也可以提高搜索的效果。其理由在于:现有技术中基于多字段匹配的搜索方式,如果搜索词的长度较短,例如,用户输入的搜索词为“账单”,按照多字段匹配模式进行查询,会将标题、关键字、内容中包含“账单”的所以条目都罗列出来,展现无关数据较多;如果搜索关键字输入较长,用户输入“能用微信还款吗”,不设置权重、最小匹配度参数,按照多字段匹配模式查询,同样会检索出很多无关条目,未必是用户想要的有效信息。

该实施方式中,通过基于搜索词的字符数量确定目标搜索词,其中,当搜索词的字符数量小于一定值时,直接将搜索词作为目标搜索词,当搜索词的字符数量大于一定值时,将对搜索词进行分词处理后的分词结果作为目标搜索词,这样,可以避免当搜索词较短时,由于进一步对搜索词进行分词处理,而导致搜索出大量无关搜索结果的问题,从而可以提高搜索的效果。

可选地,在所述搜索词的字符数量大于所述第一预设值的情况下,所述目标搜索词包括n个分词,所述n为正整数,所述基于所述目标搜索词在目标数据库中进行搜索,输出搜索结果,包括:

在所述n小于或等于第二预设值的情况下,基于所述n个分词在所述目标数据库中进行搜索,输出第一目标对象,其中,所述第二预设值大于1,所述第一目标对象为所述目标数据库中包括所述n个分词的对象;

在所述n大于所述第二预设值的情况下,基于所述n个分词在所述目标数据库中进行搜索,输出第二目标对象,其中,所述第二目标对象为所述目标数据库中包括所述n个分词中的部分分词的对象。

其中,上述n即对搜索词进行分词处理后的分词数量或子句数量,例如,当搜索词为“手机号码被注册”时,按照上述ik分词器对该搜索词进行分词处理的分词结果为:“手机号码”,“手机号”,“手机”,“机号码”,“号码”,“被”,“注册”。此时,搜索词共被切分为7个分词,因此,在此情况下,所述n=7。

具体地,由于搜索词的长度越长,在分词处理后,所得到的分词数量通常也越多。且搜索词的长度越长,搜索条件也越为具体,当搜索词过长时,由于搜索词中可能包括与搜索结果无关的关键字,例如,错别字或语气词等,在此情况下,可能在目标数据库中所存储的搜索结果中无法查找到同时包括n个分词的对象。相应地,当搜索词越短时,在分词处理后,所得到的分词数量通常也越少,且在此情况下,搜索词中通常为与搜索结果存在密切关系的关键字。

基于此,在本申请一个实施例中,当n小于或等于第二预设值时,确定此时分词的数量较少,为确保搜索结果的准确性,基于所述n个分词在目标数据库中搜索第一目标对象,且所述第一目标对象为所述目标数据库中包括所述n个分词的对象。其中,在基于n个分词在目标数据库中搜索第一目标对象是指:将所述n个分词分别与目标数据库中每个对象进行匹配,并且查找出所有包括n个分词的第一目标对象,并输出所查找出的所有第一目标对象,即所输出的第一目标对象的数量可以大于等于1个,当然,当基于目标搜索词未查找到第一目标对象时,也可以输出“无法查找到匹配的搜索结果”的输出结果。

当所述第一目对象包括多个不同组成部分时,所述第一目标对象包括所述n个分词可以是指:将第一目标对象的多个不同组成部分视为一个整体,仅需该整体中包括n个分词,即视为第一目标对象包括n个分词,即所述n个分词可以分布于所述第一目标对象的不同部分,例如,所述第一目标对象包括标题部分、关键词部分和正文部分时,所述第一目标对象包括所述n个分词可以分别分布于标题部分、关键词部分和正文部分。

可以理解的是,所述n个分词为n个不同的分词,所述第一目标对象包括n个分词是指所述第一目标对象包括所述n个不同的分词,而非所述第一目标对象包括的分词数量为n,事实上,同一分词可能在第一目标对象中出现多次。

相应地,当n大于第二预设值时,确定此时分词的数量较多,即所述搜索词的长度较长,为确保能够基于n个分词在目标数据库中能够搜索出搜索结果。此时,可以基于n个分词在目标数据库中查询第二目标对象,所述第二目标对象为所述目标数据库中包括所述n个分词中的部分分词的对象。其中,所述第二目标对象为所述目标数据库中包括所述n个分词中的部分分词的对象:可以是指所述第二对象为所述目标数据库中,包括所述n个分词中的s个分词的对象,所述s可以小于所述n,s的取值可以根据实际情况进行选取,例如,所述s可以为所述n的三分之二。其中,所述s个分词可以是指所述n个分词中的s个不同的分词。这样,当所述目标搜索词中的分词数量较多时,进行确保第二目标对象包括n个部分中的部分分词,即可将第二目标对象确定为搜索结果进行输出,从而提高在搜索词较长时,能够在目标数据库中查找到搜索结果的概率。

其中,在基于n个分词在目标数据库中搜索第二目标对象是指:将所述n个分词分别与目标数据库中每个对象进行匹配,并且查找出所有第二目标对象,并输出所查找出的所有第二目标对象,即所输出的第二目标对象的数量可以大于等于1个,当然,当基于目标搜索词未查找到第二目标对象时,也可以输出“无法查找到匹配的搜索结果”的输出结果。

上述第二预设值的取值可以根据实际情况进行选取,例如,在本申请一个实施例中,所述第二预设值的取值可以为2,即当所述目标搜索词包括的分词数量小于等于2个时,需要所搜索到的第一目标对象包括目标搜索词中的所有分词。当所述目标搜索词的分词数量大于2个时,进行确保所搜索到的第二目标对象包括所述目标搜索词中的部分分词,即可将第二目标对象作为搜索结果进行输出。

该实施方式中,通过基于目标搜索词所包括的分词数量的不同,在目标数据库中选择不同匹配程度的目标对象作为输出结果,这样,既可以提高搜索结果的准确性,同时,还可以提高在搜索词较长时,能够在目标数据库中查找到搜索结果的概率。

可选地,所述第二目标对象包括第一子目标对象和第二子目标对象,所述基于所述n个分词在所述目标数据库中进行搜索,输出第二目标对象,包括:

在所述n小于第三预设值的情况下,基于所述n个分词在所述目标数据库中进行搜索,输出所述第一子目标对象,所述第一子目标对象为所述目标数据库中包括所述n个分词中的至少k个分词的对象;

在所述n大于或等于所述第三预设值的情况下,基于所述n个分词在所述目标数据库中进行搜索,输出所述第二子目标对象,所述第二子目标对象为所述目标数据库中包括所述n个分词中的至少m个分词的对象;

其中,所述第三预设值大于所述第二预设值,所述k大于目标系数与第一概率值的乘积,所述m大于所述目标系数与第二概率值的乘积,所述目标系数为基于所述n计算得到的系数,所述第一概率值大于所述第二概率值,所述第一概率值大于0且小于1,所述第二概率值大于0且小于1。

具体地,由于目标搜索词所包括的分词数量越多,即n的取值越大,所能够检索到同时包括n个分词的对象的概率越小。基于此,在本申请一个实施例中,可以设置:当所述n的取值越大时,在目标数据库中所确定的搜索结果与目标搜索词的匹配度可以越低,即当所述n的取值越大时,所述输出的目标对象中所包括的分词数量与n的比值可以越小,相应地,当所述n的取值越小时,所述输出的目标对象中所包括的分词数量与n的比值可以越大。具体而言,当n小于第三预设值时,确定n的取值较小,当n大于或等于所述第三预设值时,确定n的取值较大,其中,第三预设值的取值可以根据实际情况进行选取,例如,在本申请一个实施例中,第三预设值的值可以为6。

在本申一个实施例中,可以设置一个最小匹配度参数,当所检索到的对象包括目标搜索词中的不同分词数量大于等于该最小匹配度参数时,确定该搜索结果为目标搜索结果。其中,可以根据n的取值不同,设置不同的最小匹配度参数。

具体而言,可以基于所述n计算一个基础匹配度系数,该基础匹配度系数可以为n,也可以小于n。当n小于第三预设值时,基于所述n个分词在所述目标数据库中进行搜索第一子目标对象,所述第一子目标对象为所述目标数据库中包括所述n个分词中的至少k个分词的对象,且所述k大于目标系数与第一概率值的乘积,在此情况下,所述最小匹配度参数的取值为所述k。当所述n大于或等于所述第三预设值时,基于所述目标搜索词在所述目标数据库中进行搜索第二子目标对象,所述第二子目标对象为所述目标数据库中包括所述n个分词中的至少m个分词的对象,且所述m大于所述目标系数与第二概率值的乘积,在此情况下,所述最小匹配度参数的取值为所述m。所述目标系数为基于所述n计算得到的系数,所述第一概率值大于所述第二概率值。这样,即可确保当n小于第三预设值时,确定n的取值较小,当n大于或等于所述第三预设值时,确定n的取值较大。

在本申请一个具体实施例中,基础匹配度系数的取值可以为“0.8乘以n向下取整”。第一概率值可以为0.75,第二概率值可以为0.6。

例如,当所述第三预设值的取值为6,且搜索词为“手机号码被注册”时,按照上述ik分词器对该搜索词进行分词处理的分词结果为:“手机号码”,“手机号”,“手机”,“机号码”,“号码”,“被”,“注册”。此时,搜索词共被切分为7个分词,因此,在此情况下,所述n=7。此时,基础匹配度系数等于(0.8×7)向下取整,即基础匹配度系数等于5。由于n=7,即n大于第三预设值6,因此,此时,在所述目标数据库中查询第二子目标对象,即m的取值大于(0.6×5),也即m大于3。此时,而m的取值为正整数,因此,m的最小取值为4。在此情况下,基于所述7个分词在所述目标数据库中进行搜索,输出所述第二子目标对象,所述第二子目标对象为所述目标数据库中包括所述7个分词中的至少4个分词的对象。经验证,在用户输入的搜索词为“手机号码被注册”时,输出搜索结果的时长为800毫秒左右,相对于现有技术而言,可以减少搜索的耗时,提高搜索的速度。

该实施方式中,在所述n小于或等于第二预设值的情况下,通过进一步判断n与第三预设值的相对大小,并在n小于第三预设值和n大于等于第三预设值时,分别设置不同的最小匹配度参数,这样,可以进一步提高在搜索词较长时,能够在目标数据库中查找到搜索结果的概率。

可选地,所述搜索结果包括至少两个目标对象,所述目标对象包括以下部分中的至少一项:标题部分、关键词部分和正文部分,每一个部分包括对应的权重值;

所述输出搜索结果,包括:

根据所述目标对象各部分所包含的分词数量和各部分的权重值,对所述至少两个目标对象分别进行评分,得到每个目标对象的评分值;

按照所述评分值的大小对所述至少两个目标对象进行排序,输出排序后的所述至少两个目标对象。

其中,由于标题部分的内容通常是全文的主题,而关键词部分的内容通常是全文的终点部分的概况,而正文部分的内容通常即包括与主题相关的内容,也包括一些无关内容。因此,所述标题部分的权重值可以大于所述关键词部分的权重值,所述关键词部分的权重值可以大于所述正文部分的权重值。这样,在基于目标搜索词在目标数据库中进行搜索,搜索出至少两个目标对象时,可以基于目标对象各部分所包含的分词数量和各部分的权重值,对所述至少两个目标对象分别进行评分,得到每个目标对象的评分值;然后,按照所述评分值的大小对所述至少两个目标对象进行排序,输出排序后的所述至少两个目标对象。从而可以确保所搜索出的至少两个目标对象可以按照与目标搜索词的关联程度排列展示,从而方便用户快速定位所需查找的搜索结果。

在本申请一个实施例中,所述标题部分的权重值为3,关键词部分的权重值为2,正文部分的权重值为1。当搜索当a、b、c三个目标对象时,若目标对象a中:标题部分包括1个分词,关键词部分包括0个分词,正文部分包括1个分词;目标对象b中:标题部分包括0个分词,关键词部分包括0个分词,正文部分包括3个分词;目标对象c中:标题部分包括0个分词,关键词部分包括2个分词,正文部分包括2个分词。则目标对象a的评分值为(1×3+0×2+1×1)=4分。目标对象b的评分值为(0×3+0×2+3×1)=3分。目标对象c的评分值为(0×3+2×2+2×1)=6分。因此,排序结果依次为:目标对象c、目标对象a、目标对象b。

可以理解的是,所述目标对象可以是上述实施例中的第一目标对象或第一子目标对象或第二子目标对象。

该实施方式中,在搜索出至少两个目标对象的情况下,通过基于目标对象各部分所包含的分词数量和各部分的权重值,对所述至少两个目标对象分别进行评分,得到每个目标对象的评分值;然后,按照所述评分值的大小对所述至少两个目标对象进行排序,输出排序后的所述至少两个目标对象。这样,确保所搜索出的至少两个目标对象可以按照与目标搜索词的关联程度排列展示,从而方便用户快速定位所需查找的搜索结果。

可选地,在所述搜索词的字符数量小于或等于所述第一预设值的情况下,所述基于所述目标搜索词在目标数据库中进行搜索,输出搜索结果,包括:

基于所述目标搜索词在所述目标数据库中进行搜索,输出第三目标对象,所述第三目标对象为所述目标数据库中,标题部分包括所述目标搜索词的对象。

具体地,当所述搜索词的字符数量小于或等于所述第一预设值时,可以基于通配符搜索方式,在目标数据库中查询每个对象的标题部分,并输出标题部分包括所述目标搜索词的第三目标对象。例如,当所述第一预设值的取值为2时,若用户输入的搜索词为“延期”,此时,可以调用通配符搜索方式,只查询目标数据库中每个对象的标题部分,从而搜索出符合要求的搜索结果,经验证,该过程耗时在500毫秒左右。而采用常规的方式,基于搜索词对数据库中的每个部分(具体包括:标题部分、关键词部分、正文部分等)分别进行检索,非但会检索出大量无关结果,且耗时在2秒左右。可见,采用本申请提供的搜索方法既可以提高搜索结果的准确性,同时,还可以减少搜索的耗时,提高搜索的速度。

该实施方式中,当搜索词的字符数量小于或等于所述第一预设值的情况下,即搜索词较短,若基于搜索词对目标数据库中的每个对象均进行全文搜索(即同时搜索标题部分、关键词部分和正文部分),可能搜索出大量无关结果。而目标数据库中的每个对象的标题部分通常是全文的主题,因此,为了避免搜索出大量无关结果,本申请实施例中,仅将目标搜索词与目标数据库中的每个对象的标题部分进行匹配,并输出标题部分包括所述目标搜索词的第三目标对象,这样,可以确保所搜索出的对象的主题与目标搜索词相关,从而提高搜索结果的准确性,同时,还可以减少搜索的耗时,提高搜索的速度。

可选地,在所述获取搜索词之前,所述方法还包括:

在用户登录搜索界面的情况下,获取所述用户的身份信息;

基于所述用户的身份信息,向用户推荐目标搜索结果,其中,所述目标搜索结果为所述目标数据库中,与所述用户的身份信息相匹配,且点击率最高的搜索结果。

其中,所述用户的身份信息可以是用户的类型,例如,可以根据用户的年龄、性别等特征对用户进行分类。或者,也可以根据用户的类型将用户分为:游客用户、普通用户、会员用户和高级用户等类型。并可在用户搜索过程中统计不同类型的用户点击率最高的搜索结果。又例如,在本申请另一实施例中,可以为不同类型的用户设置不同的标签,其中,所述不同类型的用户的分类可以是:注册用户、实名用户、授权用户等。在用户搜索过程中,可以将用户的搜索词和用户点击的搜索结果上报至事件索引;通过定时任务,按照标签维护、事件维护进行统计,统计出所有标签下点击率最高搜索结果,这样,通过获取用户的分类标签,并向用户推荐其所所属标签下,点击率最高的搜索结果。

该实施方式中,当用户登录搜索界面时,根据用户的身份信息确定用户的分类,然后,确定用户所处分类中点击率最高的搜索结果,并向用户推荐该点击率最高的搜索结果。从而可以节省用户搜索过程所花费的时间,进一步提高搜索的效果。

此外,采用本申请实施例提供的搜索方法,相对于现有技术而言,还可以如下有益效果:(1)用户更快捷高效搜索到内容,同时尽可能让搜索结果符合客户预期。(2)本申请提供的搜索方法,提供更优质的基础数据,通过对数据的统计分析,让用户普遍性问题提前曝光给用户,减少搜索的频次,减少服务端的压力。(3)采用本申请提供的搜索方法,问题的解决率比常规搜索方法有所提升,转人工客服咨询率下降42%,大大节省人力成本。

请参见图2,为本申请一个具体实施例提供的搜索方法的流程图,所述方法包括如下步骤:接收用户输入的搜索词;判读搜索词中的字符数量是否大于第一预设值,在字符数量不大于第一预设值的情况下,将搜索词确定为目标搜索词,然后,基于目标搜索词在目标数据库中进行搜索,输出第三目标对象,所述第三目标对象为所述目标数据库中,标题部分包括目标搜索词的对象。然后根据第三目标对象的标题部分所包含的分词数量,对所搜索到的所有第三目标对象进行评分,并按照第三目标对象的评分值,对所搜索到的所有第三目标对象进行排序,输出排序后的所有第三目标对象。

其中,在所述目标搜索词所包含的字符数量大于所述第一预设值的情况下,调用分词方法对搜索词进行分词,得到分词结果并将分词结果作为目标搜索词,所述目标搜索词包括n个分词。然后进一步判断目标搜索词中包括的分词数量是否大于第二预设值,在所述目标搜索词所包括的分词数量不大于第二预设值的情况下,基于目标搜索词在目标数据库中进行搜索,输出第一子目标对象,所述第一子目标对象为所述目标数据库中,包括所述n个分词中至少k个分词的对象。然后根据第一子目标对象各部分所包含的分词数量和各部分的权重值,对搜索得到的第一子目标对象分别进行评分,得到每个第一子目标对象的评分值,其中,第一子目标对象的评分过程与上述实施例中对目标对象的评分过程相同,为避免重复,在此不再予以赘述。最后,按照第一子目标对象的评分值进行排序,输出排序后的所有第一子目标对象。

相应地,在所述目标搜索词所包括的分词数量大于第二预设值的情况下,基于目标搜索词在目标数据库中进行搜索,输出第二子目标对象,所述第二子目标对象为所述目标数据库中,包括所述n个分词中至少m个分词的对象。然后根据第二子目标对象各部分所包含的分词数量和各部分的权重值,对搜索得到的第二子目标对象分别进行评分,得到每个第二子目标对象的评分值,其中,第二子目标对象的评分过程与上述实施例中对目标对象的评分过程相同,为避免重复,在此不再予以赘述。最后,按照第二子目标对象的评分值进行排序,输出排序后的所有第二子目标对象。

其中,所述第三预设值大于所述第二预设值,所述k大于目标系数与第一概率值的乘积,所述m大于所述目标系数与第二概率值的乘积,所述目标系数为基于所述n计算得到的系数,所述第一概率值大于所述第二概率值。此外,该实施方式中的具体实现过程可以参见上述实施例,为避免重复,在此不再予以赘述。

请参见图3,图3是本申请实施例提供的一种搜索装置300,包括:

获取模块301,用于获取搜索词;

确定模块302,用于基于所述搜索词的字符数量,确定目标搜索词,其中,在所述搜索词的字符数量小于或等于第一预设值的情况下,所述目标搜索词为所述搜索词,在所述搜索词的字符数量大于所述第一预设值的情况下,所述目标搜索词为对所述搜索词进行分词处理得到的分词结果;

搜索模块303,用于基于所述目标搜索词在目标数据库中进行搜索,输出搜索结果。

可选地,在所述搜索词的字符数量大于所述第一预设值的情况下,所述目标搜索词包括n个分词,所述n为正整数,所述搜索模块303,用于在所述n小于或等于第二预设值的情况下,基于所述n个分词在所述目标数据库中进行搜索,输出第一目标对象,其中,所述第二预设值大于1,所述第一目标对象为所述目标数据库中包括所述n个分词的对象;

所述搜索模块303,还用于在所述n大于所述第二预设值的情况下,基于所述n个分词在所述目标数据库中进行搜索,输出第二目标对象,其中,所述第二目标对象为所述目标数据库中包括所述n个分词中的部分分词的对象。

可选地,所述第二目标对象包括第一子目标对象和第二子目标对象,所述搜索模块303,还用于在所述n小于第三预设值的情况下,基于所述n个分词在所述目标数据库中进行搜索,输出所述第一子目标对象,所述第一子目标对象为所述目标数据库中包括所述n个分词中的至少k个分词的对象;

所述搜索模块303,还用于在所述n大于或等于所述第三预设值的情况下,基于所述目标搜索词在所述目标数据库中进行搜索,输出所述第二子目标对象,所述第二子目标对象为所述目标数据库中包括所述n个分词中的至少m个分词的对象;

其中,所述第三预设值大于所述第二预设值,所述k大于目标系数与第一概率值的乘积,所述m大于所述目标系数与第二概率值的乘积,所述目标系数为基于所述n计算得到的系数,所述第一概率值大于所述第二概率值。

可选地,所述搜索结果包括至少两个目标对象,所述目标对象包括以下部分中的至少一项:标题部分、关键词部分和正文部分,每一个部分包括对应的权重值;所述搜索模块303,包括:

评分子模块,用于根据所述目标对象各部分所包含的分词数量和各部分的权重值,对所述至少两个目标对象分别进行评分,得到每个目标对象的评分值;

输出子模块,用于按照所述评分值的大小对所述至少两个目标对象进行排序,输出排序后的所述至少两个目标对象。

可选地,在所述搜索词的字符数量小于或等于所述第一预设值的情况下,所述搜索模块303,用于基于所述目标搜索词在所述目标数据库中进行搜索,输出第三目标对象,所述第三目标对象为所述目标数据库中,标题部分包括所述目标搜索词的对象。

可选地,所述获取模块301,还用于在用户登录搜索界面的情况下,获取所述用户的身份信息;

所述装置还包括:

推荐模块,用于基于所述用户的身份信息,向用户推荐目标搜索结果,其中,所述目标搜索结果为所述目标数据库中,与所述用户的身份信息相匹配,且点击率最高的搜索结果。

可选地,所述搜索模块303,用于基于所述目标搜索词,按照通配符的方法在所述目标数据库中进行搜索,输出搜索结果。

本发明实施例提供的搜索装置300能够实现上述方法实施例中的各个过程,为避免重复,这里不再赘述。

参见图4,图4是本发明又一实施提供的电子设备的结构图,如图4所示,电子设备,包括:服务接口流控装置400包括:处理器401、存储器402及存储在所述存储器402上并可在所述处理器上运行的计算机程序,数据发送装置400中的各个组件通过总线接口403耦合在一起,所述计算机程序被所述处理器401执行时实现如下步骤:

获取搜索词;

基于所述搜索词的字符数量,确定目标搜索词,其中,在所述搜索词的字符数量小于或等于第一预设值的情况下,所述目标搜索词为所述搜索词,在所述搜索词的字符数量大于所述第一预设值的情况下,所述目标搜索词为对所述搜索词进行分词处理得到的分词结果;

基于所述目标搜索词在目标数据库中进行搜索,输出搜索结果。

可选地,在所述搜索词的字符数量大于所述第一预设值的情况下,所述目标搜索词包括n个分词,所述n为正整数,所述基于所述目标搜索词在目标数据库中进行搜索,输出搜索结果,包括:

在所述n小于或等于第二预设值的情况下,基于所述n个分词在所述目标数据库中进行搜索,输出第一目标对象,其中,所述第二预设值大于1,所述第一目标对象为所述目标数据库中包括所述n个分词的对象;

在所述n大于所述第二预设值的情况下,基于所述n个分词在所述目标数据库中进行搜索,输出第二目标对象,其中,所述第二目标对象为所述目标数据库中包括所述n个分词中的部分分词的对象。

可选地,所述第二目标对象包括第一子目标对象和第二子目标对象,所述基于所述n个分词在所述目标数据库中进行搜索,输出第二目标对象,包括:

在所述n小于第三预设值的情况下,基于所述n个分词在所述目标数据库中进行搜索,输出所述第一子目标对象,所述第一子目标对象为所述目标数据库中包括所述n个分词中的至少k个分词的对象;

在所述n大于或等于所述第三预设值的情况下,基于所述n个分词在所述目标数据库中进行搜索,输出所述第二子目标对象,所述第二子目标对象为所述目标数据库中包括所述n个分词中的至少m个分词的对象;

其中,所述第三预设值大于所述第二预设值,所述k大于目标系数与第一概率值的乘积,所述m大于所述目标系数与第二概率值的乘积,所述目标系数为基于所述n计算得到的系数,所述第一概率值大于所述第二概率值。

可选地,所述搜索结果包括至少两个目标对象,所述目标对象包括以下部分中的至少一项:标题部分、关键词部分和正文部分,每一个部分包括对应的权重值;

所述输出搜索结果,包括:

根据所述目标对象各部分所包含的分词数量和各部分的权重值,对所述至少两个目标对象分别进行评分,得到每个目标对象的评分值;

按照所述评分值的大小对所述至少两个目标对象进行排序,输出排序后的所述至少两个目标对象。

可选地,在所述搜索词的字符数量小于或等于所述第一预设值的情况下,所述基于所述目标搜索词在目标数据库中进行搜索,输出搜索结果,包括:

基于所述目标搜索词在所述目标数据库中进行搜索,输出第三目标对象,所述第三目标对象为所述目标数据库中,标题部分包括所述目标搜索词的对象。

可选地,在所述获取搜索词之前,所述方法还包括:

在用户登录搜索界面的情况下,获取所述用户的身份信息;

基于所述用户的身份信息,向用户推荐目标搜索结果,其中,所述目标搜索结果为所述目标数据库中,与所述用户的身份信息相匹配,且点击率最高的搜索结果。

可选地,在所述搜索词的字符数量小于或等于所述第一预设值的情况下,所述基于所述目标搜索词在目标数据库中进行搜索,输出搜索结果,包括:

基于所述目标搜索词,按照通配符的方法在所述目标数据库中进行搜索,输出搜索结果。

本发明实施例还提供一种电子设备,包括处理器,存储器,存储在存储器上并可在所述处理器上运行的计算机程序,该计算机程序被处理器执行时实现上述方法实施例的各个过程,且能达到相同的技术效果,为避免重复,这里不再赘述。

本发明实施例还提供一种计算机可读存储介质,计算机可读存储介质上存储有计算机程序,该计算机程序被处理器执行时实现上述方法实施例的各个过程,且能达到相同的技术效果,为避免重复,这里不再赘述。其中,所述的计算机可读存储介质,如只读存储器(read-onlymemory,简称rom)、随机存取存储器(randomaccessmemory,简称ram)、磁碟或者光盘等。

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

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

上面结合附图对本发明的实施例进行了描述,但是本发明并不局限于上述的具体实施方式,上述的具体实施方式仅仅是示意性的,而不是限制性的,本领域的普通技术人员在本发明的启示下,在不脱离本发明宗旨和权利要求所保护的范围情况下,还可做出很多形式,均属于本发明的保护之内。

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