具体实施方式
下面将结合本发明实施例中的附图,对本发明实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例仅仅是本发明一部分实施例,而不是全部的实施例。基于本发明中的实施例,本领域普通技术人员在没有作出创造性劳动前提下所获得的所有其他实施例,都属于本发明保护的范围。
本发明实施例提供的方案中,搜索装置可以基于词匹配以及词与词之间的语义匹配算法,计算待搜索信息的所有关联文档的相关度,并根据该相关度进行排序和显示,使得用户可以从显示的搜索结果中快速获得相关度较高的关联文档,满足自己的搜索需求,提高搜索效率。
其中,所述待搜索信息可以为用户输入的搜索关键词句,其可以用query(查询)表示。所述关联文档可以为:基于用户输入的搜索关键词句,利用现有的网络搜索技术获得的搜索结果中包含的文档,其可以用document(文档)表示。
所述词匹配算法是指搜索过程基于词进行匹配,其可以为:BM25算法、proximity等算法,除特别说明外,本发明实施例以BM25算法为例进行说明。所述语义匹配算法是指搜索过程基于词与词之间的语义关系进行匹配,也即,搜索过程基于词与词之间的互信息进行匹配。所谓MI(Mutual Information,互信息),是对两个随机变量的关联程度的描述,在文本处理中,MI用来衡量两个词的相关度,两个词的MI越大,表示该两个词的关联程度越强。
下面将结合附图1-附图5,对本发明实施例提供的搜索方法进行详细介绍。
请参见图1,为本发明提供的搜索方法的一个实施例的流程图;该方法包括:
S101,获取待搜索信息的关联文档。本步骤可以参照现有技术,在此不赘述。
S102,基于词匹配算法及语义匹配算法,计算获取到的每一个关联文档与所述待搜索信息的相关度。
本步骤中,每一个关联文档与待搜索信息的相关度的评分可以由两部分组成,一部分是基于词匹配算法获得的关联评分,另一部分是基于语义匹配算法获得的关联评分。实际应用中,可以根据具体情况,预先设置两部分关联评分的权重,使得加权后的两部分关联评分所组成的相关度评分更能准确体现关联文档与待搜索信息的关联程度。
S103,根据计算得到的相关度对获取到的关联文档进行排序处理,并显示排序结果。
本步骤中,可以按照每个关联文档与待搜索信息的相关度评分由高至低的顺序,对搜索得到的所有关联文档进行排序和显示,使得显示在前的始终为与待搜索信息较相关的关联文档,从而使得用户可以从显示的搜索结果中快速获得相关度较高的关联文档,满足自己的搜索需求,提高搜索效率。可以理解的是,本步骤也可以采用其他顺序进行排序处理,例如按照相关度评分由低至高的顺序,或者设置一部分按照相关度评分由低至高的顺序,一部分按照相关度评分由高至低的顺序,等等。
请参见图2,为图1所示步骤S102的具体流程图;该步骤S102包括:
S211,对所述待搜索信息进行向量化处理,获得m个向量ti。
本步骤中,对待搜索信息进行向量化处理,即是利用分词技术,对待搜索信息进行分词处理,将待搜索信息分割成m个词组成,可以表示为t1至tm,其中,m和i均为正整数,且1≤i≤m。
S212,对获取到的每一个关联文档进行向量化处理,获得每一个关联文档所对应的n个向量dj。
本步骤中,对获取到的所有关联文档中的每一个文档进行向量化处理,即是利用分词技术,对每一个关联文档进行分词处理,将该关联文档分割成n个词组成,可以表示为d1至dn,其中,n和j均为正整数,且1≤j≤n。
需要说明的是,步骤S211与步骤S212在时序上不分先后,例如也可以先执行步骤S212,再执行步骤S211。步骤S211-步骤S212中的向量化处理过程可以参照现有技术,在此不赘述。
S213,基于词匹配算法,计算得到每一个关联文档与所述待搜索信息的关联评分S1。
本步骤中,词匹配算法的公式可以为:
其中,参数k1、k3、k、b为调节因子,可以起到平滑数据的作用;具体实现中,参数k1、k3、k、b为常数,其具体取值可以根据实际情况或经验值由用户进行设定;
qtfi为第i个向量ti在所述待搜索信息中的词频,即向量ti在所述待搜索信息中出现的次数;
tfi为向量ti在所述关联文档中的词频,即向量ti在相应的关联文档中出现的次数;
l为所述关联文档的长度,根据步骤S212中的向量化处理结果,l的值为n;
avdl为所有关联文档的平均长度;
wi为向量ti的权重,wi一般为IDF(Inverse document frequency,逆文档频率)值,其可以通过以下公式计算得到,该计算公式如下:
其中,H为所有关联文档的个数,htfi为向量ti在获取到的所有关联文档中的词频。
本发明实施例中,在搜索过程执行之前,可以将网络中各个向量(词)的权重(IDF值)预先计算出来并进行存储,例如可以采用表的形式存储各向量的权重。请一并参见图3,为本发明提供的IDF表的示意图,图3所示例子中的IDF表中存储了各向量的权重,可以理解的是,图3所示例子的IDF表以及表中各项均为举例。
步骤S213中,可直接从预设的IDF表中读取到待搜索信息中的各向量的权重,并根据步骤S211和步骤S212所得到的数据,计算获得词匹配算法所需的各参数,代入上述词匹配算法的计算公式中计算,得到所述关联文档与所述待搜索信息的关联评分S1。
S214,基于语义匹配算法,计算得到每一个关联文档与所述待搜索信息的关联评分S2。
本步骤中,所述语义匹配算法的公式可以为:
其中,参数k1、k3、k、b为调节因子,可以起到平滑数据的作用;具体实现中,参数k1、k3、k、b为常数,其具体取值可以根据实际情况或经验值由用户进行设定;
l为相应关联文档的长度,根据步骤S212中的向量化处理结果,l的值为n;
avdl为获取到的所有关联文档的平均长度;
mi(ti,dj)为向量ti与向量dj的互信息,实际应用中,向量ti与向量dj的互信息的计算公式可以为:
其中,
c(t
i,d
j)表示在网络中,向量t
i与向量d
j同时出现在同一篇文档中的次数;
本发明实施例中,在搜索过程执行之前,可以将网络中各个向量(词)与各个向量之间的互信息预先计算出来并进行存储,例如可以采用表的形式存储各向量之间的互信息。请一并参见图4,为本发明提供的MI表的示意图;图4所示例子中的MI表中存储了各向量之间的互信息,可以理解的是,图4所示例子的MI表以及表中各项均为举例。
步骤S214中,可直接从预设的MI表中读取到所述待搜索信息中的各向量与所述关联文档的各向量的互信息,并根据步骤S211和步骤S212所得到的数据,计算获得语义匹配算法所需的各参数,代入上述语义匹配算法的计算公式中计算,得到所述关联文档与所述待搜索信息的关联评分S2。
需要说明的是,步骤S213与步骤S214在时序上不分先后,例如也可以先执行步骤S214,再执行步骤S213。
S215,根据公式S=α×S1+(1-α)×S2,计算得到每一个关联文档与所述待搜索信息的相关度S。
其中,α为预设的权重,且0<α<1。实际应用中,可以根据具体情况设置α的值,使得加权后的S1和S2所组成的相关度评分S更能准确体现该关联文档与待搜索信息的关联程度。需要说明的是,S的值越大,表明该关联文档与所述待搜索信息的关联程度越强。
请参见图5,为图1所示步骤S103的具体流程图;该步骤S103包括:
S311,根据每一个关联文档与所述待搜索信息的相关度,按照相关度从高至低的顺序对所有关联文档进行排序。
S312,显示排序后的所有关联文档。
经步骤S311排序处理之后,各关联文档按照相关度由高至低的顺序进行排列,步骤S312则显示按照相关度由高至低的顺序排列的关联文档,使得用户可以从显示的搜索结果中快速获得相关度较高的关联文档,满足自己的搜索需求,提高搜索效率。
下面将结合一个具体示例,详细阐述上述图1-图5所示例子中的搜索方法。
假设用户想要查询关于XX牌手机的一些资讯介绍,可以在搜索引擎中输入的待搜索信息为:“XX牌手机性价比”;经步骤S101搜索后,总共获得三个关联文档,包括:
关联文档1:XX牌的手机性价比都很不错的,而且XX牌手机很耐用的;
关联文档2:我是XX牌手机的忠实玩友,喜欢玩XX牌手机,刷机呀,下载程序呀,游戏呀各方面,觉得XX牌手机的各种软件都比较多比较全,所以一直玩到现在;
关联文档3:符合你要求的机型非常多,给你几个参考:1、直板商务新机A,2.4寸全键盘,金属机身,500万像素,带WIFI,全面支持导航系统;2、全触摸娱乐街机B,3.2的1600万色屏,支持WIFI,320万像素,支持导航系统且带车载架;3、传统直板机C,功能同B,但更薄、轻,2.2寸屏,500万像素。
步骤S211对待搜索信息进行向量化处理,得到获得m个向量ti,具体如下:XX牌\手机\性价比。其中,m=3,t1为“XX牌”,t2为“手机”,t3为“性价比”。
步骤S212对任一个关联文档进行向量化处理,以关联文档1为例,经步骤S212的向量化处理后,获得n个向量dj,具体如下:XX牌\的\手机\性价比\都\很\不错\的\,\而且\XX牌\手机\很\耐用\的。其中,n=15,d1为“XX牌”,d2为“的”,d3为“手机”,d4为“性价比”,d5为“都”,d6为“很”,d7为“不错”,d8为“的”,d9为“,”,d10为“而且”,d11为“XX牌”,d12为“手机”,d13为“很”,d14为“耐用”,d15为“的”。
步骤S213中,可分别统计出向量ti在所述待搜索信息中的词频qtfi分别为:t1为1,t2为1,t3为1。向量ti在所述关联文档中的词频tfi分别为:t1为2,t2为2,t3为1。l为关联文档1的长度15。avdl为三个关联文档的平均长度。可以从图3所示的预设的IDF表中读取待搜索信息中的各向量的权重分别为:w1为8.435292,w2为5.256969,w3为8.952069。基于词匹配算法的计算公式,计算得到所述关联文档与所述待搜索信息的关联评分S1。
步骤S214中,可以从图4所示的预设的MI表中读取到所述待搜索信息中的各向量与所述关联文档的各向量的互信息。基于语义匹配算法的计算公式,计算得到所述关联文档与所述待搜索信息的关联评分S2。
步骤S215中,可以根据实际需要设定α为,例如α为0.4,从而利用α对S1和S2加权求和,计算得到关联文档1与所述待搜索信息的相关度S为1.759。
重复上述步骤S211-步骤S215,分别获得关联文档2与所述待搜索信息的相关度S为4.509;关联文档3与所述待搜索信息的相关度S为10.403。
步骤S311按照相关度由高至低的顺序对关联文档1-3进行排序,形成“关联文档3-关联文档2-关联文档1”的排列。步骤S312向用户显示步骤S311所获得的排列。
经过上述各步骤的处理,用户可以从显示的搜索结果中最首位获得最相关的关联文档3,无需再进行查找即可满足自己的实际的搜索需求,提高了搜索效率。
本发明实施例结合词匹配算法及语义匹配算法,综合考虑词与词的匹配,以及词与词之间的语义关系的匹配,获得每一个关联文档与待搜索信息之间较为准确的相关度,基于该相关度进行排序并显示排序结果,可以为用户提供理想的搜索结果,使得用户可以从显示的搜索结果中快速获得相关度较高的关联文档,满足自己实际的搜索需求,提高了搜索效率,从而提高了用户的满意度。
对应于上述附图1-附图5任一实施例所述的搜索方法,下面将结合附图6-附图7,对本发明实施例提供的搜索装置进行详细介绍,下述实施例的装置可以应用于上述方法实施例中。
请参见图6,为本发明提供的搜索装置的一个实施例的结构示意图;该装置包括:
搜索模块101,用于获取待搜索信息的关联文档。搜索模块101的具体搜索过程可以参照现有技术,在此不赘述。
计算模块102,用于基于词匹配算法及语义匹配算法,计算所述搜索模块101获得的每一个关联文档与所述待搜索信息的相关度。
本实施例中,每一个关联文档与待搜索信息的相关度的评分可以由两部分组成,一部分是基于词匹配算法获得的关联评分,另一部分是基于语义匹配算法获得的关联评分。实际应用中,可以根据具体情况,预先设置两部分关联评分的权重,使得加权后的两部分关联评分所组成的相关度评分更能准确体现关联文档与待搜索信息的关联程度。
排序模块103,用于根据所述计算模块102计算得到的相关度对所述搜索模块获得的关联文档进行排序。
排序模块103可以按照计算模块102计算获得的每个关联文档与待搜索信息的相关度评分由高至低的顺序,对搜索得到的所有关联文档进行排序,也可以采用其他顺序进行排序处理,例如按照相关度评分由低至高的顺序,或者设置一部分按照相关度评分由低至高的顺序,一部分按照相关度评分由高至低的顺序,等等。
显示模块104,用于显示所述排序模块103获得的排序结果。
显示模块104按照排序模块103获得的排序结果进行显示,使得显示在前的始终为与待搜索信息较相关的关联文档,从而使得用户可以从显示的搜索结果中快速获得相关度较高的关联文档,满足自己的搜索需求,提高搜索效率。
请参见图7,为图6所示的计算模块的实施例的结构示意图,该计算模块102包括:
第一向量化处理单元211,用于对所述待搜索信息进行向量化处理,获得m个向量ti。
第一向量化处理单元211对待搜索信息进行向量化处理,即是利用分词技术,对待搜索信息进行分词处理,将待搜索信息分割成m个词组成,可以表示为t1至tm,其中,m和i均为正整数,且1≤i≤m。第一向量化处理单元211的具体处理过程可以参照现有技术,在此不赘述。
第二向量化处理单元212,用于对所述搜索模块获得的每一个关联文档进行向量化处理,获得每一个关联文档所对应的n个向量dj。
第二向量化处理单元212对关联文档进行向量化处理,即是利用分词技术,对关联文档进行分词处理,将该关联文档分割成n个词组成,可以表示为d1至dn,其中,n和j均为正整数,且1≤j≤n。第二向量化处理单元212的具体处理过程可以参照现有技术,在此不赘述。
词匹配计算单元213,用于基于词匹配算法,计算得到所述第二向量化处理单元212处理后的关联文档与所述待搜索信息的关联评分S1。
词匹配计算单元213可直接从图3所示例子中的预设的IDF表中读取到待搜索信息中的各向量的权重,并根据第一向量化处理单元211和第二向量化处理单元212所得到的数据,计算获得词匹配算法所需的各参数,基于词匹配算法的计算公式,计算得到所述关联文档与所述待搜索信息的关联评分S1。
语义匹配计算单元214,用于基于语义匹配算法,计算得到所述第二向量化处理单元212处理后的关联文档与所述待搜索信息的关联评分S2。
语义匹配计算单元214可直接从图4所示例子中的预设的MI表中读取到所述待搜索信息中的各向量与所述关联文档的各向量的互信息,并根据第一向量化处理单元211和第二向量化处理单元212所得到的数据,计算获得语义匹配算法所需的各参数,基于语义匹配算法的计算公式,计算得到所述关联文档与所述待搜索信息的关联评分S2。
相关度计算单元215,用于根据公式S=α×S1+(1-α)×S2,计算得到所述关联文档与所述待搜索信息的相关度S,其中,α为预设的权重,且0<α<1。
其中,α为预设的权重,且0<α<1。实际应用中,可以根据具体情况设置α的值,使得加权后的S1和S2所组成的相关度评分S更能准确体现该关联文档与待搜索信息的关联程度。需要说明的是,S的值越大,表明该关联文档与所述待搜索信息的关联程度越强。
可以理解的是,第二向量化处理单元212、词匹配计算单元213、语义匹配计算单元214以及相关度计算单元215可能需要重复工作,直至获得所有关联文档与待搜索信息的相关度为止。之后,所述排序模块103可以根据每个关联文档与所述待搜索信息的相关度,按照相关度从高至低的顺序对所述搜索模块获得的所有关联文档进行排序;所述显示模块104则显示所述排序模块103排序处理后的所有关联文档。
需要说明的是,本发明实施例所述的搜索装置可以为:搜索引擎、浏览器以及具备搜索功能的终端。
通过上述实施例的描述,本发明实施例结合词匹配算法及语义匹配算法,综合考虑词与词的匹配,以及词与词之间的语义关系的匹配,获得每一个关联文档与待搜索信息之间较为准确的相关度,基于该相关度进行排序并显示排序结果,可以为用户提供理想的搜索结果,使得用户可以从显示的搜索结果中快速获得相关度较高的关联文档,满足自己实际的搜索需求,提高了搜索效率,从而提高了用户的满意度。
本领域普通技术人员可以理解实现上述实施例方法中的全部或部分流程,是可以通过计算机程序来指令相关的硬件来完成,所述的程序可存储于一计算机可读取存储介质中,该程序在执行时,可包括如上述各方法的实施例的流程。其中,所述的存储介质可为磁碟、光盘、只读存储记忆体(Read-Only Memory,ROM)或随机存储记忆体(Random Access Memory,RAM)等。
以上所揭露的仅为本发明一种较佳实施例而已,当然不能以此来限定本发明之权利范围,本领域普通技术人员可以理解实现上述实施例的全部或部分流程,并依本发明权利要求所作的等同变化,仍属于发明所涵盖的范围。