一种基于查询日志的数据处理方法和系统的制作方法_3

文档序号:8472963阅读:来源:国知局
rityPrimitives Evaluat1n Message Digest, RACE原始完整性校验消息摘要)的值,将计算所得的SHA值或RIPEMD值作为每个query的标识。
[0106]在每个query中,将每个η元共现片段的内容和该query的query id映射成一组新的键值对。所述键值对中,η元共现片段的内容作为键值对的key,query id作为键值对的value。对于每个query,穷举每个query中的η元共现片段,并输出每个η元共现片段和query id组成的键值对。
[0107]例如,查询日志中只下面两个代码化的query语句:
[0108]“queryl= (PHRASE: ‘中国’ AND PHRASE: ‘人民’ AND PHRASE: ‘大学’)”
[0109]“query2= (PHRASE: ‘中国’ AND PHRASE: ‘人民’ AND PHRASE: ‘银行’)”
[0110]根据上述确定最大共现片段元数的方法,queryl的最小粒度片段数为3,query2的最小粒度片段数也为3,则最大共现片段元数为3 ;则在本步骤中对查询日志进行2?3元共现片段的映射和输出,即所述的对η元共现片段的映射和输出包括二元共现片段的频次和三元共现片段的映射和输出。
[0111]假设η取2,则此时需要在map阶段对上述两个query语句进行二元共现片段的映射和输出,具体步骤如下:
[0112]首先计算queryl的md5值,并将计算出的md5值作为queryidl。然后穷举queryl中的二元共现片段,所述的queryl中的二元共现片段包括:“PHRASE_中国_人民”、“PHRASE_中国_大学”和“PHRASE_人民_大学”这三个。所以对于queryl,map阶段输出的二元共现片段内容和query id的键值对如下:
[0113]< “PHRASE_ 中国 _ 人民”,queryidl〉,
[0114]< “PHRASE_ 中国 _ 大学”,queryidl〉,
[0115]< “PHRASE_ 人民 _ 大学”,queryidl〉。
[0116]同理,对于query2,首先计算query2的md5值,并将计算出的md5值作为queryid2。穷举query2中的二元共现片段,所述的query2中的二元共现片段包括:“ PHRASE_中国_人民”、“ PHRASE_中国_银行”和“ PHRASE_人民_银行”这三个。所以则对于query2, map阶段输出的二元共现片段和query id的键值对如下:
[0117]< “PHRASE_ 中国 _ 人民”,queryid2>,
[0118]< “PHRASE_ 中国 _ 银行”,queryid2>,
[0119]< “PHRASE_ 人民 _ 银行”,queryid2>。
[0120](2) reduce 阶段
[0121]主要用于对上述map阶段输出的键值对进行合并和统计。先将查询日志中map阶段输出的具有相同内容的η元共现片段的键值对进行合并,再统计每一 η元共现片段出现的频次,并输出统计后的键值对;所述键值对中,共现片段的内容作为键值对的key,共现片段的频次作为键值对的value。
[0122]例如上述map阶段的所述例子,查询日志中仅包含queryl和query2两个query语句,那么在reduce阶段先将map阶段中queryl和query2输出的具有相同二元共现片段内容的键值对进行合并,得到结果如下:
[0123]< “PHRASE_ 中国 _ 人民”,(queryidl, queryid2)>,
[0124]< “PHRASE_ 中国 _ 大学”,queryidl〉,
[0125]< “PHRASE_ 人民 _ 大学”,queryidl〉,
[0126]< “PHRASE_ 中国 _ 银行”,queryid2>,
[0127]< “PHRASE_ 人民 _ 银行”,queryid2>。
[0128]再根据上述合并后的键值对,统计每一二元共现片段出现的次数,结果如下:
[0129]〈 “PHRASE_ 中国 _ 人民”,2>,
[0130]〈 “PHRASE_ 中国 _ 大学”,1>,
[0131]〈 “PHRASE_ 人民 _ 大学”,1>,
[0132]< “ PHRASE_ 中国 _ 银行 ”,I >,
[0133]< “ PHRASE_ 人民 _ 银行 ”,I >。
[0134]相应地,在上述例子中,η取3时,可以进行三元共现片段的分析枚举,方法如下:
[0135]在map阶段,首先分别将queryl和query2的md5值作为queryidl和queryid2。然后分别穷举queryl和query2中的三元共现片段。对于queryl,所述的三元共现片段包括:“PHRASE_中国_人民_大学”。对于query2,所述的三元共现片段包括:“PHRASE_中国_人民_银行”这两个。
[0136]所以,对于queryl, map阶段输出的三元共现片段和query id的键值对如下:
[0137]< “PHRASE_ 中国 _ 人民 _ 大学”,queryidl〉。
[0138]对于queryl, map阶段输出的三元共现片段和query id的键值对如下:
[0139]< “PHRASE_ 中国 _ 人民 _ 银行”,queryid2>。
[0140]在reduce阶段,先将map阶段中queryl和query2输出的具有相同二元共现片段内容的键值对进行合并。再统计合并后的键值对中各三元共现片段出现的频次。
[0141]由于输出的键值对中没有三元共现片段内容相同的键值对,因此输出的键值对为:
[0142]< “PHRASE_ 中国 _ 人民 _ 大学”,queryidl〉;
[0143]< “PHRASE_ 中国 _ 人民 _ 银行”,queryid2>。
[0144]统计上述键值对中三元共现片段出现的频次,结果为:
[0145]〈 “PHRASE_ 中国 _ 人民 _ 大学”,1> ;
[0146]〈 “PHRASE_ 中国 _ 人民 _ 银行”,1>。
[0147]对所述查询日志中查询请求的多元共现片段进行频次统计可以分析出每一共现片段的频次,根据共现片段的频次可以分析出哪些是经常被查询的内容,为后续如何选取共现片段进行存储提供依据。
[0148]S103:对于每一多元共现片段,利用该多元共现片段在元数更高的共现片段中的出现频次修正所述多元共现片段的频次。
[0149]在对查询日志进行多元共现片段统计频次时,查询日志中某一个查询请求中的一个片段,可能会既出现在低元共现片段中又出现在高元共现片段中,这样内容重复的部分频次会被重复计算。为了使频次的计数精确,需要对S102中统计了频次的共现片段进行频次值的修正。
[0150]对于某一二元共现片段而言,包含了该二元共现片段内容的三元共现片段或者更高元的共现片段为所述二元共现片段的高元共现片段。而N元共现片段为元数最高的多元共现片段,其频次在本步骤中不需要进行修正。因此,本实施例对所述多元共现片段的频次的修正包括对元数小于N的多元共现片段的频次进行修正。
[0151]假设k为(N-1)?2中的任意一个整数。由于对于S102中统计了频次的所有k元共现片段中的某一个k元共现片段,包含了该k元共现片段内容的k+Ι元共现片段的查询结果必然也是该k元共现片段的部分查询结果。因此,对k元共现片段进行频次修正的方法可以为:在统计好了的k元共现片段的频次基础上,将包含了该k元共现片段内容的k+1元共现片段的频次减去,将做了减法以后的k元共现片段内容及其频次进行输出。上述方法实现时,从(N-1)元至2元依次做减法进行修正,由于在对k+Ι元共现片段频次进行修正时,已经减去了 k+2元共现片段的影响,所以对于k元共现片段只需要考虑k+Ι元共现片段的影响,不需要考虑更高元的共现片段对所述k元共现片段频次的影响。因此,本实施例对所述多元共现片段的频次的修正包括按照元数从高到低的顺序依次对元数小于N的多元共现片段的频次进行修正。
[0152]上述方法可以利用map-reduce方法来实现:
[0153]在map阶段,首先统计S102中分析的k元共现片段及其频次,然后统计包含了 k元共现片段内容的k+Ι元共现片段的频次,将上述k+Ι元共现片段的频次改为相应值的负值,再将上述k元和k+Ι元共现片段内容及频次作为键值对进行输出。所述键值对中,k元或k+Ι元共现片段的内容为value,频次为key。
[0154]在reduce阶段,将map阶段输出的k元共现片段的频次和包含了所述k元共现片段内容的k+Ι元共现片段的频次进行叠加,作为k元共现片段的频次。将叠加后的k元共现片段内容及频次作为键值对进行输出。所述键值对中,k元共现片段的内容为value,叠加后的频次为key。
[0155]例如,取k值为2,即对二元共现片段频次进行修正。
[0156](I)在 map 阶段
[0157]先输出二元共现片段的频次和包括了上述二元共现片段内容的三元共现片段的频次。假设输出结果如下:
[0158]两个二元共现片段及其频次为:
[0159]〈 “PHRASE_ 中国 _ 人民”,200〉,
[0160]〈 “PHRASE_ 中国 _ 大学”,110〉,
[0161]与上述二元共现片段“PHRASE_中国_人民”相关的三元共现片段包括:
[0162]“PHRASE中国人民大学”和“PHRASE中国人民研究生”。
[0163]与二元共现片段“PHRASE_中国_大学”相关的三元共现片段包括:
[0164]“PHRASE中国人民大学”和“PHRASE中国大学研究生”。
[0165]并且统计上述两个三元共现片段的频次,分别为:
[0166]< “PHRASE 中国人民大学”,10> ;
[0167]< “PHRASE中国人民研究生”,30> ;
[0168]< “PHRASE中国大学研究生”,10>。
[0169]然后将上述k+Ι元共现片段的频次改为相应值的负值,再将上述二元和三元共现片段内容及频次作为键值对进行输出。输出结果为:
[0170]〈 “PHRASE_ 中国 _ 人民”,200〉;
[0171]〈 “PHRASE_ 中国 _ 大学”,110〉;
[0172]< “PHRASE 中国人民大学”,_10> ;
[0173]< “PHRASE中国人民研究生”,_30> ;
[0174]< “PHRASE中国大学研究生”,_10>。
[0175](2)在 reduce 阶段
[0176]将map阶段输出的二元共现片段的频次和包含了所述二元共现片段内容的三元共现片段的频次进行叠加,作为二元共现片段的频次。以上述map阶段的例子来说明:
[0177]二元共现片段“PHRASE_中国_人民”及包含了该二元共现片段内容的三元共现片段键值对为:
[0178]〈 “PHRASE_ 中国 _ 人民”,200〉;
[0179]< “PHRASE 中国人民大学”,_10> ;
[0180]< “PHRASE中国人民研究生”,_30> ;
[0181]则叠加后二元共现片段“PHRASE_中国_人民”的结果为:
[0182]〈 “PHRASE_ 中国 _ 人民”,160〉。
[0183]同理,二元共现片段“PHRASE_中国_大学”及包含了该二元共现片段内容的三元共现片段键值对为:
[0184]〈 “PHRASE_ 中国 _ 大学”,110〉;
[0185]< “PHRASE 中国人民大学”,_10> ;
[0186]< “PHRASE中国大学研究生”,_10>。
[0187]则叠加后二元共现片段“PHRASE_中国_大学”的结果为:
[0188]〈 “PHRASE_ 中国 _ 大学”,90>。
[0189]因此,在reduce阶段,上述两个二元共现片段去重后的输出结果为:
[0190]〈 “PHRASE_ 中国 _ 人民”,160〉;
[0191]〈 “PHRASE_ 中国 _ 大学”,90>。
[0192]该步骤实现了依次从高元共现
当前第3页1 2 3 4 5 6 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1