查询目标匹配方法及装置与流程

文档序号:11134010阅读:362来源:国知局
查询目标匹配方法及装置与制造工艺

本发明涉及数据处理技术领域,尤其涉及一种查询目标匹配方法及装置。



背景技术:

一般情况下,对海量数据的搜索查询,借助于计算机显得尤为重要。在自然语言处理技术中,由于中文自身的语言特点,中文处理要比其他西文处理复杂得多。

现有技术中,针对用户输入的查询词,通常是计算查询词与待推荐内容的相关短文本(例如文件的名称等)二者之间的语义相似度,按照语义相似度由高到低的顺序将与短文本相关的内容推荐给用户,但是由于计算语义相似度的准确性有限,常常导致推荐给用户的内容并不是用户想得到的内容

举例来说,当用户输入“英雄”这个查询词的时候,通常是想获得李连杰主演的电影《英雄》,假设有两个短文本:1、英雄联盟2、李连杰电影英雄国语完整版,一般来说,从现有技术的机械的文本匹配来看,第一个短文本相比于第二个短文本与查询词更相似,但是从语义理解来看,第二个短文本相比于第一个短文本与用户的查询意图匹配度可能更高一些。再举例来说,用户通常会通过输入“是否”这个词来获得一首名字为《是否》的歌曲的相关视频,假设有两个短文本:1、你是否爱我?2、电影《搭错车》插曲-是否,机械的文本匹配很难分辨出哪一个与短文本相关的内容更适合推荐给用户。



技术实现要素:

技术问题

有鉴于此,本发明提出一种查询目标匹配方法及装置,能够更为准确地将与用户输入的查询词相匹配的查询目标推荐给用户,以提高用户的查询效率。

解决方案

一方面,提出了一种查询目标匹配方法,包括:获取针对相同查询目标的关联查询词;对所述关联查询词进行分词操作,以获得词;计算各所述词的词向量;根据所述词向量,确定当前查询词中各词的词向量,以及与待匹配的查询目标相对应的文本中包含的词的词向量;根据当前查询词中各词的词向量以及与待匹配的查询目标相对应的文本中包含的词的词向量,确定当前查询词与所述文本的语义相似度;根据所确定的语义相似度,从所述待匹配的查询目标中确定与所述当前查询词相匹配的查询目标。

又一方面,提出了一种查询目标匹配装置,包括:获取单元,获取针对相同查询目标的关联查询词;分词单元,对所述关联查询词进行分词操作,以获得词;计算单元,计算各所述词的词向量;第一确定单元,根据所述词向量,确定当前查询词中各词的词向量,以及与待匹配的查询目标相对应的文本中包含的词的词向量;第二确定单元,根据当前查询词中各词的词向量,以及与待匹配的查询目标相对应的文本中包含的词的词向量,确定当前查询词与所述文本的语义相似度;第三确定单元,根据所确定的语义相似度,从所述待匹配的查询目标中确定与所述当前查询词相匹配的查询目标。

有益效果

根据本发明的各个方面,通过对获取的针对相同查询目标的关联查询词进行分词操作以获得词,并计算各所述词的词向量,再根据所确定的词向量来确定当前查询词中各词的词向量以及待匹配的查询目标相应的文本中包含的词的词向量,并确定当前查询词与所述文本的语义相似度,进而从所述待匹配的查询目标中确定与所述当前查询词相匹配的查询目标。根据该方法和装置,使得词向量的确定考虑到了针对相同查询目标的查询词之间的关联性,能够使得到的当前查询词和与待匹配的查询目标相对应的文本的语义相似度的准确性更高,便于更准确地将与所述当前查询词相匹配的查询目标推荐给用户,提高匹配度,从而提高用户的查询效率。

根据下面参考附图对示例性实施例的详细说明,本发明的其它特征及方面将变得清楚。

附图说明

包含在说明书中并且构成说明书的一部分的附图与说明书一起示出了本发明的示例性实施例、特征和方面,并且用于解释本发明的原理。

图1示出根据本发明一实施例的查询目标匹配方法的流程图。

图2示出根据本发明一实施例选择查询词中的各词以及位于查询词中各词附近的词的方法示意图。

图3示出根据本发明一实施例的查询目标匹配装置的结构图。

图4示出根据本发明一实施例的查询目标匹配设备的结构图。

具体实施方式

以下将参考附图详细说明本发明的各种示例性实施例、特征和方面。附图中相同的附图标记表示功能相同或相似的元件。尽管在附图中示出了实施例的各种方面,但是除非特别指出,不必按比例绘制附图。

