具体实施方式
图1是本发明提供的基于多数据源的信息搜索方法流程图。
如图1所示,该方法包括:
步骤101,将信息搜索所基于的多个数据源划分为主数据源和次数据源。
本步骤中,可以根据信息搜索的应用场景,预先将信息搜索所基于的多个数据源划分为主数据源和次数据源,也可以在信息搜索的过程中,根据信息搜索的应用场景和/或查询词,将所述多个数据源划分为主数据源和次数据源。
步骤102,根据查询词,从各个主数据源和次数据源中查找目标数据。
本步骤中,可以分别独立地从各个主数据源和各个次数据源查找目标数据。本步骤中,也可以将所有主数据源的数据看作一个混合的整体,即将所有数据源的数据视为属于一个数据源,从所有主数据源的数据中查找目标数据,至于从数据源,则仍然分别独立地从各个从数据源中查找目标数据。
本步骤中,可以根据查询词,确定查找到的目标数据的相关性得分。
步骤103,根据从每个次数据源中查找到的目标数据,确定每个次数据源的数据入口。
本步骤中,对于每个次数据源,根据从次数据源中查找到的目标数据,确定该次数据源的数据入口具体可以包括:首先根据查询词确定从每个次数据源中查找到的各个目标数据的相关性得分,将相关性得分最高的目标数据确定为该个次数据源的数据入口。
步骤104,将从各个主数据源中查找到的目标数据、以及各个次数据源的数据入口进行混合排序,根据混合排序结果确定搜索结果。
图1所示方法中,可以通过训练每个次数据源的语言模型,根据每个次数据源的语言模型,从相应的次数据源中查找目标数据。
其中,在训练次数据源的语言模型时,鉴于现有技术中仅仅依据次数据源的所有数据来训练语言模型所带来的问题,即依据现有技术中的语言模型为目标数据所确定的得分不能真实地反映该目标数据的受关注度,本发明对语言模型的建立方法进行了改进。
具体地,本发明中,根据数据源的数据和该数据源的用户行为日志,建立该数据源的语言模型,通过该数据源的语言模型查找该数据源中与查询词对应的目标数据。其中的数据源可以是主数据源,也可以是次数据源。换言之,可以为主数据源建立语言模型,也可以为次数据源建立语言模型,在为主数据源和/或次数据源建立语言模型时,均利用该主数据源和/或次数据源自身的数据以及用户行为日志,以使得依据语言模型为目标数据所确定的得分能够真实地反映该目标数据的受关注度。
其中,依据数据源的数据和用户行为日志共同建立语言模型可以有很多种不同的方式,例如,将数据与用户行为日志按某种比例混合训练语言模型;再例如,利用数据与用户行为日志分别训练语言模型,再用公式对其得分进行汇总等。
其中的用户行为日志,包括用户对数据源中的数据进行的各种行为信息,例如,浏览数据源中的数据等。
图1所示方法中,当分别独立地从各个主数据源和各个次数据源中查找目标数据、且根据查询词确定查找到的各个目标数据的相关性得分时,由于各个主数据源和各个次数据源是相互独立地,因此,可能存在不同数据源的目标数据的相关性得分之间缺乏可比性的问题,例如,如果在第一主数据源中,大多数目标数据的相关性得分都在0.5分以上,而在第二主数据源中,只有少部分目标数据的相关性得分在0.5分以上,此时,如果将第一主数据源的目标数据和第二主数据源的目标数据直接根据相关性得分进行混合排序,将出现搜索结果中第一主数据源中的目标数据的数量远远大于第二主数据源中的目标数据的数量的问题。
因此,本发明提出,在对从各个不同的主数据源中查找到的目标数据、以及各个不同的次数据源的数据入口进行混合排序时,可以将不同主数据源中的目标数据的相关性得分映射到同一区间,根据映射结果确定各个主数据源的目标数据之间的排序结果,根据查询词确定每个次数据源的数据入口的相关性得分,根据次数据源数据入口的相关性得分,以及预定规则,将各个次数据源的数据入口与所述各个主数据源的目标数据之间的排序结果,进行混合排序。所述预定规则可以有多种,例如,将不符合查询词意图的次数据源数据入口删除,不参与混合排序,再例如,混合排序结果中主数据源的目标数据排序结果排在次数据源数据入口排序结果之前。
还可以根据查询词确定从主数据源中查找到的目标数据的相关性得分以及每个次数据源的数据入口的相关性得分,将不同主数据源中的目标数据的相关性得分、以及不同次数据源的数据入口的相关性得分,映射到同一区间,根据映射结果确定各个主数据源的目标数据、以及各个次数据源的数据入口之间的排序结果。
上述排序方案中,通过将相关性得分映射到同一区间,可以使得根据该排序结果所确定的搜索结果能够更加准确。
其中,所述映射可以采用多种方式,例如,采用曲线拟合的方式、或函数映射的方式等。
在根据混合排序结果确定出搜索结果之后,为了进一步提高信息搜索的准确性,还可以实时或定期或不定期地对搜索结果进行更新。
对搜索结果进行更新时,可以依据所有用户针对搜索结果的行为日志,调整混合排序结果,从而更新搜索结果。
进一步地,注意到利用所有用户针对搜索结果的行为日志、即利用全局用户日志调整混合排序结果时,由于全局用户中不同用户之间的差异性较大,因此对混合排序结果的调整不够精确,因此,本发明提出,根据信息搜索的应用场景和/或用户输入的查询词,将与该用户有相同信息需求的其他用户确定为该用户的相似用户,根据该用户的相似用户针对搜索结果的行为日志,调整混合排序结果,从而提高信息搜索的准确性。
图2是本发明提供的基于多数据源的信息搜索的详细流程图。
如图2所示,该流程包括:
步骤一、在各个主数据源中搜索目标数据,该步骤一包括步骤201~步骤203。
步骤二、在各个次数据源中搜索目标数据,并确定次数据源的数据入口,该步骤二包括步骤204~步骤207。
步骤三、对步骤一和步骤二的搜索结果进行混合排序,确定最终的搜索结果,并实时、定期或不定期地对最终的搜索结果进行更新,该步骤三包括步骤208~步骤212。
其中,步骤一与步骤二可以同步进行。
具体地,图2所示流程包括:
步骤201,在各个主数据源中搜索目标数据,并计算从每个主数据源中搜索到的目标数据的相关性得分。
步骤202,将从不同的主数据源搜索到的目标数据的相关性得分映射到同一区间。
步骤203,根据映射结果,对从不同的主数据源搜索到的目标数据进行排序。
步骤204,根据每个次数据源的数据和用户行为日志,为相应的次数据源(即该个次数据源)建立语言模型。
步骤205,根据查询词,通过每个次数据源的语言模型从相应的次数据源中查找目标数据,并计算目标数据的相关性得分,选取相关性得分最大的目标数据作为相应次数据源的数据入口。
步骤206,判断每个次数据源的数据入口的相关性得分是否大于预定的阈值,如果是,将该次数据源加入候选集,如果否,确定不在搜索结果中展示该次数据源。
步骤207,根据加入候选集的各个次数据源的数据入口的相关性得分,对各个次数据源的数据入口进行排序。
步骤208,根据步骤203的排序结果和步骤207的排序结果进行混合排序。
其中,步骤203和步骤207可以省略,则步骤208中,根据步骤202的映射结果、以及步骤206中确定出的候选集中各个次数据源的数据入口的相关性得分进行混合排序。
步骤209,判断是否有用户数据,如果是,执行步骤210,否则,获取所有用户的行为日志,执行步骤211。
步骤210,确定当前用户的相似用户,获取相似用户的行为日志。
步骤211,根据获取的用户行为日志,对混合排序结果进行更新。
步骤212,记录用户行为日志,返回步骤211。
根据上述方法,本发明还提供了相应的系统,具体请参见图3。
图3是本发明提供的一种基于多数据源的信息搜索系统组成示意图。
如图3所示,该系统包括主数据源搜索模块301、次数据源搜索模块302和混合排序模块303。
主数据源搜索模块301,用于根据查询词,从各个主数据源中查找目标数据。
次数据源搜索模块302,用于根据查询词,从各个次数据源中查找目标数据,根据从每个次数据源中查找到的目标数据,确定每个次数据源的数据入口。
混合排序模块303,用于将从各个主数据源中查找到的目标数据、以及各个次数据源的数据入口进行混合排序,根据混合排序结果确定搜索结果。
其中的次数据源搜索模块302,用于根据每个次数据源的数据和该个次数据源的用户行为日志,建立该个次数据源的语言模型,通过每个次数据源的语言模型查找该个次数据源中与查询词对应的目标数据。
其中的次数据源搜索模块302,还用于根据每个次数据源的语言模型,确定从该个次数据源中查找到的各个目标数据的相关性得分,将相关性得分最高的目标数据确定为该个次数据源的数据入口。
其中的混合排序模块303,用于根据查询词确定从主数据源中查找到的目标数据的相关性得分,将不同主数据源中的目标数据的相关性得分映射到同一区间,根据映射结果确定各个主数据源的目标数据之间的排序结果,根据查询词确定每个次数据源的数据入口的相关性得分,根据次数据源数据入口的相关性得分,以及预定规则,将各个次数据源的数据入口与所述各个主数据源的目标数据之间的排序结果,进行混合排序。
混合排序模块303,可以用于根据查询词确定从主数据源中查找到的目标数据的相关性得分以及每个次数据源的数据入口的相关性得分,将不同主数据源中的目标数据的相关性得分、以及不同次数据源的数据入口的相关性得分,映射到同一区间,根据映射结果确定各个主数据源的目标数据、以及各个次数据源的数据入口之间的排序结果。
图3所示信息搜索系统,还可以包括排序结果调整模块。
所述排序结果调整模块,可以用于根据用户针对搜索结果的行为日志,调整混合排序结果。
所述排序结果调整模块,具体可以用于根据信息搜索的应用场景和/或用户输入的查询词,将与该用户有相同信息需求的其他用户确定为该用户的相似用户,根据该用户的相似用户针对搜索结果的行为日志,调整混合排序结果。
可见,本发明提供的方法和系统,主要涉及以下几个方面:
第一方面,提出了一种结合了多数据源入口与多数据源数据的混合接入模式,能够适应社区搜索等信息搜索领域的需求。
对于很多搜索引擎,特别是基于社区的搜索平台,可以将数据源分为两类,第一类是均可以作为主数据的主数据源,对于所有这类主数据源,将其各自的数据看成平等的数据进行混合并查找目标数据,将查找到的目标数据显示在搜索结果中;第二类数据源即次数据源,搜索平台仅在搜索到的目标数据满足预定条件时,在搜索结果中显示该次数据源的数据入口。
第二方面,为了提高信息搜索的准确性,根据数据源的数据和用户行为日志共同建立语言模型。
对于数据入口类的次数据源,本发明采用一种根据数据源数据与该数据源的独立用户行为日志建立语言模型的方法,对该数据源中查找到的目标数据进行排序。
由于次数据源一般都有自己独立的应用场景,因此存在自己独有的、可查询的用户行为日志。在考虑数据源自身数据的同时,本发明同时使用该数据源的用户行为日志,共同建立语言模型。
需要说明的是,共同建立语言模型可以有很多种不同的方式,如将数据与用户行为日志按某种比例混合训练语言模型;或利用数据与用户行为日志分别训练语言模型,再用公式对其得分进行汇总等。最终,该方法对每个数据源建立一个语言模型。并针对不同的数据源设置阈值。当用户输入一个查询词后,该查询词将被输入至各个语言模型并计算相关性得分。对于每个数据源,若得分大于其阈值,则展现该数据源的入口。所有被展现的数据源入口按照其相关性得分大小排序。
第三方面,对来自不同主数据源的目标数据的相关性得分映射到同一区间内,即对来自不同主数据源的目标数据的相关性得分进行规整,使其具有可比性。
对于可同等看待的主数据源,本发明将采用根据相关性得分进行规整的排序方式。对于不同数据源所得相关性得分进行规整,即映射到同一区间,使得得分初步可比,从而得到数据源混合的初排序。这里的规整方式可以但不仅限于以下方法:在计算每个数据源相关性时进行规整;或在各个数据源计算相关性后,用公式或模型进行统一规整等。
第四方面,本发明还提出利用全局用户行为日志对搜索结果进行更新,特别地,为了进一步提高混合排序的精度,提出根据相似用户的行为日志对搜索结果进行更新。
本发明可以通过用户的行为日志动态调整排序结果。对于以入口作为接入方式的次数据源,利用其在搜索结果中的表现动态调整其相对位置。需要说明的是,所述表现可以有很多衡量标准,例如,该数据源入口的点击率、点击数等。
同时,用户行为日志也可以用于修正最终的总体排序结果,利用每一条搜索结果数据的表现,对其进行调整。这个更新的过程既可以是实时的,也可以定期进行。
另,本发明需要强调的是:当搜索引擎可以得到用户的信息(如用户的登录信息、社区搜索信息等),可以采用相似用户的日志对搜索结果进行修正。
由于用户之间的差异性很大,利用全局的用户行为日志进行修正有着一定的局限性,因此,本发明提出一种基于相似用户日志的修正方法。相似的标准及相似用户的选取根据搜索引擎的应用场景可以有很多种选择,例如,两个用户的地理距离可以作为基于位置(LBS)搜索引擎中的用户相似标准,购买相同商品的用户可以作为网上购物搜索引擎中的用户相似标准。因此,在某一用户输入某一查询词后,搜索引擎将使用该用户的相似用户的所有行为日志对搜索结果进行修正。
以上所述仅为本发明的较佳实施例而已,并不用以限制本发明,凡在本发明的精神和原则之内,所做的任何修改、等同替换、改进等,均应包含在本发明保护的范围之内。