发明内容
有鉴于此,本发明提供一种相关搜索方法,能够提高搜索的准确度。
本发明还提供一种相关搜索装置,能够提高搜索的准确度。
本发明还提供一种相关搜索系统,能够提高搜索的准确度。
为达到上述目的,本发明的技术方案是这样实现的:
一种相关搜索方法,该方法包括:
接收携带关键词的搜索请求,解析搜索请求得到关键词;
在候选数据库中查找与关键词匹配的字面索引并根据字面相似度从匹配的字面索引中计算得到字面搜索结果,在语义相关性数据库查找与关键词匹配的语义索引得到语义搜索结果;
将字面搜索结果和语义搜索结果进行加权计算,得到最终匹配关键词的搜索结果。
该方法还包括:
在设置的快速更新数据库查找与关键词匹配的更新字面索引,根据字面相似度从匹配的更新字面索引中计算得到更新字面搜索结果,在进行加权计算时,根据字面搜索结果、语义搜索结果和更新字面搜索结果,得到最终匹配关键词的搜索结果。
所述解析搜索请求得到关键词具体为:
采用反文档频率idf方式从搜索请求解析得到关键词。
所述根据字面相似度从匹配的字面索引中计算得到字面搜索结果具体为:
采用关键词权重加权方式对匹配的字面索引进行计算,得到字面搜索结果。
一种相关搜索装置,包括:收发模块、解析模块、检索模块、字面相似度计算模块、语义相似度计算模块及融合模块,其中,
收发模块,用于接收携带关键词的搜索请求,发送从融合模块得到的最终匹配关键词的搜索结果;
解析模块,用于从搜索请求中解析关键词;
检索模块,用于在候选数据库中查找与关键词匹配的字面索引,在语义相关性数据库查找与关键词匹配的语义索引;
字面相似度计算模块,用于根据字面相似度从匹配的字面索引中计算得到字面搜索结果;
融合模块,用于将字面搜索结果和语义搜索结果进行加权计算,得到最终匹配关键词的搜索结果。
检索模块,还用于在快速更新数据库查找与关键词匹配的更新字面索引;
字面相似度计算模块,还用于根据字面相似度从匹配的更新字面索引中计算得到更新字面搜索结果;
融合模块,还用于在进行加权计算时,根据字面搜索结果、语义搜索结果和更新字面搜索结果,得到最终匹配关键词的搜索结果。
所述解析模块,具体用于:
采用反文档频率idf方式从搜索请求解析得到关键词。
所述字面相似度计算模块具体用于:
采用关键词权重加权方式对匹配的字面索引进行计算,得到字面搜索结果。
一种相关搜索系统,包括:客户端、搜索引擎、候选数据库及语义相关性数据库,其中,
客户端,用于向搜索引擎发送搜索请求,该搜索请求携带关键词,接收搜索引擎返回的搜索结果;
搜索引擎,用于接收搜索请求,解析搜索请求得到关键词,在候选数据库中查找与关键词匹配的字面索引并根据字面相似度从匹配的字面索引中计算得到字面搜索结果,在语义相关性数据库查找与关键词匹配的语义索引得到语义搜索结果,将字面搜索结果和语义搜索结果进行加权计算,得到最终匹配关键词的搜索结果,返回给客户端;
候选数据库,用于对应关键词存储字面索引;
语义相关性数据库,用于对应关键词存储语义索引。
所述系统还包括快速更新数据库,用于对应关键词存储更新字面索引;
所述搜索引擎,还用于在快速更新数据库查找与关键词匹配的更新字面索引,根据字面相似度计算从匹配的更新字面索引中得到更新字面搜索结果,在进行加权计算时,根据字面搜索结果、语义搜索结果和更新字面搜索结果,得到最终匹配关键词的搜索结果。
由上述的技术方案可见,本发明在互联网网络侧提供候选数据库外,还提供语义相关性数据库,该数据库中存储与与关键词匹配的语义索引。当搜索引擎接收客户端发送的搜索请求后,从搜索请求解析得到关键词,不仅在候选数据库中查找与关键词匹配的字面索引并根据字面相似度计算得到字面搜索结果,而且在语义相关性数据库查找与关键词匹配的语义索引计算得到语义搜索结果,将字面搜索结果和语义搜索结果进行加权计算,得到最终搜索结果。这样,本发明提供的方法及系统不仅可以搜索到与关键词相匹配的字面索引,而且可以搜索到与关键词相匹配的语义索引,提高搜索的准确度,提高用户的体验度。
具体实施方式
为使本发明的目的、技术方案和优点更加清楚,下面将结合附图及具体实施例对本发明作进一步地详细描述。
为了不仅可以搜索到与关键词相匹配的字面索引,而且可以搜索到与关键词相匹配的语义索引,提高搜索的准确度,提高用户体验度,本发明在互联网网络侧提供候选数据库外,还提供语义相关性数据库,该数据库中存储与与关键词匹配的语义索引。当搜索引擎接收客户端发送的搜索请求后,从搜索请求解析得到关键词,不仅在候选数据库中查找与关键词匹配的字面索引并根据字面相似度计算得到字面搜索结果,而且在语义相关性数据库查找与关键词匹配的语义索引计算得到语义搜索结果,将字面搜索结果和语义搜索结果进行加权计算,得到最终搜索结果。
在本发明提供的实施例中,由于候选数据库中存储了匹配关键词的所有字面索引,在更新时间代价较高,一些非常新的字面索引不能快速进入到该候选数据库中,导致最终得到的搜索结果时新性不高。因此,为了克服这个问题,本发明还在互联网网络侧设置快速更新数据库,存储匹配关键词的更新字面索引,在进行字面索引搜索时,也在该快速更新数据库中搜索,以获取匹配关键词的更新字面索引并根据字面相似度计算得到更新字面搜索结果,在得到最终搜索结果时,也依据了这些更新字面搜索结果。
图3为本发明实施例提供的相关搜索系统结构示意图,包括:客户端、搜索引擎、候选数据库及语义相关性数据库,其中,
客户端,用于向搜索引擎发送搜索请求,该搜索请求携带关键词,接收搜索引擎返回的搜索结果;
搜索引擎,用于接收搜索请求,从搜索请求解析关键词,在候选数据库中查找匹配的字面索引并根据字面相似度从匹配的字面索引中计算得到字面搜索结果,在语义相关性数据库查找匹配的语义索引计算得到语义搜索结果,将字面搜索结果和语义搜索结果进行加权计算,得到最终匹配关键词的搜索结果,返回给客户端;
候选数据库,用于对应关键词存储字面索引;
语义相关性数据库,用于对应关键词存储语义索引。
在该系统中,还包括快速更新数据库,用于对应关键词存储更新字面索引;
所述搜索引擎,还用于在快速更新数据库查找匹配的更新字面索引,根据字面相似度从匹配的更新字面索引中计算得到更新字面搜索结果,在进行加权计算时,根据字面搜索结果、语义搜索结果和更新字面搜索结果,得到最终匹配关键词的搜索结果。
在该系统中,搜索引擎,还用于采用反文档频率(idf,inverse documentfrequency)方式从搜索请求解析得到关键词。
在该系统中,搜索引擎,具体用于采用关键词权重加权方式进行字面相似度计算,从匹配的字面索引中计算得到字面搜索结果。
在该系统中,加权方式为线性加权方式。
图4为本发明实施例提供的相关搜索方法流程图,其具体步骤为:
步骤401、互联网网络侧的搜索引擎接收到客户端发送的携带关键词的搜索请求;
步骤402、搜索引擎解析出搜索请求中的关键词;
在本步骤中,从搜索请求中解析出关键词;
在本步骤中,根据idf计算,采用idf较高的词作为关键词;
步骤403、搜索引擎在候选数据库中查找与关键词匹配的字面索引并根据字面相似度从匹配的字面索引中计算得到字面搜索结果;
在本步骤中,进行字面相似度计算时,采用关键词权重加权方式对匹配的字面索引进行计算,得到字面搜索结果;
步骤404、搜索引擎在语义相关性数据库查找与关键词匹配的语义索引,得到语义搜索结果;
在本步骤中,采用查询数据库的方式获取对应的语义相关性高的语义索引;
步骤405、搜索引擎将字面搜索结果和语义搜索结果进行加权计算,得到最终匹配关键词的搜索结果;
在本步骤中,加权计算为线性加权方式。
步骤406、搜索引擎将得到的最终匹配关键词的搜索结果发送给客户端。
在该方法中,步骤403和步骤404的顺序可以倒换或同时进行,这里不限制。
在该方法中,搜索引擎,还到快速更新数据库查找匹配的更新字面索引,根据字面相似度从匹配的更新字面索引中计算得到更新字面搜索结果,在进行加权计算时,根据字面搜索结果、语义搜索结果和更新字面搜索结果,得到最终匹配关键词的搜索结果。
图5为本发明实施例提供的相关搜索装置结构示意图,包括:收发模块、解析模块、检索模块、字面相似度计算模块、语义相似度计算模块及融合模块,其中,
收发模块,用于接收客户端发送的携带关键词的搜索请求,发送给解析模块,接收融合模块发送的最终匹配关键词的搜索结果,发送给客户端;
解析模块,用于从搜索请求中解析关键词,发送给检索模块;
检索模块,用于在候选数据库中查找匹配的字面索引,发送给字面相似度计算模块,在语义相关性数据库查找匹配的语义索引,发送给融合模块;
字面相似度计算模块,用于根据字面相似度从匹配的字面索引中计算得到字面搜索结果,发送给融合模块;
融合模块,用于将从字面相似度计算模块接收的字面搜索结果和从检索模块接收的语义搜索结果进行加权计算,得到最终匹配关键词的搜索结果,发送给收发模块。
在该装置中,检索模块,还用于在快速更新数据库查找匹配的更新字面索引,发送给语义相似度计算模块;
字面相似度计算模块,还用于根据字面相似度从匹配的更新字面索引中计算得到更新字面搜索结果,发送给融合模块;
融合模块,还用于在进行加权计算时,根据字面搜索结果、语义搜索结果和更新字面搜索结果,得到最终匹配关键词的搜索结果。
在该实施例中,所述解析模块,用于从搜索请求中解析关键词具体为:
采用反文档频率idf方式从搜索请求解析得到关键词。
在该实施例中,所述字面相似度计算模块,用于从匹配的字面索引中计算得到字面搜索结果具体为:
采用关键词权重加权方式对匹配的字面索引进行计算,得到字面搜索结果。
在本发明实施例中,搜索引擎是根据idf提取出关键词,然后在候选数据库中查找匹配的字面索引并根据字面相似度计算得到字面搜索结果,以下详细说明这一过程。
在搜索请求中携带有文件,搜索引擎采用切分查询方式,比如采用常用的正向最大匹配或逆向最大匹配算法等,获取文件中的各个切分词;
然后获取各个切分词的权重,采用idf表示各个词的词权重,idf是一个词普遍重要性的度量,某一词的idf,可以由总文件数目除以包含该词语之文件的数目,再将得到的商取对数得到,如公式(1):
公式(1)
其中,|D|为总文件数目,|{j:ti∈dj}包含词ti的文件数目,如果该词不在文件中,就会导致被除数为0,因此一般情况下可以使用|{j:ti∈dj}|+1表示。
最后,选取idf最高的词作为关键词,在候选数据库中查找与关键词匹配的字面索引。
在候选数据库中查找匹配关键词的字面索引时,采用反向字面索引方式,举一个具体例子说明。
假设字面索引为:
T0 |
“it is what it is” |
T1 |
“what is it” |
T2 |
“it is a banana” |
得到的反向字面索引为:
“a” |
{2} |
“banana” |
{2} |
“is” |
{0,1,2} |
“it” |
{0,1,2} |
“what” |
{0,1} |
如果关键词为“what”,“is”和“it”,则对应的集合为:
{0,1}∩{0,1,2}∩{0,1,2}={0,1}。
对关键词,得到反向字面索引,包括关键词对应的字面索引标识及在字面索引中的位置,比如关键词“banana”的字面索引为{(2,3)},就是说字面索引“banana”在第三个字面索引中(T2),且在第三个字面索引中的位置是第四个单词,地址为3。
“a” |
{(2,2)} |
“banana” |
{(2,3)} |
“is” |
{(0,1),(0,4),(1,1),(2,1)} |
“it” |
{(0,0),(0,3),(1,2),(2,0)} |
“what” |
{(0,2),(1,0)} |
如果关键词为“what is it”,则与该与关键词匹配的字面索引为字面索引0和字面索引1。
根据字面相似度计算得到字面搜索结果
关键词的字面相似度,是根据关键词的权重与文件中所有词的权重之和的比例计算,其中权重可以采用IDF表示,字面相似度fh采用公式(2)表示:
其中Q为关键词,H为得到的字面索引,idfw表示关键词的权重。该公式利用关键词中与字面索引的公共部分的权重占得到的字面索引中所有词权重的比例描述字面搜索结果,无论从原始搜索的角度来看得到的字面搜索结果,还是从得到的字面搜索结果的角度来看原始搜索,该权重是一致的。例如:当关键词为“封神榜全集”,得到的匹配字面索引为“封神榜下载”的字面相似度就是“封神榜”的权重与“封神榜”、“全集”、“下载”这3个词的权重的比例。
字面相似度fh还可以采用公式(3)表示:
公式(3)利用关键词中与字面索引的公共部分的权重占关键词中所有词权重的比例描述字面搜索结果。例如,当关键词为“封神榜”,得到的匹配字面索引为“封神榜下载”的字面相似度就是“封神榜”的权重与关键词“封神榜”自身的权重的比例,就是fh为1。
在本发明实施例中,搜索引擎到语义相关性数据库查找匹配的语义索引过程与字面索引不同,语义相似度计算得到语义搜索结果,是在语义相关性数据库查找匹配的语义索引得到的。
例如:关键词“孙悟空的演员”在语义检索过程中可以检索出“三国演义的演员”和“六小龄童”。
在本发明实施例中,搜索引擎根据字面搜索结果和语义搜索结果采用加权计算,得到最终匹配关键词的搜索结果的具体过程如下所述。
如图6所示,图6为本发明实施例采用加权计算得到最终匹配关键词的搜索结果的示意图,如图所示:
对于关键词“Q”,搜索引擎在候选数据中匹配字面索引,并计算得到字面搜索结果,在语义相关性数据库1和语义相关性数据库2匹配语义索引,并计算得到语义搜索结果,搜索引擎还可以在快速更新数据中匹配更新字面索引,并计算得到更新字面搜索结果。其中,对于关键词“Q”,得到的字面搜索结果A、B和C为:{(A,0.5),(B,0.3),(C,0.2)};得到的更新字面搜索结果B和C为:{(B,0.1),(C,0.2)};得到的语义搜索结果B和D为:{(B,0.2)(D,0.2)}。
采用加权计算上述得到的结果,可以采用线性加权方式计算对于关键词“Q”的搜索结果H,公式(4):
其中的i表示索引,αi表示第i个索引的加权系数,wi(H)表示关键词在第i个索引的得分,当所有αi为1时,上例最终得到的搜索结果H为{(B,0.6),(A,0.5),(C,0.4),(D,0.2)}。
在本发明实施例中,由于候选数据库中存储的匹配关键词的字面索引数量庞大,更新代价比较高,所以增加了快速更新数据库存储匹配关键词的更新索引,进行随时更新。对于候选数据库,可以设置比较长的更新周期,比如设置每天一次,对于快速更新数据库,可以设置比较短的更新周期,比如设置每半小时一次。无论是候选数据库,还是快速更新数据库,都是采用如图7所示的本发明实施例提供的更新方法流程图进行更新,其具体步骤为:
步骤701、判定是否满足设定条件,如果是,执行步骤702;否则,结束;
步骤702、为候选数据库或快速更新数据库中重新建立字面索引匹配关键词;
步骤703、将重新建立的字面索引匹配关键词加载到候选数据库或快速更新数据库中;
步骤704、将候选数据库或快速更新数据库中的匹配关键词的字面索引进行替换后,结束。
语义相关性数据库也可以更新,更新方式和图7的过程相似,只不过采用更新的是匹配关键词的语义索引。
可以看出,本发明实施例不仅搜索到了与关键词相匹配的字面索引,而且搜索到了与关键词相匹配的语义索引,提升了相关搜索结果的准确度;本发明实施例引入了快速更新数据库,避免单一的候选数据库更新字面索引缓慢问题,让快速更新数据库快速更新索引,有效提升相关搜索结果的时新性。
以上所述仅为本发明的较佳实施例而已,并非用于限定本发明的保护范围。凡在本发明的精神和原则之内,所作的任何修改、等同替换以及改进等,均应包含在本发明的保护范围之内。