在这里专用的词“示例性”意为“用作例子、实施例或说明性”。这里作为“示例性”所说明的任何实施例不必解释为优于或好于其它实施例。

另外,为了更好的说明本发明,在下文的具体实施方式中给出了众多的具体细节。本领域技术人员应当理解,没有某些具体细节,本发明同样可以实施。在一些实例中,对于本领域技术人员熟知的方法、手段、元件和电路未作详细描述,以便于凸显本发明的主旨。

实施例1

图1示出根据本发明一实施例的查询目标匹配方法的流程图。如图1所示,该方法主要包括:

步骤S101,获取针对相同查询目标的关联查询词;

步骤S102,对所述关联查询词进行分词操作,以获得词;

步骤S103,计算各所述词的词向量;

步骤S104,根据所述词向量,确定当前查询词中各词的词向量,以及与待匹配的查询目标相对应的文本中包含的词的词向量;

步骤S105,根据当前查询词中各词的词向量以及与待匹配的查询目标相对应的文本中包含的词的词向量,确定当前查询词与所述文本的语义相似度;

步骤S106,根据所确定的语义相似度,从所述待匹配的查询目标中确定与所述当前查询词相匹配的查询目标。

根据该实施例的方法,通过对获取的针对相同查询目标的关联查询词进行分词操作以获得词,并计算各所述词的词向量,再根据所确定的词向量来确定当前查询词中各词的词向量以及待匹配的查询目标相应的文本中包含的词的词向量,并确定当前查询词与所述文本的语义相似度,进而从所述待匹配的查询目标中确定与所述当前查询词相匹配的查询目标。根据本实施例,使得词向量的确定考虑到了针对相同查询目标的查询词之间的关联性,能够使得到的当前查询词和与待匹配的查询目标相对应的文本的语义相似度的准确性更高,便于更准确地将与所述当前查询词相匹配的查询目标推荐给用户,提高匹配度,从而提高用户的查询效率。

以下结合一些具体示例,来对本实施例的各种可能的具体实现方式进行说明,这些示例是示例性和说明性的,并非意在限制本发明。

在一个示例中,获取针对相同查询目标的关联查询词可以包括:获取相同用户连续输入的查询词,作为所述关联查询词。具体来说,相同用户在针对某一查询目标使用搜索引擎进行搜索的情况下,通常可能会包括不止一次的搜索行为,尤其是在用户对搜索结果不满意的情况下,用户可能会通过改变查询词来查找想要得到的内容,而这种相同用户连续输入不同查询词的搜索行为实际上是人为建立了不同查询词之间的关联关系。例如,某一用户希望得到歌曲《是否》的相关视频,第一次通过输入“是否”来进行搜索,但是对于搜索引擎的推荐,用户并没有得到满意的结果,该用户第二次通过输入“电影插曲是否”来进行再次搜索,且得到了满意的结果。基于该用户的上述行为,可以建立“是否”与“电影插曲是否”之间的关联关系,“是否电影插曲是否”可以作为关联查询词。在一个示例中,可统计用户输入第一个查询词之后的预定时间(例如5到10分钟)内输入的查询词,作为用户连续输入的查询词,并由此形成关联查询词。

在一个示例中,获取针对相同查询目标的关联查询词还可以包括:获取不同用户针对相同的查询目标输入的查询词,作为所述关联查询词。具体来说,通常,不同用户可能会针对相同的查询目标采用相同或者不同的查询词进行搜索,进而来查找想要得到的内容,也可以将不同用户针对相同的查询目标采用不同的查询词进行搜索的搜索行为视为人为建立了不同查询词之间的关联关系。例如,用户A和用户B的查询目标都是歌曲《是否》的相关视频,用户A采用“电影插曲是否”来进行搜索,得到了满意的结果,用户B采用“搭错车插曲是否”来进行搜索,同样得到了满意的结果。基于用户A的上述行为,以及用户B的上述行为,可以建立“电影插曲是否”与“搭错车插曲是否”之间的关联关系,“电影插曲是否搭错车插曲是否”可以作为关联查询词。在一个示例中,可以统计用户输入的查询词以及用户最终点击的查询目标之间的关联关系,从而确定关联查询词。

举例来说,可以利用搜索引擎的查询日志来确定关联查询词,本领域技术人员还可以通过其他途径,例如网页内容、新闻报道、视频标题等来获取针对相同查询目标的关联查询词,本发明对此不作限制。

在一个示例中,可以将每条关联查询词作为一条语料存入语料库,以便对关联查询词进行后续处理。其中,可以针对每个查询目标建立单独的语料库。

