【技术领域】
本发明涉及计算机应用技术领域,尤其涉及一种基于人工智能的多域信息的匹配度评估方法、设备及介质。
背景技术:
人工智能(artificialintelligence;ai),是研究、开发用于模拟、延伸和扩展人的智能的理论、方法、技术及应用系统的一门新的技术科学。人工智能是计算机科学的一个分支,它企图了解智能的实质,并生产出一种新的能以人类智能相似的方式做出反应的智能机器,该领域的研究包括机器人、语言识别、图像识别、自然语言处理和专家系统等。
信息检索的一个核心任务就是计算用户输入的查询(query)与作为检索对象的各文档(doc)之间的语义相关程度。具体地,可对query与各doc的标题(title)的匹配度进行评估,如计算query与title之间的匹配度评分(score),并可按照评分由高到低的顺序对各doc进行排序,进而将排序后处于前n位的doc作为检索结果返回给用户,n为正整数。
现有技术中,在计算query与title之间的匹配度评分时,通常采用以下方式:先用卷积神经网络(cnn,convolutionalneuralnetwork)或循环神经网络(rnn,recurrentneuralnetwork)等分别得到query和title的表达,然后基于这两个表达来计算诸如cosine相似度,从而得到query与title之间的匹配度评分。
但是,现有技术中在进行信息检索时,仅根据文档的title来计算query与title之间的匹配度评分,确定文档是否与query相匹配。但是title通常较短,只能包含一小部分关键内容,因此仅根据query与title之间的匹配度评分,确定文档是否与query相匹配的准确性较差。
技术实现要素:
本发明提供了一种基于人工智能的多域信息的匹配度评估方法、设备及介质,用于提高信息检索时文档与query相匹配的准确性。
本发明提供一种基于人工智能的多域信息的匹配度评估方法,所述方法包括:
分别获取查询query中的各有效单词,以及待查询文档中的至少两个信息域中各所述信息域中的各有效单词;
分别获取所述query中的各有效单词的单词表达以及所述待查询文档中的各所述信息域中的各有效单词的单词表达;
根据所述单词表达,分别获取所述query中的各有效单词的基于上下文的单词表达以及各所述信息域中的各有效单词的基于上下文的单词表达;
根据获取到的信息生成各所述信息域对应的匹配特征;
根据各所述信息域对应的所述匹配特征确定出所述query与所述待查询文档之间的匹配度评分。
进一步可选地,如上所述的方法中,所述分别获取query中的各有效单词的单词表达以及待查询文档中的至少两个信息域中各所述信息域中的各有效单词的单词表达,包括:
将所述query中的各有效单词分别embedding成一个低维向量,得到序列qe=[q1,…,qi,…,qm];
其中,m表示所述query中包括的有效单词的单词数,qi表示所述query中的第i个有效单词的低维向量,i为正整数,且1≤i≤m;
将各所述信息域中的各有效单词分别embedding成一个低维向量,得到序列te=[t1,…,tj,…,tn];
其中,n表示各所述信息域中包括的有效单词的单词数,tj表示所述信息域中的第j个有效单词的低维向量,j为正整数,且1≤j≤n。
进一步可选地,如上所述的方法中,所述分别获取所述query中的各有效单词的基于上下文的单词表达以及各所述信息域中的各有效单词的基于上下文的单词表达,包括:
将所述qe输入给双向循环神经网络rnn,分别得到从左向右方向处理后的输出q1以及从右向左方向处理后的输出q2;
将所述te输入给双向rnn,分别得到从左向右方向处理后的输出t1以及从右向左方向处理后的输出t2;
将所述qe、q1和q2进行拼接,得到q(m,3d),所述d表示表达维度,embedding和双向rnn使用同样的表达维度;
将所述te、t1和t2进行拼接,得到t(n,3d);
将所述query以及各所述信息域中的每个有效单词对应的长为3d的向量作为所述有效单词的基于上下文的单词表达。
进一步可选地,如上所述的方法中,根据获取到的信息生成各所述信息域对应的匹配特征,包括:
根据获取到的信息生成各所述信息域对应的局部匹配特征;
根据所述局部匹配特征生成各所述信息域对应的高级匹配特征。
进一步可选地,如上所述的方法中,所述根据获取到的信息生成各所述信息域对应的局部匹配特征,包括:
在各所述信息域中,根据各有效单词的所述基于上下文的单词表达,分别按照不同的匹配度计算方式,计算出所述query中的有效单词与所述信息域中的有效单词两两之间的匹配度,得到所述信息域对应的三维的张量tensor(m,n,t);
其中,t表示t维的向量,针对每组有效单词q[i]和t[j],分别计算出t个匹配度,t个匹配度构成所述t维的向量,q[i]表示所述query中的有效单词,t[j]表示所述信息域中的有效单词;
所述tensor中的每一个值(i,j,k)表示q[i]和t[j]对应的第k个匹配度,1≤k≤t。
进一步可选地,如上所述的方法中,所述根据所述局部匹配特征生成各所述信息域对应的高级匹配特征,包括:
在各所述信息域中,将所述(m,n,t)输入给卷积神经网络cnn,将得到的输出(m,n,t1)、…、(m,n,tw)作为所述信息域对应的所述高级匹配特征,w为正整数,表示cnn中包括的卷积层数。
进一步可选地,如上所述的方法中,所述根据各所述信息域对应的所述匹配特征确定出所述query与所述查询文档之间的匹配度评分,包括:
在各所述信息域中,将对应的所述(m,n,t)以及对应的所述高级匹配特征进行拼接,得到(m,n,t+t1+…+tw);
在各所述信息域中,针对每个(m,n)矩阵,分别采用按行pooling的方式确定出一个(m,k’)的序列表达,k’为正整数,得到(m,(t+t1+…+tw)*k’);
将所述至少两个信息域中的(m,(t+t1+…+tw)*k’)进行拼接,得到(m,(t+t1+…+tw)*k’*p),其中所述p为所述信息域的数量;
将所述(m,(t+t1+…+tw)*k’*p)输入给双向rnn,得到双向rnn最后一个位置上的表达;
根据所述最后一个位置上的表达确定出所述匹配度评分。
进一步可选地,如上所述的方法中,所述针对每个(m,n)矩阵,分别采用按行pooling的方式确定出一个(m,k’)的序列表达,包括:
针对所述(m,n)每一行中的n个值,分别选取其中的最大的k’个值,并按从大到小的顺序进行排序,k’≤n。
进一步可选地,如上所述的方法中,所述最后一个位置上的表达为一个长为2f的向量,f表示表达维度;
所述根据所述最后一个位置上的表达确定出所述匹配度评分,包括:
将所述长为2f的向量输入给包含单隐层的全连接网络,得到输出的所述匹配度评分。
进一步可选地,如上所述的方法中,若所述至少两个信息域包括正文;获取待查询文档中的至少两个信息域中各所述信息域中的各有效单词,具体包括:
获取所述待查询文档的所述正文中的各所述有效单词。
进一步可选地,如上所述的方法中,获取所述待查询文档的所述正文中的各所述有效单词,具体包括:
将所述正文进行切词处理,得到按照在所述正文中的先后顺序排列的数个单词构成的单词序列;
使用预设的窗口按照从前往后的顺序扫描所述单词序列中包括的所述数个单词,得到数个单词片段;
计算各所述单词片段与所述query的bm25分值;
从所述数个单词片段中获取k个所述bm25分值最高、且互相没有重叠的单词片段;
将所述k个单词片段中包括的各所述单词,作为所述信息域为所述正文时所对应的有效单词。
进一步可选地,如上所述的方法中,获取所述待查询文档的所述正文中的各所述有效单词,具体包括:
将所述正文进行切词处理,得到按照在所述正文中的先后顺序排列的数个单词;
根据所述query中的各所述有效单词和所述正文的所述数个单词中的各所述单词,生成双通道的匹配矩阵;
将所述双通道的匹配矩阵输入给卷积神经网络cnn,提取最上层的cnn产生的匹配矩阵;
从所述最上层的cnn产生的匹配矩阵中,采用pooling的方式,选取k个得分最高的位置,且各所述位置对应的按照预设窗口大小划分的单词片段之间没有窗口重叠;
将所述k个位置对应的窗口中的单词片段中包括的单词作为所述信息域为所述正文时所对应的有效单词。
进一步可选地,如上所述的方法中,根据所述query中的各所述有效单词和所述正文的所述数个单词中的各所述单词,生成双通道的匹配矩阵,具体包括:
将所述query中的各所述有效单词与所述正文的所述数个单词中的各所述单词进行精确比对,若相同,精确匹配矩阵对应位置的匹配值为所述有效单词的逆向文件频率idf的权重;否则若不同,则为0,得到m*s维的精确匹配矩阵,其中所述m为所述query中包括的有效单词的单词数,所述s为所述正文包括的所述数个单词的数量;
将所述query中的各所述有效单词和所述正文的所述数个单词中的各所述单词分别embedding成一个低维向量;
分别计算所述query中的各所述有效单词的低维向量与所述数个单词中的各所述单词的低维向量的余弦相似度,并作为基于语义的匹配矩阵中对应位置的匹配值,得到m*s维的基于语义的匹配矩阵;
根据m*s维的所述精确匹配矩阵和m*s维的所述基于语义的匹配矩阵,得到m*s*2维的所述双通道的匹配矩阵。
本发明提供一种基于人工智能的多域信息的匹配度评估装置,所述装置包括:
有效单词获取模块,用于分别获取查询query中的各有效单词,以及待查询文档中的至少两个信息域中各所述信息域中的各有效单词;
表达获取模块,用于分别获取所述query中的各有效单词的单词表达以及所述待查询文档中的各所述信息域中的各有效单词的单词表达;
所述表达获取模块,还用于根据所述单词表达,分别获取所述query中的各有效单词的基于上下文的单词表达以及各所述信息域中的各有效单词的基于上下文的单词表达;
特征生成模块,用于根据获取到的信息生成各所述信息域对应的匹配特征;
评分模块,用于根据各所述信息域对应的所述匹配特征确定出所述query与所述待查询文档之间的匹配度评分。
进一步可选地,如上所述的装置中,所述表达获取模块,具体用于:
将所述query中的各有效单词分别embedding成一个低维向量,得到序列qe=[q1,…,qi,…,qm];
其中,m表示所述query中包括的有效单词的单词数,qi表示所述query中的第i个有效单词的低维向量,i为正整数,且1≤i≤m;
将各所述信息域中的各有效单词分别embedding成一个低维向量,得到序列te=[t1,…,tj,…,tn];
其中,n表示各所述信息域中包括的有效单词的单词数,tj表示所述信息域中的第j个有效单词的低维向量,j为正整数,且1≤j≤n。
进一步可选地,如上所述的装置中,所述表达获取模块,具体还用于:
将所述qe输入给双向循环神经网络rnn,分别得到从左向右方向处理后的输出q1以及从右向左方向处理后的输出q2;
将所述te输入给双向rnn,分别得到从左向右方向处理后的输出t1以及从右向左方向处理后的输出t2;
将所述qe、q1和q2进行拼接,得到q(m,3d),所述d表示表达维度,embedding和双向rnn使用同样的表达维度;
将所述te、t1和t2进行拼接,得到t(n,3d);
将所述query以及各所述信息域中的每个有效单词对应的长为3d的向量作为所述有效单词的基于上下文的单词表达。
进一步可选地,如上所述的装置中,所述特征生成模块,具体用于:
根据获取到的信息生成各所述信息域对应的局部匹配特征;
根据所述局部匹配特征生成各所述信息域对应的高级匹配特征。
进一步可选地,如上所述的装置中,所述特征生成模块,具体用于:
在各所述信息域中,根据各有效单词的所述基于上下文的单词表达,分别按照不同的匹配度计算方式,计算出所述query中的有效单词与所述信息域中的有效单词两两之间的匹配度,得到所述信息域对应的三维的张量tensor(m,n,t);
其中,t表示t维的向量,针对每组有效单词q[i]和t[j],分别计算出t个匹配度,t个匹配度构成所述t维的向量,q[i]表示所述query中的有效单词,t[j]表示所述信息域中的有效单词;
所述tensor中的每一个值(i,j,k)表示q[i]和t[j]对应的第k个匹配度,1≤k≤t。
进一步可选地,如上所述的装置中,所述特征生成模块,具体用于:
在各所述信息域中,将所述(m,n,t)输入给卷积神经网络cnn,将得到的输出(m,n,t1)、…、(m,n,tw)作为所述信息域对应的所述高级匹配特征,w为正整数,表示cnn中包括的卷积层数。
进一步可选地,如上所述的装置中,所述评分模块,具体用于:
在各所述信息域中,将对应的所述(m,n,t)以及对应的所述高级匹配特征进行拼接,得到(m,n,t+t1+…+tw);
在各所述信息域中,针对每个(m,n)矩阵,分别采用按行pooling的方式确定出一个(m,k’)的序列表达,k’为正整数,得到(m,(t+t1+…+tw)*k’);
将所述至少两个信息域中的(m,(t+t1+…+tw)*k’)进行拼接,得到(m,(t+t1+…+tw)*k’*p),其中所述p为所述信息域的数量;
将所述(m,(t+t1+…+tw)*k’*p)输入给双向rnn,得到双向rnn最后一个位置上的表达;
根据所述最后一个位置上的表达确定出所述匹配度评分。
进一步可选地,如上所述的装置中,所述评分模块,具体用于针对所述(m,n)每一行中的n个值,分别选取其中的最大的k’个值,并按从大到小的顺序进行排序,k’≤n。
进一步可选地,如上所述的装置中,所述最后一个位置上的表达为一个长为2f的向量,f表示表达维度;
所述评分模块,具体用于将所述长为2f的向量输入给包含单隐层的全连接网络,得到输出的所述匹配度评分。
进一步可选地,如上所述的装置中,若所述至少两个信息域包括正文;所述有效单词获取模块,具体用于获取所述待查询文档的所述正文中的各所述有效单词。
进一步可选地,如上所述的装置中,所述有效单词获取模块,具体用于:
将所述正文进行切词处理,得到按照在所述正文中的先后顺序排列的数个单词构成的单词序列;
使用预设的窗口按照从前往后的顺序扫描所述单词序列中包括的所述数个单词,得到数个单词片段;
计算各所述单词片段与所述query的bm25分值;
从所述数个单词片段中获取k个所述bm25分值最高、且互相没有重叠的单词片段;
将所述k个单词片段中包括的各所述单词,作为所述信息域为所述正文时所对应的有效单词。
进一步可选地,如上所述的装置中,所述有效单词获取模块,具体用于:
将所述正文进行切词处理,得到按照在所述正文中的先后顺序排列的数个单词;
根据所述query中的各所述有效单词和所述正文的所述数个单词中的各所述单词,生成双通道的匹配矩阵;
将所述双通道的匹配矩阵输入给卷积神经网络cnn,提取最上层的cnn产生的匹配矩阵;
从所述最上层的cnn产生的匹配矩阵中,采用pooling的方式,选取k个得分最高的位置,且各所述位置对应的按照预设窗口大小划分的单词片段之间没有窗口重叠;
将所述k个位置对应的窗口中的单词片段中包括的单词作为所述信息域为所述正文时所对应的有效单词。
进一步可选地,如上所述的装置中,所述有效单词获取模块,具体用于:
将所述query中的各所述有效单词与所述正文的所述数个单词中的各所述单词进行精确比对,若相同,精确匹配矩阵对应位置的匹配值为所述有效单词的逆向文件频率idf的权重;否则若不同,则为0,得到m*s维的精确匹配矩阵,其中所述m为所述query中包括的有效单词的单词数,所述s为所述正文包括的所述数个单词的数量;
将所述query中的各所述有效单词和所述正文的所述数个单词中的各所述单词分别embedding成一个低维向量;
分别计算所述query中的各所述有效单词的低维向量与所述数个单词中的各所述单词的低维向量的余弦相似度,并作为基于语义的匹配矩阵中对应位置的匹配值,得到m*s维的基于语义的匹配矩阵;
根据m*s维的所述精确匹配矩阵和m*s维的所述基于语义的匹配矩阵,得到m*s*2维的所述双通道的匹配矩阵。
本发明还提供一种计算机设备,所述设备包括:
一个或多个处理器;
存储器,用于存储一个或多个程序,
当所述一个或多个程序被所述一个或多个处理器执行,使得所述一个或多个处理器实现如上所述的基于人工智能的多域信息的匹配度评估方法。
本发明还提供一种计算机可读介质,其上存储有计算机程序,该程序被处理器执行时实现如上所述的基于人工智能的多域信息的匹配度评估方法。
本发明的基于人工智能的多域信息的匹配度评估方法、设备及介质,通过分别获取查询query中的各有效单词的单词表达以及待查询文档中的至少两个信息域中各信息域中的各有效单词的单词表达;根据单词表达,分别获取query中的各有效单词的基于上下文的单词表达以及各信息域中的各有效单词的基于上下文的单词表达;根据获取到的信息生成各信息域对应的匹配特征;根据各信息域对应的匹配特征确定出query与待查询文档之间的匹配度评分。本发明的技术方案,能够对待查询文档的不同信息域的与query匹配的匹配信号进行融合,可以更有效的发挥不同域信息的相互补充作用,从而提高信息检索时文档与query相匹配的准确性。
【附图说明】
图1为本发明的基于人工智能的多域信息的匹配度评估方法实施例的流程图。
图2为本发明所述获取query与title之间的匹配度评分的过程示意图。
图3为本发明的获取query与包括title和content两个信息域的文档之间的匹配度评分的过程示意图。
图4为本发明实施例中的cnn处理过程示意图。
图5为本发明的基于人工智能的多域信息的匹配度评估装置实施例的结构图。
图6为本发明的计算机设备实施例的结构图。
图7为本发明提供的一种计算机设备的示例图。
【具体实施方式】
为了使本发明的目的、技术方案和优点更加清楚,下面结合附图和具体实施例对本发明进行详细描述。
图1为本发明的基于人工智能的多域信息的匹配度评估方法实施例的流程图。如图1所示,本实施例的基于人工智能的多域信息的匹配度评估方法,具体可以包括如下步骤:
100、分别获取查询query中的各有效单词,以及待查询文档中的至少两个信息域中各所述信息域中的各有效单词;
本实施例中,具体地,可以通过对query以及待查询文档中的至少两个信息域中各信息域进行分词,以获取各自的有效单词。
对query进行分词之后,得到最小单元的分词可以称之为单词。其中由于query所包括的文本信息较短,query中包括的单词均为本实施例中参与匹配度评估的有效单词。在信息检索时,若检索到的网页中待查询文档包括标题title、摘要abstract以及正文content等等多个信息域。对于title,其包括的文本信息较短,也可以将其分词后的每个单词作为有效单词。而对于abstract以及content等长文本信息,也可以将abstract或者content进行分词后的每个单词作为有效单词。但是如果将abstract或者content进行分词后的每个单词作为有效单词,会造成计算量非常大,计算过程非常复杂,因此,本实施例中,可以从摘要或者正文中选取部分能够代表其对应的长文本的单词作为有效单词。参与匹配度评估。本实施例中,可以选择至少两个信息域的有效单词参与匹配度评估。至少两个信息域可以包括title、abstract以及正文中的至少两个。由于正文content包括的内容最为丰富,因此优选地,至少两个信息域可以包括至少包括title以及content。
优选地,当至少两个信息域包括正文时,步骤100中的获取待查询文档的正文中的各有效单词,具体可以包括如下两种方式:
第一种方式具体可以包括如下步骤:
(a1)将正文进行切词处理,得到按照在正文中的先后顺序排列的数个单词构成的单词序列;
(a2)使用预设的窗口按照从前往后的顺序扫描单词序列中包括的数个单词,得到数个单词片段;
(a3)计算各单词片段与query的bm25分值;
(a4)从数个单词片段中获取k个bm25分值最高、且互相没有重叠的单词片段;
(a5)将k个单词片段中包括的各单词,作为信息域为正文时所对应的有效单词。
bm25是一种经典的基于关键词的检索方法,相对于复杂的深度学习模型来说计算量极小。本实施例中,首先将正文中的文本信息进行切词处理,可以不做任何过滤处理,切词之后的每个单词都保留。得到数个单词,然后将切词之后得到的数个单词按照在正文中的先后顺序排列构成单词序列。然后使用一个固定大小的预设窗口按照从前往后的顺序扫描单词序列中所包括的数个单词,扫描时,使用预设窗口去从单词序列中包括的数个单词中取单词片段,作为本次扫描的单词片段,然后从前往后移动预设窗口,进行下一次扫描,获取下一个单词片段,依次类推,直到扫描到单词序列结束,可以获取到多个单词片段。扫描过程中,扫描到的每一个单词片段的大小与预设窗口的大小一致,单词片段中可以包括多个单词。对于扫描得到的每一个单词片段,可以计算该单词片段和query的bm25分值,计算完所有单词片段的bm25分值之后,可以采用贪心的方法,选取前k个bm25分值最高的、且没有窗口重叠的单词片段。将这k个单词片段的窗口内的单词拼接到一起,中间用一个特殊符号分隔。k个单词片段拼接之后的有效单词序列是该网页正文和query关键词匹配最好的内容片段。将拼接后的各单词即k个单词片段中包括的各单词,作为信息域为正文时所对应的所有有效单词。
第二种方式具体可以包括如下步骤:
(b1)将正文进行切词处理,得到按照在正文中的先后顺序排列的数个单词;
本实施例中,将正文中的文本信息进行切词处理后,可以不做任何过滤处理,切词之后的每个单词都保留。将正文对应的数个单词按照在正文中的先后顺序排列。
(b2)根据query中的各有效单词和正文的数个单词中的各单词,生成双通道的匹配矩阵;
query中的各有效单词的获取方式与上述实施例中的步骤100相同,详细可以参考上述实施例的相关记载,在此不再赘述。
该步骤(b2)具体可以包括如下步骤:
(c1)将query中的各有效单词与正文的数个单词中的各单词进行精确比对,若相同,精确匹配矩阵对应位置的匹配值为有效单词的逆向文件频率(inversedocumentfrequency;idf)的权重;否则若不同,则为0,得到m*s维的精确匹配矩阵,其中m为query中包括的有效单词的单词数,s为正文包括的数个单词的数量;
(c2)将query中的各有效单词和正文的数个单词中的各单词分别embedding成一个低维向量;详细可以参考上述实施例的记载,在此不再赘述。
(c3)分别计算query中的各有效单词的低维向量与数个单词中的各单词的低维向量的余弦(cosine)相似度,并作为基于语义的匹配矩阵中对应位置的匹配值,得到m*s维的基于语义的匹配矩阵;
(c4)根据m*s维的精确匹配矩阵和m*s维的基于语义的匹配矩阵,得到m*s*2维的双通道的匹配矩阵。
(b3)将双通道的匹配矩阵输入给卷积神经网络cnn,提取最上层的cnn产生的匹配矩阵;
(b4)从最上层的cnn产生的匹配矩阵中,采用pooling的方式,选取k个得分最高的位置,且各位置对应的按照预设窗口大小划分的单词片段之间没有窗口重叠;
(b5)将k个位置对应的窗口中的单词片段中包括的单词作为信息域为正文时所对应的有效单词。
第一种方式中的bm25是一种基于关键词精确匹配的匹配方法,这种方法的缺点是无法建模语义之间的相似程度,因此提取出来的信息不够精确。为了解决这个问题,本实施例提出一种基于深度学习的正文提取方法。为了保证效率,在这一步中使用计算量较小,性价比高的深度学习模型。
例如,首先对query和正文content构建matchingmatrix。这个matchingmatrix包含两种:一种是基于关键词精确匹配的匹配矩阵,如上述步骤(c1)得到的。另一种是基于语义的匹配矩阵,如上述步骤(c3)得到的。其中基于语义的matchingmatrix的具体构建方式为:对query和正文content中的每一个单词构成的单词对,使用它们的embedding后的低维向量来计算cosine相似度。得到两个matchingmatrix之后,进一步可以使用2维的cnn(类似图像中的cnn)来提取高级匹配特征(n-gram特征),提取方式可以参考上述实施例中的相关记载。例如,本实施例中可以使用2层-4层的cnn提取到高级匹配特征,并取最上层cnn产生的匹配矩阵。
此外,为保证最上层的cnn输出channel为1,也就是只输出一个matchingmatrix(m,s),以保证最终每个位置上只产生一个值,而这个值则表示以该位置为中心,通过几层cnn能够覆盖到的那些单词与query的匹配度。例如,以两层cnn为例,第一层cnn预设窗口为(5,5),第二层的预设窗口也为(5,5),那么在第二层cnn产出的matchingmatrix上,(i,j)位置实际上能够覆盖长度为9的区域。如下图4所示,为本发明实施例中的cnn处理过程示意图。其中,点1通过一层卷积覆盖了中间层两个点2和3中间的所有单词,两层卷积就覆盖了最下层两个点中间4和5的所有单词,可以看到,点1上对应的值综合考虑了窗口内所有单词的匹配得分。即点1该位置覆盖了9个单词的区域。
然后,对最上层cnn产生的匹配矩阵上使用topkpooling的方式,选取k个得分最高的位置,且各位置对应的按照预设窗口大小划分的单词片段之间没有窗口重叠。具体选择方式为,先选一个最大的位置,假设为(i1,j1),其中j1对应正文这一端,那么这个窗口能覆盖到正文的[j1-4,j1+4]。继续选择第二个,第三个。其中,不重叠的意思是选了j1最后,选j2的时候得到的(i2,j2),对应的窗口为[j2-4,j2+4],此时必须要求它和[j1-4,j1+4]没有重叠。选出来k个位置之后,每个位置对应一个窗口,将k个窗口中的单词片段中的所有单词拼接到一起,得到正文的有效单词。
可以看到,cnn的优势是一方面能够考虑语义级别的匹配,另一方面能够建模n-gram等高级匹配模式。最终topkpooling选取出的点,为匹配最好的位置,由于多层卷积窗口的作用,该位置的匹配特征融合了整个窗口覆盖的所有单词的匹配信息,因而能够更精确的匹配文本信息。此外,cnn很容易并行,相对于在上述实施例中生成各信息域对应的高级匹配特征时采用的复杂的深度学习算法,无论是计算量还是计算时间上都要小的多。
101、分别获取查询query中的各有效单词的单词表达以及待查询文档中的至少两个信息域中各信息域中的各有效单词的单词表达;
具体地,在步骤101中,可将query中的各有效单词分别embedding成一个低维向量,从而得到序列qe=[q1,…,qi,…,qm]。
其中,m表示query中包括的有效单词的单词数,qi表示query中的第i个有效单词的低维向量,i为正整数,且1≤i≤m。
另外,可以将各信息域中的各有效单词分别embedding成一个低维向量,得到序列te=[t1,…,tj,…,tn];
其中,n表示各所述信息域中包括的有效单词的单词数,tj表示所述信息域中的第j个有效单词的低维向量,j为正整数,且1≤j≤n。
例如,若在title信息域中,可以将title中的各单词分别embedding成一个低维向量,从而得到序列te=[t1,…,tj,…,tn]。其余信息域中的有效单词处理方式同理,在此不再赘述。
在实际应用中,需要预先对query和至少两个信息域中的各信息域分别进行切词等预处理,进而得到query的各有效单词以及各信息域中的包括的数个单词。
以query为例,假设其中共包括4个单词,分别为单词1、单词2、单词3和单词4,这4个单词均为有效单词,那么可分别将有效单词1、有效单词2、有效单词3和有效单词4embedding成一个低维向量,从而得到qe=[q1,q2,q3,q4],如何得到所述低维向量为现有技术。
对于信息域为title而言,可以参考query获取有效单词的方式。而对于信息域为abstract或者content而言,需要先进行切词等预处理,得到数个单词之后,再基于数个单词获取所需要的有效单词,后续实施例再详细赘述。
102、根据单词表达,分别获取query中的各有效单词的基于上下文的单词表达以及各信息域中的各有效单词的基于上下文的单词表达;
在分别获取到query中的各有效单词的单词表达以及各信息域中的各有效单词的单词表达之后,可进一步获取query中的各有效单词的基于上下文的单词表达以及各信息域中的各有效单词的基于上下文的单词表达。
例如,可将上述实施例中得到的qe输入给双向rnn,分别得到从左向右方向处理后的输出q1以及从右向左方向处理后的输出q2,将te输入给双向rnn,分别得到从左向右方向处理后的输出t1以及从右向左方向处理后的输出t2。
即将qe和te分别输入到不同的双向rnn中,从而分别得到q1和q2以及t1和t2。
embedding和双向rnn可以使用同样的表达维度d,d的具体取值可根据实际需要而定,因此,qe、q1和q2的大小为(m,d),相应地,te、t1和t2的大小为(n,d)。
可将qe、q1和q2进行拼接,从而得到q(m,3d),将te、t1和t2进行拼接,从而得到t(n,3d),这样,query以及各信息域中的每个有效单词将分别对应一个长为3d的向量,该向量即为基于上下文的单词表达。
可以看出,本实施例中的所述拼接是指按列拼接。
对于每个单词对应的长为3d的向量来说,前d维表示该单词的embedding结果,中间d维表示该单词的左context,后d维表示该单词的右context,因此,长为3d的向量即为包含了该单词的上下文信息的基于上下文的单词表达。
103、根据获取到的信息生成各信息域对应的匹配特征;
首先,可根据获取到的信息生成各信息域对应的局部匹配特征,之后,可根据局部匹配特征进一步生成各信息域对应的高级匹配特征,以下分别对局部匹配特征以及高级匹配特征的获取方式进行详细说明。
1)局部匹配特征
即基于之前获取到的表达进行匹配得到各信息域中的所有局部的匹配特征。
具体地,在各信息域中,可以根据各有效单词的基于上下文的单词表达,分别按照不同的匹配度计算方式,计算出query中的有效单词与该信息域中的有效单词两两之间的匹配度,得到该信息域对应的三维的张量tensor(m,n,t);
其中,t表示t维的向量,针对每组有效单词q[i]和t[j],分别计算出t个匹配度,t个匹配度构成一个t维的向量,q[i]表示query中的有效单词,t[j]表示当前信息域中的有效单词。
tensor中的每一个值(i,j,k)表示q[i]和t[j]对应的第k个匹配度,1≤k≤t。
例如以title信息域为例,可根据各单词的基于上下文的单词表达,分别按照不同的匹配度计算方式,计算出query中的单词与title中的单词两两之间的匹配度,从而得到三维的张量(tensor)(m,n,t)。
在各信息域中,举例说明:
假设query中共包括两个有效单词,分别为有效单词1和有效单词2,title中也包括两个有效单词,分别为有效单词3和有效单词4;
针对有效单词1和有效单词3,可分别按照不同的匹配度计算方式,计算出t个匹配度;
针对有效单词1和有效单词4,可分别按照不同的匹配度计算方式,计算出t个匹配度;
针对有效单词2和有效单词3,可分别按照不同的匹配度计算方式,计算出t个匹配度;
针对有效单词2和有效单词4,可分别按照不同的匹配度计算方式,计算出t个匹配度。
其中,可根据两个有效单词的基于上下文的单词表达,计算出两个有效单词之间的匹配度。
具体采用哪些匹配度计算方式可根据实际需要而定,比如可包括张量神经网络以及cosine等多种匹配度计算方式。
上述以信息域为title为例,实际应用中,若信息域为abstract或者content时,尤其是信息域为content时,有效单词的数量远大于信息域为title的有效单词的数量,其余处理方式与上述实施例相同,在此不再赘述。
另外,还可以采用传统的基于关键词的匹配的方式来构造不同的匹配矩阵(matchingmatrix),方便融入人工知识,即人工可以根据知识来构建额外的匹配矩阵作为匹配特征,从而为信息检索等场景中引入人工知识提供了良好的途径。
2)高级匹配特征
在各信息域中,上述获取到的(m,n,t)的tensor中包含的是单词级和基于上下文的单词级匹配特征,在此基础上,还可进一步利用cnn来提取各信息域的高维度特征。
类似于在图像中,m和n是图片的大小,t是featuremap的数量。
在各信息域中,可将(m,n,t)输入给cnn,得到输出的(m,n,t1)、…、(m,n,tw),作为该信息域对应的高级匹配特征,w为正整数,表示cnn中包括的卷积层数。
假设卷积层数为1,那么将(m,n,t)输入给cnn后,可得到(m,n,t1),t1为cnn的kernel数量,在实际应用中,可采用一种动态padding的方式使得卷积的输入和输出的大小是一样的。
进一步地,还可堆叠多个卷积层来提取更高层的匹配特征。
104、根据各信息域对应的匹配特征确定出query与待查询文档之间的匹配度评分。
首先,在各信息域中,可将(m,n,t)以及得到的高级匹配特征进行拼接,从而得到(m,n,t+t1+…+tw),假设卷积层数为2,那么则指将(m,n,t)、(m,n,t1)和(m,n,t2)拼接为(m,n,t+t1+t2),也就是t+t1+t2个大小为(m,n)的匹配矩阵。
在各信息域中,针对每个(m,n)匹配矩阵,可分别采用按行pooling的方式确定出一个(m,k’)的序列表达,k’为正整数,从而得到(m,(t+t1+…+tw)*k’)。
比如,可针对(m,n)每一行中的n个值,分别选取其中的最大的k’个值,并按从大到小的顺序进行排序,从而得到(m,k’),k’≤n,假设一共有t+t1+t2个匹配矩阵,那么得到的输出则为(m,(t+t1+t2)*k’)。pooling的方式还可以为取平均值或者其他的数学方式,在此不再一一举例赘述。
上述过程的直观含义是为query中的每个有效单词从该有效单词对应的匹配特征中找出最大的(t+t1+t2)*k’特征,query中的每个有效单词都非常重要,用来清晰的描述用户的信息需求,这些特征表明了该信息域对query中的各信息需求的满足情况。
然后将至少两个信息域的(m,(t+t1+…+tw)*k’)进行拼接,得到(m,(t+t1+…+tw)*k’*p),其中p为信息域的数量;这里的拼接也为按列拼接。
那么拼接后的矩阵(m,(t+t1+…+tw)*k’*p)中的每一行则包含了不同信息域的信息对query中该行关键词的满足程度。
这种方式是在query的每个关键词级别就将不同信息域的匹配信息进行融合,相对于简单采用多信息域最终score加权平均融合的方式,本实施例的融合更接近模型底层。好处是可以更好的发挥不同的信息域的信息的互补作用。比如用户查询是(a,b,c),文档1标题包含了(a,b),正文也包含了(a,b),而文档2标题包含了(a,b),正文包含了(c),那么明显文档2更能满足查询的需求。这种融合方式在rnn的融合过程中可以有效区分这种情况。
通过上述方式,可以知道最终的匹配最强的地方发生在(m,n)匹配矩阵中的哪个具体的位置(i,j),因此,可以看到query中的各有效单词具体和各信息域中的哪个有效单词相匹配,具有很强的可解释性。
上述得到的(m,(t+t1+…+tw)*k’*p)是一个变长的序列,最后可采用双向rnn的方式来对该序列的信息进行融合,并可将双向rnn最后一个位置上的表达作为融合后的表达。
即将(m,(t+t1+…+tw)*k’*p)输入给双向rnn,从而得到双向rnn最后一个位置上的表达,进而可根据最后一个位置上的表达确定出query与title之间的匹配度评分。
最后一个位置上的表达可为一个长为2f的向量,f表示表达维度,具体取值可根据实际需要而定,由于是双向rnn,因此针对每个方向,可分别得到一个长为f的向量,组合起来即为一个长为2f的向量。
最后,可将长为2f的向量输入给包含单隐层的全连接网络,从而得到输出query与待查询文档的匹配度评分。
在信息检索场景中,在分别计算出用户输入的query与各待查询文档的匹配度评分之后,可按照评分由高到低的顺序对各待查询文档进行排序,进而将排序后处于前n位的待查询文档作为检索结果返回给用户,n为正整数。
综合上述介绍,当信息域为title时,图2为本发明所述获取query与title之间的匹配度评分的过程示意图,具体实现可参照前述相关说明,不再赘述。
可以看出,采用上述实施例所述方案,构建了底层的单词表达以及基于上下文的单词表达,这些表达既能够强调局部的信息,同时也融合了全局的信息,从而能够更好地反映query与title之间的匹配程度,进而提高了评估结果的准确性。本实施例中,在信息域为title时,仅取出title对应的匹配特征即可,可以不用单独计算该信息域title与query之间的匹配度评分。
而且,采用本实施例所述方案,所有的局部关键匹配特征都能够得到很好的保留,基于这些局部匹配特征,又可进一步提取出高级匹配特征,从而能够有效地捕获对于信息检索来说至关重要的语义匹配以及匹配邻近度信息等。
另外,在获取到匹配特征之后,可按照query中的每个单词进行pooling,以此来建模title对query的所有关键信息需求的覆盖情况,由于中间得到的所有匹配矩阵都参与本次pooling,因此最终得到的结果是各单词在多个层次上的信息需求被覆盖情况,而且具有良好的可解释性,query中的每个单词具体是被title中的哪个单词所满足,都能基于pooling的结果进行回溯。采用上述方式可以计算信息域为title、abstract或者content等等的匹配特征。
综合上述介绍,以融合信息域为title和content为例,图3为本发明的获取query与包括title和content两个信息域的文档之间的匹配度评分的过程示意图。大致流程如下:首先,先在title和content各信息域中分别获取对应的所有局部的匹配特征matchingmatrix1和matchingmatrix2,然后分别采用cnn的convolution处理,分别获取各信息域的匹配特征,即获取到query在各信息域的查询覆盖(querycoverag;qc)的范围。然后将各信息域的匹配特征融合处理,确定出query与待查询文档之间的匹配度评分,具体实现可参照前述相关说明,不再赘述。
本实施例的基于人工智能的多域信息的匹配度评估方法,通过采用上述技术方案,可以克服现有技术中仅根据query与title之间的匹配度评分,确定文档是否与query相匹配的准确性较差的技术问题,本实施例中,给出一种基于查询关键词的多信息域覆盖的深度匹配模型,该模型可以提取多层次的局部和全局的匹配特征,并且对待查询文档的不同信息域中、与query匹配的匹配信号进行融合,可以更有效的发挥不同域信息的相互补充作用,从而提高信息检索时文档与query相匹配的准确性。
而且本实施例还可以克服现有技术中无法处理长度太长的正文的问题,给出了一种基于query的正文关键信息提取方法用来处理深度模型的输入数据,具体可以从一段很长的网页正文中找到和query最匹配的若干关键片段,降低计算代价。
图5为本发明的基于人工智能的多域信息的匹配度评估装置实施例的结构图。如图5所示,本实施例的基于人工智能的多域信息的匹配度评估装置,具体可以包括:有效单词获取模块10、表达获取模块11、特征生成模块12和评分模块13。
其中有效单词获取模块10用于分别获取查询query中的各有效单词,以及待查询文档中的至少两个信息域中各信息域中的各有效单词;
表达获取模块11用于分别获取有效单词获取模块10获取的query中的各有效单词的单词表达以及待查询文档中的至少两个信息域中各信息域中的各有效单词的单词表达;
表达获取模块11还用于根据单词表达,分别获取query中的各有效单词的基于上下文的单词表达以及各信息域中的各有效单词的基于上下文的单词表达;
特征生成模块12用于根据表达获取模块11获取到的信息生成各信息域对应的匹配特征;
评分模块13用于根据特征生成模块12获取的各信息域对应的匹配特征确定出query与待查询文档之间的匹配度评分。
本实施例的基于人工智能的多域信息的匹配度评估装置,通过采用上述模块实现基于人工智能的多域信息的匹配度评估的实现原理以及技术效果与上述相关方法实施例的实现相同,详细可以参考上述相关方法实施例的记载,在此不再赘述。
进一步可选地,上述实施例的装置中,表达获取模块11具体用于:
将query中的各有效单词分别embedding成一个低维向量,得到序列qe=[q1,…,qi,…,qm];
其中,m表示query中包括的有效单词的单词数,qi表示query中的第i个有效单词的低维向量,i为正整数,且1≤i≤m;
将各信息域中的各有效单词分别embedding成一个低维向量,得到序列te=[t1,…,tj,…,tn];
其中,n表示各信息域中包括的有效单词的单词数,tj表示信息域中的第j个有效单词的低维向量,j为正整数,且1≤j≤n。
进一步可选地,上述实施例的装置中,表达获取模块11具体还用于:
将qe输入给双向循环神经网络rnn,分别得到从左向右方向处理后的输出q1以及从右向左方向处理后的输出q2;
将te输入给双向rnn,分别得到从左向右方向处理后的输出t1以及从右向左方向处理后的输出t2;
将qe、q1和q2进行拼接,得到q(m,3d),d表示表达维度,embedding和双向rnn使用同样的表达维度;
将te、t1和t2进行拼接,得到t(n,3d);
将query以及各信息域中的每个有效单词对应的长为3d的向量作为有效单词的基于上下文的单词表达。
进一步可选地,上述实施例的装置中,特征生成模块12具体用于:
根据获取到的信息生成各信息域对应的局部匹配特征;
根据局部匹配特征生成各信息域对应的高级匹配特征。
进一步可选地,上述实施例的装置中,特征生成模块12具体用于:
在各信息域中,根据各有效单词的基于上下文的单词表达,分别按照不同的匹配度计算方式,计算出query中的有效单词与信息域中的有效单词两两之间的匹配度,得到信息域对应的三维的张量tensor(m,n,t);
其中,t表示t维的向量,针对每组有效单词q[i]和t[j],分别计算出t个匹配度,t个匹配度构成t维的向量,q[i]表示query中的有效单词,t[j]表示信息域中的有效单词;
tensor中的每一个值(i,j,k)表示q[i]和t[j]对应的第k个匹配度,1≤k≤t。
进一步可选地,上述实施例的装置中,特征生成模块12具体用于:
在各信息域中,将(m,n,t)输入给卷积神经网络cnn,将得到的输出(m,n,t1)、…、(m,n,tw)作为信息域对应的高级匹配特征,w为正整数,表示cnn中包括的卷积层数。
进一步可选地,上述实施例的装置中,评分模块13具体用于:
在各信息域中,将对应的(m,n,t)以及对应的高级匹配特征进行拼接,得到(m,n,t+t1+…+tw);
在各信息域中,针对每个(m,n)矩阵,分别采用按行pooling的方式确定出一个(m,k’)的序列表达,k’为正整数,得到(m,(t+t1+…+tw)*k’);
将至少两个信息域中的(m,(t+t1+…+tw)*k’)进行拼接,得到(m,(t+t1+…+tw)*k’*p),其中p为信息域的数量;
将(m,(t+t1+…+tw)*k’*p)输入给双向rnn,得到双向rnn最后一个位置上的表达;
根据最后一个位置上的表达确定出匹配度评分。
进一步可选地,上述实施例的装置中,评分模块13具体用于针对(m,n)每一行中的n个值,分别选取其中的最大的k’个值,并按从大到小的顺序进行排序,k’≤n。
进一步可选地,上述实施例的装置中,最后一个位置上的表达为一个长为2f的向量,f表示表达维度;
评分模块13具体用于将长为2f的向量输入给包含单隐层的全连接网络,得到输出的匹配度评分。
进一步可选地,若至少两个信息域包括正文时,本实施例的有效单词获取模块10用于获取待查询文档的正文中的各有效单词。
进一步可选地,本实施例的装置中,有效单词获取模块10具体用于:
将正文进行切词处理,得到按照在正文中的先后顺序排列的数个单词构成的单词序列;
使用预设的窗口按照从前往后的顺序扫描单词序列中包括的数个单词,得到数个单词片段;
计算各单词片段与query的bm25分值;
从数个单词片段中获取k个bm25分值最高、且互相没有重叠的单词片段;
将k个单词片段中包括的各单词,作为信息域为正文时所对应的有效单词。
或者,进一步可选地,上述实施例的装置中,有效单词获取模块13具体用于:
将正文进行切词处理,得到按照在正文中的先后顺序排列的数个单词;
根据query中的各有效单词和正文的数个单词中的各单词,生成双通道的匹配矩阵;
将双通道的匹配矩阵输入给卷积神经网络cnn,提取最上层的cnn产生的匹配矩阵;
从最上层的cnn产生的匹配矩阵中,采用pooling的方式,选取k个得分最高的位置,且各位置对应的按照预设窗口大小划分的单词片段之间没有窗口重叠;
将k个位置对应的窗口中的单词片段中包括的单词作为信息域为正文时所对应的有效单词。
进一步可选地,本实施例的装置中,有效单词获取模块10具体用于:
将query中的各有效单词与正文的数个单词中的各单词进行精确比对,若相同,精确匹配矩阵对应位置的匹配值为有效单词的逆向文件频率idf的权重;否则若不同,则为0,得到m*s维的精确匹配矩阵,其中m为query中包括的有效单词的单词数,s为正文包括的数个单词的数量;
将query中的各有效单词和正文的数个单词中的各单词分别embedding成一个低维向量;
分别计算query中的各有效单词的低维向量与数个单词中的各单词的低维向量的余弦相似度,并作为基于语义的匹配矩阵中对应位置的匹配值,得到m*s维的基于语义的匹配矩阵;
根据m*s维的精确匹配矩阵和m*s维的基于语义的匹配矩阵,得到m*s*2维的双通道的匹配矩阵。
本实施例的基于人工智能的多域信息的匹配度评估装置,通过采用上述模块实现基于人工智能的多域信息的匹配度评估的实现原理以及技术效果与上述相关方法实施例的实现相同,详细可以参考上述相关方法实施例的记载,在此不再赘述。
图6为本发明的计算机设备实施例的结构图。如图6所示,本实施例的计算机设备,包括:一个或多个处理器30,以及存储器40,存储器40用于存储一个或多个程序,当存储器40中存储的一个或多个程序被一个或多个处理器30执行,使得一个或多个处理器30实现如上图1-图4所示实施例的基于人工智能的多域信息的匹配度评估方法。图6所示实施例中以包括多个处理器30为例。
例如,图7为本发明提供的一种计算机设备的示例图。图7示出了适于用来实现本发明实施方式的示例性计算机设备12a的框图。图7显示的计算机设备12a仅仅是一个示例,不应对本发明实施例的功能和使用范围带来任何限制。
如图7所示,计算机设备12a以通用计算设备的形式表现。计算机设备12a的组件可以包括但不限于:一个或者多个处理器16a,系统存储器28a,连接不同系统组件(包括系统存储器28a和处理器16a)的总线18a。
总线18a表示几类总线结构中的一种或多种,包括存储器总线或者存储器控制器,外围总线,图形加速端口,处理器或者使用多种总线结构中的任意总线结构的局域总线。举例来说,这些体系结构包括但不限于工业标准体系结构(isa)总线,微通道体系结构(mac)总线,增强型isa总线、视频电子标准协会(vesa)局域总线以及外围组件互连(pci)总线。
计算机设备12a典型地包括多种计算机系统可读介质。这些介质可以是任何能够被计算机设备12a访问的可用介质,包括易失性和非易失性介质,可移动的和不可移动的介质。
系统存储器28a可以包括易失性存储器形式的计算机系统可读介质,例如随机存取存储器(ram)30a和/或高速缓存存储器32a。计算机设备12a可以进一步包括其它可移动/不可移动的、易失性/非易失性计算机系统存储介质。仅作为举例,存储系统34a可以用于读写不可移动的、非易失性磁介质(图7未显示,通常称为“硬盘驱动器”)。尽管图7中未示出,可以提供用于对可移动非易失性磁盘(例如“软盘”)读写的磁盘驱动器,以及对可移动非易失性光盘(例如cd-rom,dvd-rom或者其它光介质)读写的光盘驱动器。在这些情况下,每个驱动器可以通过一个或者多个数据介质接口与总线18a相连。系统存储器28a可以包括至少一个程序产品,该程序产品具有一组(例如至少一个)程序模块,这些程序模块被配置以执行本发明上述图1-图5各实施例的功能。
具有一组(至少一个)程序模块42a的程序/实用工具40a,可以存储在例如系统存储器28a中,这样的程序模块42a包括——但不限于——操作系统、一个或者多个应用程序、其它程序模块以及程序数据,这些示例中的每一个或某种组合中可能包括网络环境的实现。程序模块42a通常执行本发明所描述的上述图1-图5各实施例中的功能和/或方法。
计算机设备12a也可以与一个或多个外部设备14a(例如键盘、指向设备、显示器24a等)通信,还可与一个或者多个使得用户能与该计算机设备12a交互的设备通信,和/或与使得该计算机设备12a能与一个或多个其它计算设备进行通信的任何设备(例如网卡,调制解调器等等)通信。这种通信可以通过输入/输出(i/o)接口22a进行。并且,计算机设备12a还可以通过网络适配器20a与一个或者多个网络(例如局域网(lan),广域网(wan)和/或公共网络,例如因特网)通信。如图所示,网络适配器20a通过总线18a与计算机设备12a的其它模块通信。应当明白,尽管图中未示出,可以结合计算机设备12a使用其它硬件和/或软件模块,包括但不限于:微代码、设备驱动器、冗余处理器、外部磁盘驱动阵列、raid系统、磁带驱动器以及数据备份存储系统等。
处理器16a通过运行存储在系统存储器28a中的程序,从而执行各种功能应用以及数据处理,例如实现上述实施例所示的基于人工智能的多域信息的匹配度评估方法。
本发明还提供一种计算机可读介质,其上存储有计算机程序,该程序被处理器执行时实现如上述实施例所示的基于人工智能的多域信息的匹配度评估方法。
本实施例的计算机可读介质可以包括上述图7所示实施例中的系统存储器28a中的ram30a、和/或高速缓存存储器32a、和/或存储系统34a。
随着科技的发展,计算机程序的传播途径不再受限于有形介质,还可以直接从网络下载,或者采用其他方式获取。因此,本实施例中的计算机可读介质不仅可以包括有形的介质,还可以包括无形的介质。
本实施例的计算机可读介质可以采用一个或多个计算机可读的介质的任意组合。计算机可读介质可以是计算机可读信号介质或者计算机可读存储介质。计算机可读存储介质例如可以是——但不限于——电、磁、光、电磁、红外线、或半导体的系统、装置或器件,或者任意以上的组合。计算机可读存储介质的更具体的例子(非穷举的列表)包括:具有一个或多个导线的电连接、便携式计算机磁盘、硬盘、随机存取存储器(ram)、只读存储器(rom)、可擦式可编程只读存储器(eprom或闪存)、光纤、便携式紧凑磁盘只读存储器(cd-rom)、光存储器件、磁存储器件、或者上述的任意合适的组合。在本文件中,计算机可读存储介质可以是任何包含或存储程序的有形介质,该程序可以被指令执行系统、装置或者器件使用或者与其结合使用。
计算机可读的信号介质可以包括在基带中或者作为载波一部分传播的数据信号,其中承载了计算机可读的程序代码。这种传播的数据信号可以采用多种形式,包括——但不限于——电磁信号、光信号或上述的任意合适的组合。计算机可读的信号介质还可以是计算机可读存储介质以外的任何计算机可读介质,该计算机可读介质可以发送、传播或者传输用于由指令执行系统、装置或者器件使用或者与其结合使用的程序。
计算机可读介质上包含的程序代码可以用任何适当的介质传输,包括——但不限于——无线、电线、光缆、rf等等,或者上述的任意合适的组合。
可以以一种或多种程序设计语言或其组合来编写用于执行本发明操作的计算机程序代码,所述程序设计语言包括面向对象的程序设计语言—诸如java、smalltalk、c++,还包括常规的过程式程序设计语言—诸如”c”语言或类似的程序设计语言。程序代码可以完全地在用户计算机上执行、部分地在用户计算机上执行、作为一个独立的软件包执行、部分在用户计算机上部分在远程计算机上执行、或者完全在远程计算机或服务器上执行。在涉及远程计算机的情形中,远程计算机可以通过任意种类的网络——包括局域网(lan)或广域网(wan)—连接到用户计算机,或者,可以连接到外部计算机(例如利用因特网服务提供商来通过因特网连接)。
在本发明所提供的几个实施例中,应该理解到,所揭露的系统,装置和方法,可以通过其它的方式实现。例如,以上所描述的装置实施例仅仅是示意性的,例如,所述单元的划分,仅仅为一种逻辑功能划分,实际实现时可以有另外的划分方式。
所述作为分离部件说明的单元可以是或者也可以不是物理上分开的,作为单元显示的部件可以是或者也可以不是物理单元,即可以位于一个地方,或者也可以分布到多个网络单元上。可以根据实际的需要选择其中的部分或者全部单元来实现本实施例方案的目的。
另外,在本发明各个实施例中的各功能单元可以集成在一个处理单元中,也可以是各个单元单独物理存在,也可以两个或两个以上单元集成在一个单元中。上述集成的单元既可以采用硬件的形式实现,也可以采用硬件加软件功能单元的形式实现。
上述以软件功能单元的形式实现的集成的单元,可以存储在一个计算机可读取存储介质中。上述软件功能单元存储在一个存储介质中,包括若干指令用以使得一台计算机设备(可以是个人计算机,服务器,或者网络设备等)或处理器(processor)执行本发明各个实施例所述方法的部分步骤。而前述的存储介质包括:u盘、移动硬盘、只读存储器(read-onlymemory,rom)、随机存取存储器(randomaccessmemory,ram)、磁碟或者光盘等各种可以存储程序代码的介质。
以上所述仅为本发明的较佳实施例而已,并不用以限制本发明,凡在本发明的精神和原则之内,所做的任何修改、等同替换、改进等,均应包含在本发明保护的范围之内。