进行网络资源聚类的方法及装置制造方法

文档序号:6522093阅读:208来源:国知局
进行网络资源聚类的方法及装置制造方法
【专利摘要】本发明实施例提供一种进行网络资源聚类的方法及装置,解决现有网络资源聚类时无法同时保证效率和准确度的问题。该方法根据总的聚类数量,设置对网络资源进行聚类处理的层数,确定每层对应的子聚类数量,对每层对待聚类的网络资源处理时,并行的分别对每组待聚类的网络资源进行处理。本发明实施例中将聚类处理的过程分层处理,在对网络资源进行聚类处理时,每一层针对上一层聚类后的每组网络资源分别进行聚类处理,提高采用K-Means算法对网络资源聚类处理的效率,并且在每层都遍历待聚类的网络资源,并且在每层采用K-Means算法,根据设置的迭代次数或距离阈值收敛条件进行聚类处理,在提高聚类效率的同时也能保证聚类结果的精确性。
【专利说明】进行网络资源聚类的方法及装置
【技术领域】
[0001]本发明涉及网络搜索【技术领域】,尤其涉及一种进行网络资源聚类的方法及装置。【背景技术】
[0002]K-Means算法可以用于对搜索到的网络资源进行聚类处理,在进行聚类处理时,根据初始化确定出的网络资源的每个中心点,通过迭代的方式,逐次更新各聚类的中心点的值,直到得到最好的聚类结果。
[0003]K-Means算法复杂度根据其处理的网络资源的数量、网络资源的维度、聚类数量以及迭代的次数来确定。而在实际的网络资源聚类的过程中,需要进行聚类的网络资源的数量非常的大,可以达到上百亿或者上千亿,而网络资源的维度也可以达到上千维度或者上万维度,聚类数量也可以达到百万级别,此时即使迭代的次数不到100,但在进行聚类处理时,非常耗时,导致聚类效率较低。实验表明上述聚类过程采用性能较优良的100台服务器并行处理,也需要7天以上的时间才能完成。
[0004]为了改善该迭代过程,提高聚类处理过程的效率,google公司提出了一种基于流式思路的K-Means算法,具体实现架构如下:
[0005]初始化
[0006]While (数据流未结束){
[0007]While (中心点未超过阈值){
[0008]流式的中心点计算
[0009]}
[0010]While (中心点超过阈值){
[0011]中心点压缩
[0012]}
[0013]}
[0014]Batch Kmeans 算法计算
[0015]Ball Kmeans Algorithm 计算
[0016]该方法针对全部的网络资源只遍历一遍,虽然提高了聚类处理的效率,但是导致聚类的结果不够精确。

【发明内容】

[0017]本发明实施例提供一种进行网络资源聚类的方法及装置,用以解决现有技术中基于K-Means算法进行网络资源聚类时无法同时保证聚类的效率和准确度的问题。
[0018]本发明实施例提供了一种进行网络资源聚类的方法,该方法包括:
[0019]根据设置的总的聚类数量,及对网络资源进行聚类处理的层数,确定每层对应的子聚类数量,其中所述层数大于等于2 ;
[0020]针对每层中每组待聚类的网络资源,分别并行进行下述步骤:[0021]针对每组待聚类的网络资源,根据该层对应的子聚类数量,在该组中初始化得到相应数量的中心点;
[0022]根据该组中的每个中心点及该组中待聚类的网络资源,采用K-Means算法进行聚类处理;并
[0023]当确定当前为最后一层聚类处理时,输出网络资源的聚类结果,否则,将当前聚类后的每组网络资源作为下一层聚类处理的每组待聚类的网络资源,进行下一层的聚类处理。
[0024]较佳地,为了进一步提高聚类处理的效率,所述方法在对网络资源进行第一层的聚类处理之前,所述方法还包括:
[0025]判断待聚类的网络资源的维度是否不大于设定的维度阈值;
[0026]当待聚类的网络资源的维度大于设定的维度阈值时,按照设置的降低维度的方法对待聚类的网络资源进行降维处理。
[0027]较佳地,为了保证提供的结果的准确性,当对待聚类的网络资源进行降维处理后,所述输出网络资源的聚类结果之前,所述方法还包括:
[0028]针对每组聚类后的网络资源,根据每个网络资源降低的维度,对该网络资源进行升高维度的处理。
[0029]较佳地,为了进一步提高聚类处理的效率,所述按照设置的降低维度的方法对待聚类的网络资源进行降维处理包括:
[0030]在所述待聚类的网络资源中进行数据采样,根据采样后的数据及设置的降低维度的方法,确定降维模型;
[0031]根据降维模型及待聚类的网络资源,对待聚类的网络资源进行降维处理。
[0032]较佳地,为了扩大本发明实施例的适用范围,所述网络资源包括:
[0033]图片资源、文字资源和音频资源。
[0034]较佳地,为了保证提供的结果的准确性,所述在该组中初始化得到相应数量的中心点包括:
[0035]判断当前进行的是否为第一层聚类处理;
[0036]若当前进行的是第一层聚类处理,将总的网络资源作为第一层进行聚类处理的一组待聚类的网络资源,根据该第一层对应的子聚类数量,在组待聚类的网络资源中初始化得到相应数量的中心点;
[0037]否则,该每组待聚类的网络资源为上一层聚类后得到的每组网络资源,根据该层对应的子聚类数量,在每组待聚类的网络资源中初始化,得到相应数量的中心点。
[0038]本发明实施例提供一种进行网络资源聚类的装置,所述装置包括:
[0039]确定模块,用于根据设置的总的聚类数量,及对网络资源进行聚类处理的层数,确定每层对应的子聚类数量,其中所述层数大于等于2 ;
[0040]聚类模块,用于针对每层中每组待聚类的网络资源,分别并行进行下述步骤:针对每组待聚类的网络资源,根据该层对应的子聚类数量,在该组中初始化得到相应数量的中心点;根据该组中的每个中心点及该组中待聚类的网络资源,采用K-Means算法进行聚类处理;
[0041]判断模块,用于判断聚类模块当前进行的是否为最后一层聚类处理;[0042]输出返回模块,用于当判断模块确定当前为最后一层聚类处理时,输出网络资源的聚类结果,否则,将当前聚类后的每组网络资源作为下一层聚类处理的每组待聚类的网络资源,返回聚类模块继续处理。
[0043]较佳地,为了进一步提高聚类处理的效率,所述装置还包括:
[0044]降维模块,用于判断待聚类的网络资源的维度是否不大于设定的维度阈值;当待聚类的网络资源的维度大于设定的维度阈值时,按照设置的降低维度的方法对待聚类的网络资源进行降维处理。
[0045]较佳地,为了保证提供的结果的准确性,所述输出返回模块,还用于当降维模块对待聚类的网络资源进行降维处理后,针对每组聚类后的网络资源,根据每个网络资源降低的维度,对该网络资源进行升高维度的处理。
[0046]较佳地,为了进一步提高聚类处理的效率,所述降维模块,具体用于在所述待聚类的网络资源中进行数据采样,根据采样后的数据及设置的降低维度的方法,确定降维模型;根据降维模型及待聚类的网络资源,对待聚类的网络资源进行降维处理。
[0047]较佳地,为了扩大本发明实施例的适用范围,所述聚类模块,具体用于对图片资源、文字资源和音频资源进行聚类处理。
[0048]较佳地,为了保证提供的结果的准确性,所述聚类模块,具体用于判断当前进行的是否为第一层聚类处理;若当前进行的是第一层聚类处理,将总的网络资源作为第一层进行聚类处理的一组待聚类的网络资源,根据该第一层对应的子聚类数量,在组待聚类的网络资源中初始化得到相应数量的中心点;否则,该每组待聚类的网络资源为上一层聚类后得到的每组网络资源,根据该层对应的子聚类数量,在每组待聚类的网络资源中初始化,得到相应数量的中心点。
[0049]本发明实施例提供了一种进行网络资源聚类的方法及装置,该方法中根据总的聚类数量,设置对网络资源进行聚类处理的层数,从而确定每层对应的子聚类数量,在每层对待聚类的网络资源进行处理时,可以并行的分别对每组待聚类的网络资源进行处理,在每层针对每组待聚类的网络资源,根据该层对应的子聚类数量,在该组中初始化得到相应数量的中心点,采用K-Means算法进行聚类处理,并在该层为最后一层聚类处理时,输出网络资源的聚类结果。由于在本发明实施例中将聚类处理的过程分层,每层对应子聚类数量,在对网络资源进行聚类处理时,每一层针对上一层聚类后的每组网络资源分别进行聚类处理,达到在每一层中针对每组待聚类网络资源的并行处理,从而提高采用K-Means算法对网络资源聚类处理的效率,而整个的聚类处理分层进行每层针对每组待聚类的网络资源分别进行聚类处理,在每层都遍历待聚类的网络资源,并且在每层采用K-Means算法,根据设置的迭代次数或距离阈值等收敛条件进行聚类处理,因此在提高聚类效率的同时也能保证聚类结果的精确性。
【专利附图】

