一种分层过滤文档的方法及装置的制造方法_3

文档序号:9579381阅读:来源:国知局
样的方式从当前文档过滤层的待过滤文档集合中选取文档时,若以预定间隔来选取文档,在当前文档过滤层的待过滤文档集合中文档的数量非常多时,将从待过滤文档集合中选取出数量很多的文档,如此后续根据组成的第一文档列表进行过滤处理时计算量仍然很大。所以在间隔采样时,采样间隔可以与当前文档过滤层的待过滤文档集合包括的文档的数量相适应,文档的数量越大,采样间隔越大,文档数量越小,则采样间隔越小。具体间隔采样的选取操作包括:
[0076]预设采样策略中可以设置多个采样间隔,每个采样间隔分别对应一个文档数量区间。根据预设采样策略和当前文档过滤层的待过滤文档集合包括的文档的数量,确定待过滤文档集合包括的文档的数量所对应的文档数量区间,将该数量区间对应的采样间隔确定为文档的采样间隔,然后按照该文档的采样间隔从待过滤文档集合中选取文档,以得到多个文档。
[0077]例如,假设在预设采样策略中,设置采样间隔10对应于文档数量区间为[2000,5000],设置采样间隔20对应于文档数量区间为(5000,10000],假设当前文档过滤层的待过滤文档集合包括的文档的数量为8000,则确定文档数量8000对应的区间为(5000, 10000],则确定当前文档过滤层的待过滤文档集合的采样间隔为20。从待过滤文档集合包括的8000个文档中,每间隔20个文档选取一个文档,一共选取出400个文档。
[0078]通过步骤101的操作从待过滤文档集合中选取出文档组成第一文档列表。由于第一文档列表中文档的排列顺序与待过滤文档集合中文档的排列顺序一致。
[0079]步骤102:按照当前文档过滤层的相关性计算方式,分别计算第一文档列表中每个文档的质量值;
[0080]对于第一文档列表中包括的每个文档,从文档中获取预设的当前文档过滤层所采用的特征的参数值,根据获取的特征的参数值,通过预设的相关性评分算法计算出该文档的质量值。例如,假设预设的当前文档过滤层所采用的特征为文档长度和关键词出现次数,假设预设的相关性评分算法为BM25算法,则获取文档的长度,以及统计关键词在该文档中出现的次数,根据该文档的长度以及关键词出现的次数,通过BM25算法计算出该文档的质量值。
[0081]步骤103:根据第一文档列表中的每个文档的质量值,对第一文档列表中的文档进行重新排序,得到第二文档列表;
[0082]根据上述计算出的第一文档列表中每个文档的质量值,按照预设顺序对第一文档列表中的文档进行重新排序,得到第二文档列表。
[0083]上述预设顺序与待过滤文档集合中文档的排序方式相同,即待过滤文档集合中文档若按照质量值从大到小排序,则该预设顺序也为按照质量值从大到小排序。若待过滤文档集合中文档按照质量值从小到大排序,则该预设顺序也为按照质量值从小到大排序。
[0084]这样重新排序得到的第二文档列表中文档的排序方式与第一文档列表中文档的排序方式相同,不同的是第一文档列表中文档是按照上一文档过滤层的质量值进行排序的,而第二文档列表中文档是按照当前文档过滤层的质量值进行排序的。所以若第一文档列表中文档的排列顺序与第二文档列表中文档的排列顺序非常相近或一致的话,表示按照当前文档过滤层的相关性计算方式计算文档的质量值并对文档进行排序的排序结果,与按照上一文档过滤层的相关性计算方式计算文档的质量值并对文档进行排序的结果很相近,此时当前文档过滤层不需要对待过滤文档集合中的每个文档进行计算处理。
[0085]因此在得到第二文档列表之后,还需要通过如下步骤104的操作来确定第一文档列表和第二文档列表之间的一致性程度,并根据两者之间的一致性程度来对待过滤文档集合进行过滤。
[0086]步骤104:根据第一文档列表和第二文档列表的一致性程度,对当前文档过滤层的待过滤文档集合进行过滤。
[0087]根据有序列表顺序一致性指标,通过预设的一致性算法计算第一文档列表与第二文档列表之间的一致性程度。一致性指标可以为DCG(Discounted Cumulative Gain,衡量搜索引擎质量指标)或nDCG(normalize Discounted Cumulative Gain,标准衡量搜索引擎质量指标)等网页评测指标。预设的一致性算法可以为DCG算法或nDCG算法等。
[0088]上述计算出的一致性程度位于数值区间[0,1]内。如果该一致性程度趋近于1,则表明第一文档列表与第二文档列表中文档的排列顺序相差不大,进而表明待过滤文档集合中按照上一文档过滤层的质量值进行的排序与按照当前文档过滤层的质量值进行的排序相差不大。如果该一致性程度趋近于0,则表明第一文档列表与第二文档列表中文档的排列顺序相差很大,进而表明待过滤文档集合中按照上一文档过滤层的质量值进行的排序与按照当前文档过滤层的质量值进行的排序相差非常大。
[0089]在本发明实施例中,预先设置了预设一致性阈值,该预设一致性阈值可以为0.85或0.9等接近于1的数值。判断上述一致性程度是否大于该预设一致性阈值,当判断出上述一致性程度大于该预设一致性阈值时,确定第一文档列表中文档的排列顺序与第二文档列表中文档的排列顺序一致。否则,当上述一致性程度小于或等于该预设一致性阈值时,则确定第一文档列表中文档的排列顺序与第二文档中文档的排列顺序不一致。
[0090]当确定出第一文档列表中文档的排列顺序与第二文档列表中文档的排列顺序一致时,确定待过滤文档集合中文档的排列顺序可信,不需要再按照当前文档过滤层的相关性计算方式计算每个文档的质量值并重新排序,而是直接过滤掉当前文档过滤层的待过滤文档集合中满足预设过滤条件的文档。其中,预设过滤条件可以为过滤掉质量值低于预设质量阈值的文档,或者预设过滤条件也可以为保留质量值最高的预设数量个文档并将其它文档过滤掉。
[0091]当确定出第一文档列表中文档的排列顺序与第二文档列表中文档的排列顺序不一致时,确定待过滤文档集合中文档的排列顺序不可信,按照当前文档过滤层的相关性计算方式计算待过滤文档集合中每个文档的质量值,根据计算的质量值,对待过滤文档集合中的文档重新排序,从排序后的待过滤文档集合中过滤掉满足上述预设过滤条件的文档。
[0092]在本发明实施例中,通过第一文档列表与第二文档列表之间的一致性程度,确定待过滤文档集合中文档的排列顺序的可信性,当确定出待过滤文档集合中文档的排列顺序的可信时,直接对待过滤文档集合进行过滤,只有当确定出待过滤文档集合中文档的排列顺序的不可信时,才需要计算待过滤文档集合中每个文档的质量值。如此在待过滤文档集合中文档的排列顺序可信时,可以大大降低当前文档过滤层需要计算的文档的数量。
[0093]在搜索文档的过程中,每个过滤层数都可以按照上述步骤101-104的操作来对待过滤文档集合进行过滤,如此当多个层数中存在待过滤文档集合中文档的排列顺序可信时,可以大大降低整个搜索过程中需要计算的文档的数量,提高搜索效率,缩短搜索响应时间。
[0094]在本发明实施例中还预先设置了停止过滤的条件,该预设的停止过滤条件可以为:过滤后的待过滤文档集合中的文档的数量低于一定数值时停止,即此时过滤后剩余的文档数量已经达到了预期值,可以停止过滤。
[0095]或者,该预设的停止过滤条件可以为在当前文档过滤层的层数为最后一层时则停止文档过滤的操作,即文档集合经过最后一层文档过滤层过滤后,就停止文档过滤。另外,停止过滤的层数也可以由用户根据具体需要进行设定,如一种应用场景中,设置有10层文档过滤层,但用户的某次搜索中,不需要这么多层的文档过滤,如可能只需要5层文档过滤,则可以设置当进行到第5层文档过滤时就停止。此种情况下,在判断出当前层的层数为5时,在当前层文档过滤完成后就停止继续过滤。
[0096]每个文档过滤层根据当前文档过滤层的层数,或者根据过滤后的待过滤文档集合中文档的数量,判断出达到预设停止条件时,则将过滤后的待过滤文档集合中的文档确定为搜索结果。判断出没有达到预设停止条件时,则将过滤后的待过滤文档集合作为新的文档集合,通过下一文档过滤层按照本发明实施例提供的方法继续对新的文档集合进行过滤,直到达到预设停止条件为止。
[0097]为了更好的理解本发明实施例提供的分层过滤文档的方法在提高搜索效率方面的效果,下面举例进行说明。
[0098]例如,假设现在一共有三层文档过滤层,第一层文档过滤层需要计算10万篇文档,并选择其中最好的5000篇文档给第二层文档过滤层,第二层文档过滤层选择5000篇文档中最好的200篇给第三层文档过滤层。假设第一层文档过滤层计算一篇文档的运算开销为1,第二层文档过滤层计算一篇文档的运算开销为10,第三层文档过滤层计算一篇文档的运算开销为50。
[0099]若按照现有的文档过滤方式直接分层计算,则总开销为10w*l+5000*10+200*50=16w0而如果按照本发明实施例提供分层过滤文档的方式,则第二层文档过滤层将5000篇文档按照200的大小划分文档子集合,一共可以分成25个文档子集合,从每个文档子集合内抽取20篇文档,一共抽取500篇进行相关性计算。假设在最好的情况下,即第一层文档过滤层的排序结果和第二层文档过滤层的排序结果基本一致,则第二层过滤文档层可以直接将这5000篇文档
当前第3页1 2 3 4 5 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1