在一个示例中,可以通过例如语料库来记录一段时间内(例如一年)统计得到的上述关联查询词,以供后续处理。

在一个示例中,可以对获得的关联查询词进行分词操作,以获得词。可以采用本领域技术人员已知的分词方法来实现分词操作。举例来说,可以采用前述方法获取针对歌曲《是否》的相关视频的关联查询词,关联查询词例如是“是否电影插曲是否电影搭错车”等,可以采用本领域技术人员已知的分词方法对“是否电影插曲是否电影搭错车”进行分词操作,获得“是否、电影、插曲、是否、电影、搭错车”等词。以便于后续计算词的词向量,并根据相关的词向量确定当前查询词与文本的语义相似度,进而确定与当前查询词相匹配的查询目标。后文将详细进行描述。

在一个示例中,还可以记录获得的关联查询词经分词操作后每个词出现的次数。仍以上一示例中的例子为例,可以对关联查询词“是否电影插曲是否电影搭错车”进行分词操作,并记录“是否”出现的次数为2,“电影”出现的次数为2,“插曲”出现的次数为1,“搭错车”出现的次数为1。

词向量的计算可以采用本领域技术人员已知的任何方法来实现,例如,在一个示例中,可以根据word2vec模型计算关联查询词经分词操作后获得的词的词向量。word2vec模型一种是通过神经网络机器学习算法来训练N-gram语言,并在训练过程中计算词所对应的向量的方法。基于前述关联查询词及分词操作后获得的词,利用word2vec模型可以通过计算得到各所述词的词向量。

本实施例是针对“关联查询词”进行分词并计算词向量,因此,所计算的词向量能够体现针对相同查询目标的查询词之间的关联性,后续再基于这些词向量来进行语义相似度的确定,就能使得所确定的语义相似度准确性更高,提高查询词与查询目标之间的匹配度。

在一个示例中,可以根据通过上述关联查询词确定的词向量,确定当前查询词中各词的词向量,以及与待匹配的查询目标相对应的文本中包含的词的词向量。例如,如果当前查询词为“是否”,查询目标(例如《是否》这首歌的MV)的标题(即文本)为“电影插曲是否”,可以将前文得到的关联查询词“是否电影插曲是否电影搭错车”中相应的词“是否“的词向量,作为当前查询词“是否”的词向量,将“电影”、“插曲”、“是否”的词向量,作为文本“电影插曲是否”分词后得到的词“电影”、“插曲”、“是否”的词向量,以用于语义相似度的计算。举例来说,当用户输入当前查询词“是否”时,可以通过例如文本匹配的手段将其匹配到包含该当前查询词中的词的语料库,再根据该语料库中的关联查询词中各词的词向量,确定该当前查询词的各词的词向量。而文本中各词的词向量,可以事先根据各个语料库中关联查询词中各词的词向量进行确定。

在一个示例中,步骤S105的一种示例性的具体实现方式如下:在文本中,选择当前查询词中的各词以及位于该当前查询词中各词附近的词,根据当前查询词中各词的词向量,以及文本中所选择的词的词向量,确定当前查询词与文本的语义相似度。

在一个示例中,在文本中,选择所述当前查询词中的各词以及位于该当前查询词中各词附近的词可以采用如下方式进行选择,例如,查询词为Q=<a,f>,文本为S=<a,b,d,e,f,c,h,i,j,d>,在文本S中选择查询词Q中的各词以及位于查询词Q中各词附近的词,可以是选择a和f以及a和f附近的词,比如a,b,e,f,c,如图2所示。再例如,查询词为Q=<b,f>,文本为S=<a,b,d,e,f,c,h,i,j,d>,则在文本S中所选择的词可以是a,b,d,e,f,c。其中,“附近”可以是根据需要选择的附近预定数量的词(例如左右各1-3个),本发明对此不做限制。

通过选择文本中当前查询词中的各词以及位于该当前查询词中各词附近的词,相当于只选择了文本中与当前查询词关联性最高的词,排除了文本中与当前查询词关联性不高的一部分词,由此可以减少后续语义相似度计算的计算量,提高计算效率,有利于针对较长文本的计算,同时也能够排除不相关词的干扰,提高计算精度,真正反映当前查询词和文本之间在语义上的相似度。

在一个示例中,可以计算当前查询词中包含的全部词的词向量的加权和,作为第一加权向量;计算文本中所选择的词的词向量的加权和,作为第二加权向量;计算第一加权向量和第二加权向量的夹角的余弦值,作为当前查询词与文本的语义相似度。