【附图说明】
[0050]图1为本发明实施例提供的一种进行网络资源聚类的过程示意图;
[0051]图2为本发明实施例提供的一种进行网络资源聚类的具体实施过程示意图;
[0052]图3为本发明实施例提供的一种进行网络资源聚类的另一详细实施过程示意图;
[0053]图4为本发明实施例提供一种进行网络资源聚类的装置结构示意图。【具体实施方式】
[0054]本发明为了在对网络资源进行聚类处理时,保证聚类结果的准确性,同时提高聚类过程的效率,提供了一种网络资源聚类的方法及装置。
[0055]下面结合说明书附图,对本发明实施例进行详细说明。
[0056]图1为本发明实施例提供的一种进行网络资源聚类的过程示意图,该过程包括以下步骤:
[0057]S101:根据设置的总的聚类数量,及对网络资源进行聚类处理的层数,确定每层对应的子聚类数量,其中所述层数大于等于2。
[0058]为了有效的提高对网络资源聚类处理的效率,在本发明实施例中对网络资源进行聚类处理时,采用分层的方式进行,对网络资源进行聚类处理的层数大于等于2,例如层数可以为2、3或其他大于2的整数。确定后的层次分别为第一层、第二层、……第N层等,在对待聚类的网络资源进行聚类处理时,按照从第一层依次往后的顺序进行到第N层,之后将聚类后的网络资源输出。
[0059]对网络资源进行聚类处理的层数可以预先设置,总的聚类数量也可以预先设置,确定的每层对应的子聚类数量的积为总的聚类数量,每层对应的子聚类数量可以相同,也可以不同,只要每层对应的子聚类数量的积满足总的聚类数量即可,例如总的聚类数量为100万,对网络资源进行3层聚类处理,此时可以将每层对应的子聚类数量设置为100,也可以将第一层对应的子聚类数量设置为1000,第二层对应的子聚类数量设置为100,第三层对应的子聚类数量为10。
[0060]S102:获取待聚类的网络资源,将待聚类的网络资源发送到进行处理的第一层。
[0061]在本发明实施例中该待聚类的网络资源可以是图片资源、文字资源、音乐资源、视频资源等等,本发明实施例提供的该聚类方法可以针对任何网络资源进行。只要确定了资源的维度即可。
[0062]当获取了待聚类的网络资源后,按照设置的层级,将该待聚类的网络资源首先发送到第一层进行聚类处理。
[0063]S103:针对该待聚类的网络资源,根据该层对应的子聚类数量,在该待聚类的网络资源中初始化得到相应数量的中心点。
[0064]在本发明实施例中由于根据总的聚类数量,以及对网络资源进行处理的层数,确定了每层对应的子聚类数量,因此可知第一层对应的子聚类数量。此时,该待聚类的网络资源即为初始状态下总的进行聚类处理的网络资源。根据该第一层对应的子聚类数量,在该待聚类的网络资源中初始化得到相应数量的中心点。
[0065]可以预先保存多种初始化方法,在进行初始化处理时可以在该预先保存的初始化方法中任意选择一种,或者也可以根据自身需求,确定其他的初始化方法。采用初始化方法,在待聚类的网络资源中初始化中心点的方法属于现有技术,在本发明实施例中就不对该过程进行赘述,相信本领域技术人员根据本发明实施例的描述,可以确定相应的初始化方式。
[0066]S104:根据每个中心点及该待聚类的网络资源,采用K-Means算法进行聚类处理。
[0067]当确定了每个中心·点后,采用K-Means算法对该待聚类的网络资源进行聚类处理。具体的在采用K-Means算法对该待聚类的网络资源进行聚类处理时,可以设置聚类处理的迭代次数,针对每个子聚类在进行迭代处理时,在该子聚类中进行相应次数的迭代处理后,该子聚类的聚类处理过程结束;或者也可以设置中心点阈值,在每个子聚类中,当前后两次聚类后的中心点之间的距离小于设定的中心点阈值时,在子聚类的聚类处理过程结束。
[0068]S105:判断当前进行的聚类处理是否为最后一层聚类处理,当判断结果为时是,进行步骤S106,否则,进行步骤S107。
[0069]S106:输出网络资源的聚类结果。
[0070]S107:将当前聚类后的每组子聚类的网络资源作为下一层聚类处理的每组待聚类的网络资源,分别并行执行步骤S103及之后步骤。
[0071]当当前为最后一层聚类处理时,说明对网络资源的聚类处理结束,获取相应的总聚类数量,此时可以输出网络资源的聚类结果;当当前非最后一层聚类处理时,需要进行下一层的聚类处理,此时将得到的聚类后的每组网络资源作为下一层待聚类的网络资源,针对每组聚类后的网络资源分别并行进行聚类处理。
[0072]由于在本发明实施例中将聚类处理的过程分层,每层对应子聚类数量,在对网络资源进行聚类处理时,每一层针对上一层聚类后的每组网络资源分别进行聚类处理,达到在每一层中针对每组待聚类网络资源的并行处理,从而提高采用K-Means算法对网络资源聚类处理的效率,而整个的聚类处理分层进行每层针对每组待聚类的网络资源分别进行聚类处理,在每层都遍历待聚类的网络资源,并且在每层采用K-Means算法,根据设置的迭代次数或距离阈值等收敛条件进行聚类处理,因此在提高聚类效率的同时也能保证聚类结果的精确性。
[0073]在本发明实施例中将网络资源分层进行聚类处理,在每一层进行聚类处理时,都是基于K-Means算法进行。当对网络资源在第一层进行聚类处理时,接收到的网络资源可以看作一组待聚类的网络资源,针对该第一层对应的子聚类数量,在该组待聚类的网络资源中初始化得到相应数量的中心点。针对每子聚类,根据每个中心点,确定聚类后每个子聚类中包含的网络资源。
[0074]较佳地,为了保证提供的结果的准确性,所述在该组中初始化得到相应数量的中心点包括:
[0075]判断当前进行的是否为第一层聚类处理;
[0076]若当前进行的是第一层聚类处理,将总的网络资源作为第一层进行聚类处理的一组待聚类的网络资源,根据该第一层对应的子聚类数量,在该组待聚类的网络资源中初始化得到相应数量的中心点;
[0077]否则,该每组待聚类的网络资源为上一层聚类后得到的每组网络资源,根据该层对应的子聚类数量,在每组待聚类的网络资源中初始化,得到相应数量的中心点。
[0078]在本发明实施例中当接收到待聚类的网络资源时,判断对该待聚类的网络资源进行的是否为第一层聚类处理,若当前对待聚类的网络资源进行的第一层的聚类处理,说明该网络资源首次进行聚类处理,将该待聚类的网络资源作为一组,在该组中根据第一层对应的子聚类数量,初始化得到相应数量的中心点。如果当前进行的非第一层聚类处理,此时得到的每组待聚类的网络资源为上一层聚类的后的每组网络资源,针对每组待聚类的网络资源分别进行相同的聚类处理过程,即根据该层对应的子聚类数量,在每组待聚类的网络资源中,初始化得到相应数量的中心点。
[0079]因为在本发明实施例中对网络资源进行聚类处理的层数大于等于2,例如此时为2层。当第一层聚类处理结束后,判断当前非最后一层聚类处理,将第一层聚类后的对应每个子聚类的每组待聚类的网络资源进行第二层聚类处理。在进行第二层聚类处理时,针对第一层聚类后的每个子聚类对应的每组待聚类的网络资源,分别针对每组待聚类的网络资源进行第二层的聚类处理。因为第二层的聚类处理过程是针对每组待聚类的网络资源是分别处理的,因此对每组待聚类的网络资源进行聚类处理时,可以分别并行处理,从而提高对网络资源进行聚类处理的效率。
[0080]另外,在本发明实施例中由于获取的每个待聚类的网络资源的维度可能很高,为了进一步提高进行网络资源聚类处理的效率,在本发明实施例中,在对网络资源进行第一层的聚类处理之前,所述方法还包括:
[0081]判断待聚类的网络资源的维度是否不大于设定的维度阈值;
[0082]当待聚类的网络资源的维度大于设定的维度阈值时,按照设置的降低维度的方法对待聚类的网络资源进行降维处理。
[0083]通过降低网络资源的维度提高进行聚类处理的效率,网络资源的维度降低了,为了保证提供的结果的准确性,当对待聚类的网络资源进行降维处理后,所述输出网络资源的聚类结果之前,所述方法还包括:
[0084]针对每组聚类后的网络资源,根据每个网络资源降低的维度,对该网络资源进行升高维度的处理。
[0085]图2为本发明实施例提供的一种进行网络资源聚类的具体实施过程示意图,该过程包括以下步骤:
[0086]S201:根据设置的总的聚类数量,及对网络资源进行聚类处理的层数,确定每层对应的子聚类数量,其中所述层数大于等于2。
[0087]S202:获取待聚类的网络资源,判断该待聚类的网络资源的维度是否不大于设定的维度阈值,当判断结果为否时,进行步骤S203,否则,进行步骤S204。
[0088]S203:按照设置的降低维度的方法对待聚类的网络资源进行降维处理。
[0089]S204:将待聚类的网络资源发送到进行处理的第一层。
[0090]S205:针对该待聚类的网络资源,根据该层对应的子聚类数量,在该待聚类的网络资源中初始化得到相应数量的中心点。
[0091]S206:根据每个中心点及该待聚类的网络资源,采用K-Means算法进行聚类处理。
[0092]S207:判断当前进行的聚类处理是否为最后一层聚类处理,当判断结果为时是,进行步骤S208,否则,进行步骤S209。
[0093]S208:针对每组聚类后的网络资源,根据每个网络资源降低的维度,对该网络资源进行升高维度的处理,并提供维度升高后的网络资源的聚类结果。
[0094]S209:将当前聚类后的每组子聚类的网络资源作为下一层聚类处理的每组待聚类的网络资源,分别并行执行步骤S205及之后步骤。
[0095]具体的,为了提高聚类处理的效率,在降低网络资源的维度时,可以采用线性或非线性的方式进行,例如可以采用Sifd的方式、phog的方式以及P哈希的方式进行降低维度的处理,当然也可以采用其他的方式进行。如何降低网络资源的维度属于现有技术,本发明实施例中对该过程就不进行赘述,相信本领域技术人员可以本发明实施例的描述可以确定相应的降低维度的方式。
[0096]为了提高聚类处理的效率,在本发明实施例中针对维度大于设定的维度阈值的网络资源,进行了降低维度的处理。但为了保证为用户提供的网络资源的准确性,在本发明实施例中针对降低维度后的网络资源,记录每个网络资源的标识信息。当聚类过程结束时,根据记录的每个网络资源的标识信息,对网络资源进行升高维度的处理,该标识信息可以是网络资源的编号,每个网络资源在整个待聚类网络资源中的属性信息等等,在选择升高维度的方法时,可以结合具体的降低维度的方式,选择相应的升高维度的方法。
[0097]为了提高整个方法的适用性,可以预先设置多种降低维度的方式,将每个降低维度的方式保存在动态库中,当需要使用时,从动态库中查找合适的方式使用即可。或者,用户在使用时也可以自定义自身所需的降低维度的方式。上述各实现方案可以灵活选择。
[0098]具体的,在降低网络资源的维度时,一般是首先确定降维矩阵或降维模型,当确定了降维矩阵或降维模型后,根据降维矩阵或降维模型对网络资源进行降低维度的处理。根据待聚类的网络资源确定降维矩阵或降维模型时,由于待聚类的网络资源数量较大,维度较高,确定降维矩阵或降维模型的过程较复杂。为了降低计算的复杂度,提高聚类处理的效率,按照设置的降低维度的方法对待聚类的网络资源进行降维处理包括:在所述待聚类的网络资源中进行数据采样,根据采样后的数据及设置的降低维度的方法,确定降维模型;根据降维模型及待聚类的网络资源,对待聚类的网络资源进行降维处理。
[0099]在每组中根据每个中心点及该组中待聚类的网络资源,采用K-Means算法进行聚类处理时,可以针对每层设置收敛阈值,该收敛阈值可以是迭代的次数,或者也可以是迭代前后两次中心点之间的距离。确定中心点之间的距离,可以采用预设的方法确定,该预设的方法可以保存在动态库中,使用时,从动态库中选择相应的方法即可,或者用户也可以根据需要输入相应的距离确定方法。
[0100]在本发明实施例中以对音乐`网络资源、图片网络资源、文字网络资源等进行聚类处理。由于网络上存在大量的网络资源,根据网络资源的属性信息可以简单将网络资源划分为音乐网络资源、图片网络资源、文字网络资源等。为了使用户在搜索时,搜索引擎能够根据用户提供的搜索关键词,将与该关键词相关的网络资源提供给用户,需要将原始搜索结果进行聚类,将冗长的搜索结果转换成渐变而易理解的若干个组,从而使用户在短时间内能够对搜索结果有个比较整体的了解。具体的进行具体的聚类处理时,针对图片网络资源,可以设置图片网络资源的聚类数量,例如可以为100万,分别为张三、李四、王五、卡通、风景、……等等,通过聚类处理后将每个图片网络资源划分到具体的每个聚类中,其中每个图片网络资源只能位于一个聚类中。
[0101]下面结合一个具体的实施例,对本发明实施例进行说明。
[0102]待聚类的网络资源为100亿,总的聚类数量为100万,进行聚类处理的层数为3,每层对应的子聚类数量为100,网络资源的维度为2000,设定的维度阈值为1000,其中网络资源的维度可以相同,也可以不同,在此可以认为待聚类的网络资源的维度相同。在对每层进行聚类处理时,可以设置每层的收敛条件,每层的收敛条件可以相同也可以不同,并且也可以针对每个聚类设置收敛条件,每个聚类的收敛条件也可以相同,也可以不同。在本发明实施例中为了便于操作,可以认为每层中每个聚类对应的收敛条件相同,可以为中心点之间的距离小于收敛阈值,或者也可以迭代的次数达到迭代阈值。
[0103]可以认为该待聚类的网络资源的信息构成一个100亿乘2000的矩阵。接收到待聚类的网络资源后,判断每个网络资源的维度是否大于设定的维度阈值,由于待聚类的网络资源的维度2000大于设定的维度阈值1000,因此需要对待聚类的网络资源进行降低维度的处理,即需要将待聚类的网络资源通过降低维度的处理后得到100亿乘1000的矩阵。
[0104]在对待聚类的网络资源进行降低维度的处理之前,需要先确定降维矩阵或降维模型,即确定一个2000乘1000的降维矩阵或降维模型,在本发明实施例中可以在待聚类的网络资源中提取出5000个网络资源,根据该5000个网络资源的信息,即根据一个5000乘2000的矩阵,确定降维矩阵或降维模型。确定了降维矩阵或降维模型后,根据该降维矩阵或降维模型对待聚类的网络资源进行降低维度的处理。
[0105]降低待聚类的网络资源的维度后,将待聚类的网络资源发送到第一层,采用K-Means算法进行聚类处理。当前该待聚类的总的网络资源可以认为是一组。由于此时第一层对应的子聚类数量为100,因此可以根据动态库中保存的任何一种中心点初始化方法,在待聚类的网络资源中初始化得到100个中心点,每个中心点位于一个聚类中。之后针对每个待聚类的网络资源,计算该待聚类的网络资源与每个中心点之间的距离,选择距离最小值对应的中心点,将该待聚类的网络资源归属到该中心点所在的聚类中。采用上述方法,确定每个待聚类的网络资源归属的聚类。
[0106]根据每个聚类中的每个待聚类的网络资源,更新该聚类中的中心点,计算更新后的中心点与更新前的中心点之间的距离,判断该距离是否小于设定的距离阈值,判断聚类过程是否收敛,或者,本次迭代处理完后,将对应的迭代次数增加1,判断迭代次数加I后的是否不小于设定的迭代阈值,判断聚类过程是否收敛。
[0107]当该距离不小于设定的距离阈值时,或该迭代次数加I后的小于设定的迭代阈值时,说明迭代过程未收敛。继续针对更新后的中心点,及每个待聚类的网络资源与中心点之间的距离,进行下一轮的迭代处理。
[0108]当该距离小于设定的距离阈值时,或当该迭代次数加I后的不小于设定的迭代阈值时,确定该聚类过程收敛,该层的聚类处理过程结束,此时得到100个聚类。
[0109]判断当前进行的是第一层的处理,第一层非最后一层,需要对聚类后的每组待聚类的网络资源进行下一层的处理,即进行第二层的聚类处理。根据上述设置,第二层对应的子聚类数量为100,因此此时针对第一层得到的100个聚类,将每个聚类作为一组,在该组待聚类的网络资源中,根据设置的第二层对应的子聚类数量,在每个组中初始化得到100个中心点。也就是说此时根据第一层聚类后得到的100个聚类,在每个聚类中再初始化得到100个中心点,也就是说在每个聚类中再聚类出100个子聚类。
[0110]在第二层聚类处理过程中,针对第一层得到的每个聚类进行的操作相同,都是在每组待聚类的网络资源中,初始化得到100个中心点,在该组中进行后续的聚类操作,因此每个组的聚类过程可以并行同步进行。在第二层针对每个组进行聚类处理时,该处理的过程与上述第一层的聚类处理过程相同,在这里就不一一赘述。经过第二层的聚类处理后,在原有的100个聚类中,每个再聚类出100个子聚类,因此此时得到10000个聚类。
[0111]判断当前进行的是第二层的处理,第二层非最后一层,需要对聚类后的每组待聚类的网络资源进行下一层的处理,即对聚类后的10000个聚类再进行第三层的聚类处理过程。第三层对应的子聚类数量为100,因此此时针对第二层得到的10000个聚类,将每个聚类作为一组,在该组待聚类的网络资源中,根据设置的第三层对应的子聚类数量,在每个组中初始化得到100个中心点。也就是说此时根据第二层聚类后得到的10000个聚类,在每个聚类中再初始化得到100个中心点,也就是说在每个聚类中再聚类出100个子聚类。
[0112]在第三层聚类处理过程中,针对第二层得到的每个聚类进行的操作相同,都是在每组待聚类的网络资源中,初始化得到100个中心点,在该组中进行后续的聚类操作,因此每个组的聚类过程可以并行同步进行。在第三层针对每个组进行聚类处理时,该处理的过程与上述第一层的聚类处理过程也相同,在这里就不一一赘述。经过第三层的聚类处理后,在原有的10000个聚类中,每个再聚类出100个子聚类,因此此时得到100万个聚类。
[0113]经过第三层聚类处理后,判断当前进行的第三层的聚类处理过程,为最后一层的距离处理过程,该聚类处理的过程结束。由于在之前针对每个待聚类的网络资源进行降低维度的处理,为了提高提供的信息的准确性,在本发明实施例中根据每个聚类后的网络资源的标识信息,对每个网络资源进行升高维度的处理,得到每个网络资源的原始数据,即得到2000维的数据,并将升高维度后的网络资源输出。
[0114]由于在每层中进行的聚类过程是在上一层聚类后的每个聚类中进行的,而且由于在每个聚类中进行的本层的聚类过程相同,因此在每层针对每个组进行聚类时可以分别并行进行。还以上述实施方式为例,由于在第二层在进行聚类时,针对第一层得到的100个聚类即100组待聚类的网络资源,在每组待聚类的网络资源中再聚类出100个聚类,而针对每组待聚类的网络资源进行的聚类操作相同,因此在第二层中可以认为是采用100个线程或100台设备,分别针对每组待聚类的网络资源同时进行聚类处理,因此从时间上可以认为第一层和第二层的聚类过程上只利用了 100+100个聚类进行聚类处理时间。相同的第三层进行的聚类操作也是相同的,因此经过三层的聚类操作,该聚类过程总共的时间可以认为是100+100+100个聚类进行聚类处理的时间,比直接进行100万个聚类进行的聚类处理的时间明显少很多,有效的提高了聚类处理的效率。
[0115]图3为本发明实施例提供的一种进行网络资源聚类的另一详细实施过程示意图,该过程包括以下步骤:
[0116]S301:根据设置的总的聚类数量,及对网络资源进行聚类处理的层数,确定每层对应的子聚类数量,其中所述层数大于等于2。
[0117]S302:获取待聚类的网络资源,判断该待聚类的网络资源的维度是否不大于设定的维度阈值,当判断结果为否时,进行步骤S303,否则,进行步骤S304。
[0118]S303:在该待聚类的网络资源中采样,按照设置的降低维度的方法确定降维矩阵,根据确定的降维矩阵对待聚类的网络资源进行降维处理。
[0119]S304:将待聚类的网络资源发送到进行处理的第一层。
[0120]S305:针对该待聚类的网络资源,根据该层对应的子聚类数量,在该待聚类的网络资源中初始化得到相应数量的中心点。
[0121]S306:针对每个待聚类的网络资源,确定该网络资源与每个中心点之间的距离,选择距离最小值对应的中心点,将该待聚类的网络资源归属到该中心点所在的聚类中。
[0122]S307:更新每个聚类中的中心点,判断更新后的中心点与更新前的中心点之间的距离是否小于设定的距离阈值,当判断结果为否时,进行步骤S306,当判断结果为是时,进行 S308。
[0123]S308:判断当前进行的是否为最后一层聚类处理,当判断当前为最后一层处理时,进行步骤S309,否则,将当前聚类后的每组子聚类的网络资源作为下一层聚类处理的每组待聚类的网络资源进行步骤S305。
[0124]S309:判断聚类后的网络资源之前是否进行了降低维度的处理,当判断结果为是时,进行步骤S310,否则,进行步骤S311。
[0125]S310:根据每个聚类后的网络资源的标识信息,对每个网络资源进行升高维度的处理,得到每个网络资源的原始数据,输出升高维度后的网络资源的聚类结果。
[0126]S311:输出网络资源的聚类结果。
[0127]由于在本发明实施例中将聚类处理的过程分层,每层对应子聚类数量,在对网络资源进行聚类处理时,每一层针对上一层聚类后的每组网络资源分别进行聚类处理,达到在每一层中针对每组待聚类网络资源的并行处理,从而提高采用K-Means算法对网络资源聚类处理的效率,而整个的聚类处理分层进行每层针对每组待聚类的网络资源分别进行聚类处理,在每层都遍历待聚类的网络资源一次,因此在提高聚类效率的同时也能保证聚类结果的精确性。
[0128]图4为本发明实施例提供一种进行网络资源聚类的装置结构示意图,所述装置包括:
[0129]确定模块41,用于根据设置的总的聚类数量,及对网络资源进行聚类处理的层数,确定每层对应的子聚类数量,其中所述层数大于等于2 ;
[0130]聚类模块42,用于针对每层中每组待聚类的网络资源,分别并行进行下述步骤:针对每组待聚类的网络资源,根据该层对应的子聚类数量,在该组中初始化得到相应数量的中心点;根据该组中的每个中心点及该组中待聚类的网络资源,采用K-Means算法进行聚类处理;
[0131]判断模块43,用于判断聚类模块当前进行的是否为最后一层聚类处理;
[0132]输出返回模块44,用于当判断模块确定当前为最后一层聚类处理时,输出网络资源的聚类结果,否则,将当前聚类后的每组网络资源作为下一层聚类处理的每组待聚类的网络资源,返回聚类模块继续处理。
[0133]较佳地,为了进一步提高聚类处理的效率,所述装置还包括:
[0134]降维模块45,用于判断待聚类的网络资源的维度是否不大于设定的维度阈值;当待聚类的网络资源的维度大于设定的维度阈值时,按照设置的降低维度的方法对待聚类的网络资源进行降维处理。
[0135]较佳地,为了保证提供的结果的准确性,所述输出返回模块44,还用于当降维模块对待聚类的网络资源进行降维处理后,针对每组聚类后的网络资源,根据每个网络资源降低的维度,对该网络资源进行升高维度的处理。
[0136]较佳地,为了进一步提高聚类处理的效率,所述降维模块45,具体用于在所述待聚类的网络资源中进行数据采样,根据采样后的数据及设置的降低维度的方法,确定降维模型;根据降维模型及待聚类的网络资源,对待聚类的网络资源进行降维处理。
[0137]较佳地,为了扩大本发明实施例的适用范围,所述聚类模块42,具体用于对图片资源、文字资源和音频资源进行聚类处理。
[0138]所述聚类模块42,具体用于判断当前进行的是否为第一层聚类处理;若当前进行的是第一层聚类处理,将总的网络资源作为第一层进行聚类处理的一组待聚类的网络资源,根据该第一层对应的子聚类数量,在该组待聚类的网络资源中初始化得到相应数量的中心点;否则,该每组待聚类的网络资源为上一层聚类后得到的每组网络资源,根据该层对应的子聚类数量,在每组待聚类的网络资源中初始化,得到相应数量的中心点。
[0139]该装置可以位于搜索引擎中,或为独立于搜索引擎的装置。
[0140]该装置的聚类模块在进行聚类处理时,每一层对应的收敛条件可以相同,也可以不同,每一层对应的子聚类数量也可以相同,也可以不同。
[0141]本发明实施例提供了一种进行网络资源聚类的方法及装置,该方法中根据总的聚类数量,设置对网络资源进行聚类处理的层数,从而确定每层对应的子聚类数量,在每层对待聚类的网络资源进行处理时,可以并行的分别对每个待聚类的网络资源进行处理,在每层针对每组待聚类的网络资源,根据该层对应的子聚类数量,在该组中初始化得到相应数量的中心点,采用K-Means算法进行聚类处理,并在该层为最后一层聚类处理时,输出网络资源的聚类结果。由于在本发明实施例中将聚类处理的过程分层,每层对应子聚类数量,在对网络资源进行聚类处理时,每一层针对上一层聚类后的每组网络资源分别进行聚类处理,达到在每一层中针对每组待聚类网络资源的并行处理,从而提高采用K-Means算法对网络资源聚类处理的效率,而整个的聚类处理分层进行每层针对每组待聚类的网络资源分别进行聚类处理,在每层都遍历待聚类的网络资源,并且在每层采用K-Means算法,根据设置的迭代次数或距离阈值等收敛条件进行聚类处理,因此在提高聚类效率的同时也能保证聚类结果的精确性。
[0142]Al、一种进行网络资源聚类的方法,其特征在于,所述方法包括:
[0143]根据设置的总的聚类数量,及对网络资源进行聚类处理的层数,确定每层对应的子聚类数量,其中所述层数大于等于2 ;
[0144]针对每层中每组待聚类的网络资源,分别并行进行下述步骤:
[0145]针对每组待聚类的网络资源,根据该层对应的子聚类数量,在该组中初始化得到相应数量的中心点;
[0146]根据该组中的每个中心点及该组中待聚类的网络资源,采用K-Means算法进行聚类处理;并
[0147]当确定当前为最后一层聚类处理时,输出网络资源的聚类结果,否则,将当前聚类后的每组网络资源作为下一层聚类处理的每组待聚类的网络资源,进行下一层的聚类处理。
[0148]A2、如权利要求1所述的方法,其特征在于,所述方法在对网络资源进行第一层的聚类处理之前,所述方法还包括:
[0149]判断待聚类的网络资源的维度是否不大于设定的维度阈值;
[0150]当待聚类的网络资源的维度大于设定的维度阈值时,按照设置的降低维度的方法对待聚类的网络资源进行降维处理。
[0151]A3、如权利要求2所述的方法,其特征在于,当对待聚类的网络资源进行降维处理后,所述输出网络资源的聚类结果之前,所述方法还包括:[0152]针对每组聚类后的网络资源,根据每个网络资源降低的维度,对该网络资源进行升高维度的处理。
[0153]A4、如权利要求2所述的方法,其特征在于,所述按照设置的降低维度的方法对待聚类的网络资源进行降维处理包括:
[0154]在所述待聚类的网络资源中进行数据采样,根据采样后的数据及设置的降低维度的方法,确定降维模型;
[0155]根据降维模型及待聚类的网络资源,对待聚类的网络资源进行降维处理。
[0156]A5、如权利要求1所述的方法,其特征在于,所述网络资源包括:
[0157]图片资源、文字资源和音频资源。
[0158]A6、如权利要求1所述的方法,其特征在于,所述在该组中初始化得到相应数量的中心点包括:
[0159]判断当前进行的是否为第一层聚类处理;
[0160]若当前进行的是第一层聚类处理,将总的网络资源作为第一层进行聚类处理的一组待聚类的网络资源,根据该第一层对应的子聚类数量,在组待聚类的网络资源中初始化得到相应数量的中心点;
[0161]否则,该每组待聚类的网络资源为上一层聚类后得到的每组网络资源,根据该层对应的子聚类数量,在每组待聚类的网络资源中初始化,得到相应数量的中心点。
[0162]A7、一种进行网络资源聚类的装置,其特征在于,所述装置包括:
[0163]确定模块,用于根据设置的总的聚类数量,及对网络资源进行聚类处理的层数,确定每层对应的子聚类数量,其中所述层数大于等于2 ;
[0164]聚类模块,用于针对每层中每组待聚类的网络资源,分别并行进行下述步骤:针对每组待聚类的网络资源,根据该层对应的子聚类数量,在该组中初始化得到相应数量的中心点;根据该组中的每个中心点及该组中待聚类的网络资源,采用K-Means算法进行聚类处理;
[0165]判断模块,用于判断聚类模块当前进行的是否为最后一层聚类处理;
[0166]输出返回模块,用于当判断模块确定当前为最后一层聚类处理时,输出网络资源的聚类结果,否则,将当前聚类后的每组网络资源作为下一层聚类处理的每组待聚类的网络资源,返回聚类模块继续处理。
[0167]A8、如权利要求7所述的装置,其特征在于,所述装置还包括:
[0168]降维模块,用于判断待聚类的网络资源的维度是否不大于设定的维度阈值;当待聚类的网络资源的维度大于设定的维度阈值时,按照设置的降低维度的方法对待聚类的网络资源进行降维处理。
[0169]A9、如权利要求8所述的装置,其特征在于,所述输出返回模块,还用于当降维模块对待聚类的网络资源进行降维处理后,针对每组聚类后的网络资源,根据每个网络资源降低的维度,对该网络资源进行升高维度的处理。
[0170]A10、如权利要求8所述的装置,其特征在于,所述降维模块,具体用于在所述待聚类的网络资源中进行数据采样,根据采样后的数据及设置的降低维度的方法,确定降维模型;根据降维模型及待聚类的网络资源,对待聚类的网络资源进行降维处理。
[0171]All、如权利要求7所述的装置,其特征在于,所述聚类模块,具体用于对图片资源、文字资源和音频资源进行聚类处理。
[0172]A12、如权利要求7所述的装置,其特征在于,所述聚类模块,具体用于判断当前进行的是否为第一层聚类处理;若当前进行的是第一层聚类处理,将总的网络资源作为第一层进行聚类处理的一组待聚类的网络资源,根据该第一层对应的子聚类数量,在组待聚类的网络资源中初始化得到相应数量的中心点;否则,该每组待聚类的网络资源为上一层聚类后得到的每组网络资源,根据该层对应的子聚类数量,在每组待聚类的网络资源中初始化,得到相应数量的中心点。
[0173]本领域内的技术人员应明白,本申请的实施例可提供为方法、系统、或计算机程序产品。因此,本申请可采用完全硬件实施例、完全软件实施例、或结合软件和硬件方面的实施例的形式。而且,本申请可采用在一个或多个其中包含有计算机可用程序代码的计算机可用存储介质(包括但不限于磁盘存储器、CD-ROM、光学存储器等)上实施的计算机程序产品的形式。
[0174]本申请是参照根据本申请实施例的方法、设备(系统)、和计算机程序产品的流程图和/或方框图来描述的。应理解可由计算机程序指令实现流程图和/或方框图中的每一流程和/或方框、以及流程图和/或方框图中的流程和/或方框的结合。可提供这些计算机程序指令到通用计算机、专用计算机、嵌入式处理机或其他可编程数据处理设备的处理器以产生一个机器,使得通过计算机或其他可编程数据处理设备的处理器执行的指令产生用于实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能的装置。
[0175]这些计算机程序指令也可存储在能引导计算机或其他可编程数据处理设备以特定方式工作的计算机可读存储器中,使得存储在该计算机可读存储器中的指令产生包括指令装置的制造品,该指令装置实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能。
[0176]这些计算机程序指令也可装载到计算机或其他可编程数据处理设备上,使得在计算机或其他可编程设备上执行一系列操作步骤以产生计算机实现的处理,从而在计算机或其他可编程设备上执行的指令提供用于实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能的步骤。
[0177]尽管已描述了本申请的优选实施例,但本领域内的技术人员一旦得知了基本创造性概念,则可对这些实施例做出另外的变更和修改。所以,所附权利要求意欲解释为包括优选实施例以及落入本申请范围的所有变更和修改。
[0178]显然,本领域的技术人员可以对本申请进行各种改动和变型而不脱离本申请的精神和范围。这样,倘若本申请的这些修改和变型属于本申请权利要求及其等同技术的范围之内,则本申请也意图包含这些改动和变型在内。
【权利要求】
1.一种进行网络资源聚类的方法,其特征在于,所述方法包括: 根据设置的总的聚类数量,及对网络资源进行聚类处理的层数,确定每层对应的子聚类数量,其中所述层数大于等于2 ; 针对每层中每组待聚类的网络资源,分别并行进行下述步骤: 针对每组待聚类的网络资源,根据该层对应的子聚类数量,在该组中初始化得到相应数量的中心点; 根据该组中的每个中心点及该组中待聚类的网络资源,采用K-Means算法进行聚类处理;并 当确定当前为最后一层聚类处理时,输出网络资源的聚类结果,否则,将当前聚类后的每组网络资源作为下一层聚类处理的每组待聚类的网络资源,进行下一层的聚类处理。
2.如权利要求1所述的方法,其特征在于,所述方法在对网络资源进行第一层的聚类处理之前,所述方法还包括: 判断待聚类的网络资源的维度是否不大于设定的维度阈值; 当待聚类的网络资源的维度大于设定的维度阈值时,按照设置的降低维度的方法对待聚类的网络资源进行降维处理。
3.如权利要求2所述的方法,其特征在于,当对待聚类的网络资源进行降维处理后,所述输出网络资源的聚类结果之前,所述方法还包括: 针对每组聚类后的网络资源,根据每个网络资源降低的维度,对该网络资源进行升高维度的处理。
4.如权利要求2所述的方法,其特征在于,所述按照设置的降低维度的方法对待聚类的网络资源进行降维处理包括: 在所述待聚类的网络资源中进行数据采样,根据采样后的数据及设置的降低维度的方法,确定降维模型; 根据降维模型及待聚类的网络资源,对待聚类的网络资源进行降维处理。
5.如权利要求1所述的方法,其特征在于,所述网络资源包括: 图片资源、文字资源和音频资源。
6.如权利要求1所述的方法,其特征在于,所述在该组中初始化得到相应数量的中心点包括: 判断当前进行的是否为第一层聚类处理; 若当前进行的是第一层聚类处理,将总的网络资源作为第一层进行聚类处理的一组待聚类的网络资源,根据该第一层对应的子聚类数量,在该组待聚类的网络资源中初始化得到相应数量的中心点; 否则,该每组待聚类的网络资源为上一层聚类后得到的每组网络资源,根据该层对应的子聚类数量,在每组待聚类的网络资源中初始化,得到相应数量的中心点。
7.一种进行网络资源聚类的装置,其特征在于,所述装置包括: 确定模块,用 于根据设置的总的聚类数量,及对网络资源进行聚类处理的层数,确定每层对应的子聚类数量,其中所述层数大于等于2 ; 聚类模块,用于针对每层中每组待聚类的网络资源,分别并行进行下述步骤:针对每组待聚类的网络资源,根据该层对应的子聚类数量,在该组中初始化得到相应数量的中心点;根据该组中的每个中心点及该组中待聚类的网络资源,采用K-Means算法进行聚类处理;判断模块,用于判断聚类模块当前进行的是否为最后一层聚类处理;输出返回模块,用于当判断模块确定当前为最后一层聚类处理时,输出网络资源的聚类结果,否则,将当前聚类后的每组网络资源作为下一层聚类处理的每组待聚类的网络资源,返回聚类模块继续处理。
8.如权利要求7所述的装置,其特征在于,所述装置还包括:降维模块,用于判断待聚类的网络资源的维度是否不大于设定的维度阈值;当待聚类的网络资源的维度大于设定的维度阈值时,按照设置的降低维度的方法对待聚类的网络资源进行降维处理。
9.如权利要求8所述的装置,其特征在于,所述输出返回模块,还用于当降维模块对待聚类的网络资源进行降维处理后,针对每组聚类后的网络资源,根据每个网络资源降低的维度,对该网络资源进行升高维度的处理。
10.如权利要求8所述的装置,其特征在于,所述降维模块,具体用于在所述待聚类的网络资源中进行数据采样,根据采样后的数据及设置的降低维度的方法,确定降维模型;根据降维模型及待聚类的网 络资源,对待聚类的网络资源进行降维处理。
【文档编号】G06F17/30GK103678545SQ201310642355
【公开日】2014年3月26日 申请日期:2013年12月3日 优先权日:2013年12月3日
【发明者】白明 申请人:北京奇虎科技有限公司, 奇智软件(北京)有限公司
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1