举例来说,针对某一查询目标,当前查询词为Q=<q1,q2,…qi,…qm>,与待匹配的查询目标(例如多个待匹配的视频中的一个)相对应的文本(例如视频的标题、简要描述等)为S=<s1,s2,…sj,…sn>,其中,Q为当前查询词;qi为查询词经分词操作后获得的第i个词,m为当前查询词Q中词的总个数;S为与待匹配的查询目标相对应的文本;sj为所述文本经分词操作后获得的第j个词,n为文本S中词的总个数,i和j为词的序数,文本中的词可以包括查询词中的所有词或者一部分词。可计算Q中包含的全部词q1,q2,…qi,…qm的词向量的加权和,作为第一加权和vec(Q),计算S中如上文所选择的词的词向量的加权和,作为第二加权和vec(S),计算第一加权向量和第二加权向量的夹角的余弦值,作为当前查询词与所述文本的语义相似度。

本领域技术人员可以根据需要或者统计经验来确定上述求加权和中使用的加权系数,以下给出一种确定加权系数的示例性方式。

在一个示例中,可以根据以下公式(1),确定针对当前查询词Q中的词qi的加权系数:

其中,idf(qi)为当前查询词Q中的词qi的加权系数;DOC_NUM为文本的总数量;为词qi在所述关联查询词中出现的次数。

根据以下公式(2),确定所述第一加权向量vec(Q):

也就是对qi进行加权求和,其中idf(qi)已利用公式(1)计算获得,qi为前述计算得到的词qi的词向量。

根据以下公式(3),确定针对文本S中所选择的词sj的加权系数:

其中,idf(sj)为文本S中所选择的词sj的加权系数;DOC_NUM为所述文本的总数量,为词sj在关联查询词中出现的次数。

根据以下公式(4),确定所述第二加权向量vec(S):

也就是对sj进行加权求和,其中idf(sj)已利用公式(3)计算获得,sj为前述计算得到的词sj的词向量。k为文本S中所选择的词的总个数。

本领域技术人员可以根据需要来设置文本的总数量DOC_NUM的统计范围。举例来说,文本的总数量DOC_NUM可取决于相对应的待匹配的查询目标的总数量,待匹配的查询目标可以从服务器中存储的全部内容中选取,也可以从预先通过人工或机器筛选出的待匹配的查询目标的集合中选取,本发明对此不做限制。的统计范围也可以根据需要进行设置,举例来说,可以在针对同一查询目标的关联查询词范围内统计词qi出现的次数,比如说,如上文所述,当用户输入当前查询词时,可以通过例如文本匹配的手段将其匹配到包含该当前查询词中的词的语料库,再在该语料库中统计和

可以根据已计算获得的所述第一加权向量和所述第二加权向量,通过如下计算二者的夹角的余弦值的方式来确定当前查询词Q与所述文本S的语义相似度,即

similarity(Q,S)=cos(vec(Q),vec(S))

其中,similarity(表示当前查询词Q与文本S的语义相似度,cos(vec(Q),vec(S))表示第一加权向量和第二加权向量的夹角的余弦值。

本领域技术人员还可以采用其他已知的可以计算得到当前查询词与所述文本之间的语义相似度的方法来计算二者之间的语义相似度,例如通过计算第一加权向量和第二加权向量之间的欧式距离来确定语义相似度等,本发明对此不作限制。

在一个示例中,可以根据已确定的语义相似度,从所述待匹配的查询目标中确定与所述当前查询词相匹配的查询目标。具体地,可以根据已确定的语义相似度,从待匹配的查询目标中确定语义相似度最高的一个或多个查询目标推荐给用户。

实施例2

图3示出根据本发明另一实施例的查询目标匹配装置的结构图。该装置可用于实现实施例1中方法各步骤的操作,与实施例1相对应的示例的描述可参见实施例1,这里不再重复描述。如图3所示,该查询目标匹配装置300主要包括:

获取模块301,用于获取针对相同查询目标的关联查询词;

分词模块302,用于对所述关联查询词进行分词操作,以获得词;

计算模块303,用于计算各所述词的词向量;

词向量确定模块304,用于根据所述词向量,确定当前查询词中各词的词向量,以及与待匹配的查询目标相对应的文本中包含的词的词向量;

相似度确定模块305,用于根据当前查询词中各词的词向量以及与待匹配的查询目标相对应的文本中包含的词的词向量,确定当前查询词与所述文本的语义相似度;

匹配查询目标确定模块306,根据所确定的语义相似度,从所述待匹配的查询目标中确定与所述当前查询词相匹配的查询目标。

在一个示例中,所述获取模块可以包括:第一获取子模块,用于获取相同用户连续输入的查询词,作为所述关联查询词。

在一个示例中,所述获取模块可以包括:第二获取子模块,用于获取不同用户针对相同的查询目标输入的查询词,作为所述关联查询词。

在一个示例中,所述相似度确定模块可以包括:选择单元,用于在所述文本中,选择所述当前查询词中的各词以及位于所述当前查询词中各词附近的词;确定单元,用于根据当前查询词中各词的词向量,以及所述文本中所选择的词的词向量,确定当前查询词与所述文本的语义相似度。

在一个示例中,所述确定单元可以包括:第一加权向量计算单元,用于计算所述当前查询词中包含的全部词的词向量的加权和,作为第一加权向量,第二加权向量计算单元,用于计算所述文本中所选择的词的词向量的加权和,作为第二加权向量;相似度计算单元,用于计算所述第一加权向量和所述第二加权向量的夹角的余弦值,作为当前查询词与所述文本的语义相似度。

在一个示例中,所述第一加权向量计算单元可以用于:

根据以下公式(1),确定针对当前查询词Q中的词qi的加权系数:

其中,idf(qi)为当前查询词Q中的词qi的加权系数;DOC_NUM为所述文本的总数量,为词qi在所述关联查询词中出现的次数;

根据以下公式(2),确定所述第一加权向量vec(Q):

m为当前查询词Q中词的总个数;

所述第二加权向量计算单元可以用于:

根据以下公式(3),确定针对所述文本S中所选择的词sj的加权系数:

其中,idf(sj)为所述文本S中所选择的词sj的加权系数;DOC_NUM为所述文本的总数量,为词sj在所述关联查询词中出现的次数;

根据以下公式(4)确定所述第二加权向量vec(S):

k为所述文本S中所选择的词的总个数。

实施例3

图4示出了本发明的另一个实施例的一种查询目标匹配处理设备的结构框图。所述查询目标匹配处理设备1100可以是具备计算能力的主机服务器、个人计算机PC、或者可携带的便携式计算机或终端等。本发明具体实施例并不对计算节点的具体实现做限定。

所述查询目标匹配处理设备1100包括处理器(processor)1110、通信接口(Communications Interface)1120、存储器(memory)1130和总线1140。其中,处理器1110、通信接口1120、以及存储器1130通过总线1140完成相互间的通信。

通信接口1120用于与网络设备通信,其中网络设备包括例如虚拟机管理中心、共享存储等。

处理器1110用于执行程序。处理器1110可能是一个中央处理器CPU,或者是专用集成电路ASIC(Application Specific Integrated Circuit),或者是被配置成实施本发明实施例的一个或多个集成电路。

存储器1130用于存放文件。存储器1130可能包含高速RAM存储器,也可能还包括非易失性存储器(non-volatile memory),例如至少一个磁盘存储器。存储器1130也可以是存储器阵列。存储器1130还可能被分块,并且所述块可按一定的规则组合成虚拟卷。

在一种可能的实施方式中,上述程序可为包括计算机操作指令的程序代码。该程序具体可用于实现实施例1所述的方法。

本领域普通技术人员可以意识到,本文所描述的实施例中的各示例性单元及算法步骤,能够以电子硬件、或者计算机软件和电子硬件的结合来实现。这些功能究竟以硬件还是软件形式来实现,取决于技术方案的特定应用和设计约束条件。专业技术人员可以针对特定的应用选择不同的方法来实现所描述的功能,但是这种实现不应认为超出本发明的范围。

如果以计算机软件的形式来实现所述功能并作为独立的产品销售或使用时,则在一定程度上可认为本发明的技术方案的全部或部分(例如对现有技术做出贡献的部分)是以计算机软件产品的形式体现的。该计算机软件产品通常存储在计算机可读取的非易失性存储介质中,包括若干指令用以使得计算机设备(可以是个人计算机、服务器、或者网络设备等)执行本发明各实施例方法的全部或部分步骤。而前述的存储介质包括U盘、移动硬盘、只读存储器(ROM,Read-Only Memory)、随机存取存储器(RAM,Random Access Memory)、磁碟或者光盘等各种可以存储程序代码的介质。

以上所述,仅为本发明的具体实施方式,但本发明的保护范围并不局限于此,任何熟悉本技术领域的技术人员在本发明揭露的技术范围内,可轻易想到变化或替换,都应涵盖在本发明的保护范围之内。因此,本发明的保护范围应以所述权利要求的保护范围为准。

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