网页页面的聚类方法和装置
技术领域
本发明涉及数据处理领域,具体而言,涉及一种网页页面的聚类方法和装置。
背景技术
出于互联网大数据分析的需要,对网页信息的采集越来越重要。但是不同网站、不同栏目之间的页面代码格式的差异增加了信息采集的难度,在进行网页信息采集之前,需要对编码样式各异的网页进行聚类。通过网页聚类,可以将结构代码相似的网页聚合在一起集中处理,减少了在进行信息采集时因代码格式差异带来的困难。
目前网页聚类方法是,通过结构化HTML代码,生成代码标签树,对比两个标签树的最短编辑距离,从而判断页面相似程度,最终实现页面聚类。
现有技术中的网页聚类方法存在两个缺陷,一是对整个标签树进行计算,效率较低;二是标签编辑距离并不完全准确,偶尔出现的内嵌元素或其它元素会影响计算结果。
针对现有技术中网页聚类效率低的问题,目前尚未提出有效的解决方案。
发明内容
本发明的主要目的在于提供一种网页页面的聚类方法和装置,以解决现有技术中网页聚类效率低问题。
为了实现上述目的,根据本发明实施例的一个方面,提供了一种网页页面的聚类方法。
根据本发明的网页页面的聚类方法包括:获取待比较网页页面的第一块元素;根据所述第一块元素与页面类别集合中每个页面类别所含的第二块元素,依次计算所述待比较网页页面与每个页面类别的相似度指标值,其中,所述页面类别集合为已确定的页面类别的类别集合,所述第一块元素和所述第二块元素均包含预设属性;当计算出所述待比较网页页面与当前页面类别的相似度指标值大于预设阈值时,将所述待比较网页页面归至所述当前页面类别,并更新所述当前页面类别包含的第二块元素得到所述当前页面类别的更新后页面类别,完成所述待比较网页页面的聚类;以及当所述待比较网页页面与所述页面类别集合中每个页面类别的相似度指标值均小于所述预设阈值时,将所述待比较网页页面作为一个新的页面类别添加到所述页面类别集合中。
进一步地,在根据所述第一块元素与页面类别集合中每个页面类别所含的第二块元素,依次计算所述待比较网页页面与每个页面类别的相似度指标值之前,所述聚类方法还包括:判断所述页面类别集合是否为空;在判断所述页面类别集合为空的情况下,直接将所述待比较网页页面作为一个新的页面类别添加到所述页面类别集合中;以及在判断所述页面类别集合不为空的情况下,则根据所述第一块元素与页面类别集合中每个页面类别所含的第二块元素,依次计算所述待比较网页页面与每个页面类别的相似度指标值。
进一步地,所述获取待比较网页页面的第一块元素包括:获取所述待比较网页页面的超文本标记语言HTML代码;根据所述待比较网页页面的HTML代码建立树形结构;以及提取所述树形结构中包含预设属性的块元素,得到所述待比较网页页面的所述第一块元素。
进一步地,依次计算所述待比较网页页面与每个页面类别的相似度指标值包括:获取所述待比较网页页面的第一块元素与页面类别Ai所含的第二块元素中的相同块元素Kij,其中,i用于指示当前参与计算的页面类别,取值依次为1至n,n为所述页面类别集合中页面类别的个数,j依次取1至mi,mi为所述页面类别Ai与所述待比较网页页面中相同块元素的个数;根据相同块元素Ki1至相同块元素Kimi在所述待比较网页页面中的总出现频次和所述待比较网页页面中所述第一块元素的总出现频次,计算第一相似度S1i;根据所述相同块元素Ki1至所述相同块元素Kimi在所述页面类别Ai中的总出现频次和所述页面类别Ai所含的所述第二块元素的总出现频次,计算第二相似度S2i;以及根据所述第一相似度S1i和所述第二相似度S2i计算所述相似度指标值Bi。
进一步地,按照公式计算第一相似度S1i,其中,V1Kij为相同块元素Kij在所述待比较网页页面中的出现频次,K0k为所述待比较网页页面中的所述第一块元素,N1为所述待比较网页页面中所述第一块元素的个数,为第一块元素K0k在所述待比较网页页面中的出现频次,按照公式计算第二相似度S2i,其中,V2Kij为所述相同块元素Kij在所述页面类别Ai中的出现频次,Kik为所述页面类别Ai所含的所述第二块元素,Ni为所述页面类别Ai所含的所述第二块元素的个数,为第二块元素Kik在所述页面类别Ai中的出现频次。
为了实现上述目的,根据本发明实施例的另一方面,提供了一种网页页面的聚类装置。
根据本发明的网页页面的聚类装置包括:获取单元,用于获取待比较网页页面的第一块元素;计算单元,用于根据所述第一块元素与页面类别集合中每个页面类别所含的第二块元素,依次计算所述待比较网页页面与每个页面类别的相似度指标值,其中,所述页面类别集合为已确定的页面类别的类别集合,所述第一块元素和所述第二块元素均包含预设属性;第一处理单元,用于当计算出所述待比较网页页面与当前页面类别的相似度指标值大于预设阈值时,将所述待比较网页页面归至所述当前页面类别,并更新所述当前页面类别包含的第二块元素得到所述当前页面类别的更新后页面类别,完成所述待比较网页页面的聚类;以及第二处理单元,用于当所述待比较网页页面与所述页面类别集合中每个页面类别的相似度指标值均小于所述预设阈值时,将所述待比较网页页面作为一个新的页面类别添加到所述页面类别集合中。
进一步地,所述聚类装置还包括:判断单元,用于在根据所述第一块元素与页面类别集合中每个页面类别所含的第二块元素,依次计算所述待比较网页页面与每个页面类别的相似度指标值之前,判断所述页面类别集合是否为空;第三处理单元,用于在判断所述页面类别集合为空的情况下,直接将所述待比较网页页面作为一个新的页面类别添加到所述页面类别集合中;以及第四处理单元,用于在判断所述页面类别集合不为空的情况下,则根据所述第一块元素与页面类别集合中每个页面类别所含的第二块元素,依次计算所述待比较网页页面与每个页面类别的相似度指标值。
进一步地,所述获取单元包括:第一获取模块,用于获取所述待比较网页页面的超文本标记语言HTML代码;建立模块,用于根据所述待比较网页页面的HTML代码建立树形结构;以及提取模块,用于提取所述树形结构中包含预设属性的块元素,得到所述待比较网页页面的所述第一块元素。
进一步地,所述计算单元包括:第二获取模块,用于获取所述待比较网页页面的第一块元素与页面类别Ai所含的第二块元素中的相同块元素Kij,其中,i用于指示当前参与计算的页面类别,取值依次为1至n,n为所述页面类别集合中页面类别的个数,j依次取1至mi,mi为所述页面类别Ai与所述待比较网页页面中相同块元素的个数;第一计算模块,用于根据相同块元素Ki 1至相同块元素Kimi在所述待比较网页页面中的总出现频次和所述待比较网页页面中所述第一块元素的总出现频次,计算第一相似度S1i;根据所述相同块元素Ki1至所述相同块元素Kimi在所述页面类别Ai中的总出现频次和所述页面类别Ai所含的所述第二块元素的总出现频次,计算第二相似度S2i;以及第二计算模块,用于根据所述第一相似度S1i和所述第二相似度S2i计算所述相似度指标值Bi。
进一步地,所述第二计算模块包括:计算子模块,用于按照公式计算第一相似度S1i,其中,V1Kij为相同块元素Kij在所述待比较网页页面中的出现频次,K0k为所述待比较网页页面中的所述第一块元素,N1为所述待比较网页页面中所述第一块元素的个数,为第一块元素K0k在所述待比较网页页面中的出现频次,按照公式计算第二相似度S2i,其中,V2Kij为所述相同块元素Kij在所述页面类别Ai中的出现频次,Kik为所述页面类别Ai所含的所述第二块元素,Ni为所述页面类别Ai所含的所述第二块元素的个数,为第二块元素Kik在所述页面类别Ai中的出现频次。
根据发明实施例,采用获取待比较网页页面的第一块元素;根据所述第一块元素与页面类别集合中每个页面类别所含的第二块元素,依次计算所述待比较网页页面与每个页面类别的相似度指标值,其中,所述页面类别集合为已确定的页面类别的类别集合,所述第一块元素和所述第二块元素均包含预设属性;当计算出所述待比较网页页面与当前页面类别的相似度指标值大于预设阈值时,将所述待比较网页页面归至所述当前页面类别,并更新所述当前页面类别包含的第二块元素得到所述当前页面类别的更新后页面类别,完成所述待比较网页页面的聚类;以及当所述待比较网页页面与所述页面类别集合中每个页面类别的相似度指标值均小于所述预设阈值时,将所述待比较网页页面作为一个新的页面类别添加到所述页面类别集合中。通过根据待比较网页页面中提取到的块元素与已确定的页面类别包含的块元素,可以计算出该待比较网页页面与已确定的页面类别之间的相似度,进而根据相似度与预设阈值的大小关系,可以判断出该待比较网页页面是否属于某个已确定的页面类别,并根据判断结果完成对待比较网页页面的聚类,此种基于块元素来实现网页页面聚类的聚类方式,仅需考虑网页页面的块元素就可以实现网页页面的聚类,相比较于现有技术中需要计算网页页面的整个标签树,并计算标签编辑距离来实现网页页面聚类的聚类方式,解决了现有技术中网页聚类效率低的问题,进而达到了提高网页聚类效率的效果。并且此种基于块元素实现网页页面聚类的聚类方式,不会因为网页页面中偶尔出现的内嵌元素或者其它元素影响相似度计算的准确性,从而达到了提高网页页面聚类准确性的效果。
附图说明
构成本申请的一部分的附图用来提供对本发明的进一步理解,本发明的示意性实施例及其说明用于解释本发明,并不构成对本发明的不当限定。在附图中:
图1是根据本发明实施例的网页页面的聚类方法的流程图;以及
图2是根据本发明实施例的网页页面的聚类装置的示意图。
具体实施方式
为了使本技术领域的人员更好地理解本发明方案,下面将结合本发明实施例中的附图,对本发明实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例仅仅是本发明一部分的实施例,而不是全部的实施例。基于本发明中的实施例,本领域普通技术人员在没有做出创造性劳动前提下所获得的所有其他实施例,都应当属于本发明保护的范围。
需要说明的是,本发明的说明书和权利要求书及上述附图中的术语“第一”、“第二”等是用于区别类似的对象,而不必用于描述特定的顺序或先后次序。应该理解这样使用的数据在适当情况下可以互换,以便这里描述的本发明的实施例能够以除了在这里图示或描述的那些以外的顺序实施。此外,术语“包括”和“具有”以及他们的任何变形,意图在于覆盖不排他的包含,例如,包含了一系列步骤或单元的过程、方法、系统、产品或设备不必限于清楚地列出的那些步骤或单元,而是可包括没有清楚地列出的或对于这些过程、方法、产品或设备固有的其它步骤或单元。
实施例1
根据本发明实施例,提供了一种可以用于实施本申请装置实施例的方法实施例,需要说明的是,在附图的流程图示出的步骤可以在诸如一组计算机可执行指令的计算机系统中执行,并且,虽然在流程图中示出了逻辑顺序,但是在某些情况下,可以以不同于此处的顺序执行所示出或描述的步骤。
根据本发明实施例,提供了一种网页页面的聚类方法。图1是根据本发明实施例的网页页面的聚类方法的流程图,如图1所示,该方法包括如下的步骤S102至步骤S108:
S102:获取待比较网页页面的第一块元素。
S104:根据第一块元素与页面类别集合中每个页面类别所含的第二块元素,依次计算待比较网页页面与每个页面类别的相似度指标值,其中,页面类别集合为已确定的页面类别的类别集合,第一块元素和第二块元素均包含预设属性。
具体地,预设属性为class属性或者id属性。本步骤也就是通过待比较网页页面的第一块元素和每个页面类别中包含的第二块元素,分别计算出该待比较网页页面与每个已确定的页面类别的相似度指标值。相似度指标值越高,说明待比较网页页面与该页面类别的中其它网页页面的结构越相似。
S106:当计算出待比较网页页面与当前页面类别的相似度指标值大于预设阈值时,将待比较网页页面归至当前页面类别中,并更新当前页面类别包含的第二块元素得到当前页面类别的更新后页面类别,完成待比较网页页面的聚类。
在本发明实施例中,计算待比较网页页面与哪个页面类别的相似度指标值时,上述哪个页面类别就为当前页面类别。如果待比较网页页面与当前页面类别的相似度指标值大于预设阈值,那么就将待比较网页页面归至当前页面类别中,并且更新该当前页面类别中包含的第二块元素,从而实现了对待比较网页页面的聚类。由于待比较网页页面所属的页面类别已确定,如果还有未与待比较网页页面计算相似度指标值的页面类别的话,也就不需要再进行计算了。具体地,更新该当前页面类别中包含的第二块元素包括:将待比较网页页面中不与当前页面类别所包含的第二块元素相同的第一块元素作为第二块元素添加至当前页面类别,以及更新每个第二块元素的出现频次。预设阈值的大小可以根据需求设置。
例如:待比较网页页面A中包含4个第一块元素,分别是p[id="submit"]、p[class="p2"]、p[class="p3"]、p[class="p4"],当前页面类别C中包含5个第二块元素,分别是p[class="p2"]、p[class="p3"]、p[class="p4"]、div[class="red"]和p[id="repair"],上述5个第二块元素在当前页面类别C中的出现频次依次分别是2、2、2、2和1,假设待比较网页页面A和当前页面类别C的相似度指标值高于预设阈值,那么将待比较网页页面A所属的页面类别归至当前页面类别C,此时,需要对当前页面类别C中包含的第二块元素进行更新,通过对比可知,待比较网页页面A中的第一块元素p[id="submit"]不与当前页面类别C中包含的任何一个第二块元素相同,那么将第一块元素p[id="submit"]作为第二块元素添加至当前页面类别C,此时当前页面类别C中包含6个第二块元素,分别是p[class="p2"]、p[class="p3"]、p[class="p4"]、div[class="red"]、p[id="repair"]和p[id="submit"],上述6个第二块元素的出现频次依次是3、3、3、2、1和1。因为当前页面类别C包含的第二块元素p[class="p2"]、第二块元素p[class="p3"]和第二块元素p[class="p4"]出现频次分别是2、2和2,但是待比较网页页面A也包含上述三个块元素,所以将待比较网页页面A的归至当前页面类别C后,当前页面类别C中第二块元素p[class="p2"]、第二块元素p[class="p3"]和第二块元素p[class="p4"]的出现频次都分别增加1次,而待比较网页页面A不包含第二块元素div[class="red"]和第二块元素p[id="repair"],所以第二块元素div[class="red"]和第二块元素p[id="repair"]在当前页面类别C中的出现频次不变。
S108:当待比较网页页面与页面类别集合中每个页面类别的相似度指标值均小于预设阈值时,将待比较网页页面作为一个新的页面类别添加到页面类别集合中。
在本发明实施例中,若待比较网页页面与页面类别集合中每个页面类别的相似度指标值都小于预设阈值,说明待比较网页页面与页面类别集合中每个页面类别中的网页页面的页面结构都不相似或者相似度较低,那么就将待比较网页页面作为一个新的页面类别添加到页面类别集合中。需要说明的是,将待比较网页页面作为一个新的类别页面添加到页面类别集合中后,待比较网页页面的第一块元素作为上述新增类别页面的第二块元素。
在本发明实施例中,通过根据待比较网页页面中提取到的块元素与已确定的页面类别包含的块元素,可以计算出该待比较网页页面与已确定的页面类别之间的相似度,进而根据相似度与预设阈值的大小关系,可以判断出该待比较网页页面是否属于某个已确定的页面类别,并根据判断结果完成对待比较网页页面的聚类,此种基于块元素来实现网页页面聚类的聚类方式,仅需考虑网页页面的块元素就可以实现网页页面的聚类,相比较于现有技术中需要计算网页页面的整个标签树,并计算标签编辑距离来实现网页页面聚类的聚类方式,解决了现有技术中网页聚类效率低的问题,进而达到了提高网页聚类效率的效果。并且此种基于块元素实现网页页面聚类的聚类方式,不会因为网页页面中偶尔出现的内嵌元素或者其它元素影响相似度计算的准确性,从而达到了提高网页页面聚类准确性的效果。
需要说明的是,如果待比较网页页面为多个,可以对每个待比较网页页面都重复执行步骤S102至步骤S108,从而实现对每个待比较网页页面的聚类。
优选地,在根据第一块元素与页面类别集合中每个页面类别所含的第二块元素,依次计算待比较网页页面与每个页面类别的相似度指标值之前,本发明实施例所提供的网页页面的聚类方法还包括:
判断页面类别集合是否为空,也就是判断页面类别集合中是否存在已确定的页面类别。
在判断页面类别集合为空的情况下,将待比较网页页面作为一个新的页面类别添加到页面类别集合中,也就是如果判断出页面类别集合中不存在已确定的页面类别,那么就将待比较网页页面作为第一个页面类别添加到页面类别集合中。
在判断页面类别集合不为空的情况下,则根据第一块元素与页面类别集合中每个页面类别所含的第二块元素,依次计算待比较网页页面与每个页面类别的相似度指标值,也就是如果判断出页面类别集合中存在已确定的页面类别,就计算待比较网页页面与每个已确定的页面类别之间的相似度指标值。
在本发明实施例中,通过预先判断页面类别集合是否为空,根据判断结果对待比较网页页面进行不同的处理方式,达到了进一步提高对待比较网页页面进行聚类的效率的效果。
具体地,可以通过步骤1-1至步骤1-3获取待比较网页页面的第一块元素,其中,步骤1-1至步骤1-3具体如下:
步骤1-1:获取待比较网页页面的超文本标记语言HTML代码。
步骤1-2:根据待比较网页页面的HTML代码建立树形结构,也就是建立关于待比较网页页面的HTML代码的树形结构。
步骤1-3:提取树形结构中包含预设属性的块元素,得到待比较网页页面的第一块元素。具体地,预设属性为class属性或者id属性,本步骤也就是提取树形结构中包含class属性或者id属性的块元素,上述提取到的块元素称之为第一块元素。
待比较网页页面中各个第一块元素相互之间各不相同。从树形结构中提取出的包含预设属性且内容相同的第一块元素会合并作为一个第一块元素,其相应的各个出现频次会进行加和,得到该块元素的最终出现频次。
相应的,每个页面类别所含的各个第二块元素相互之间也各不相同。当一个待比较网页页面归至一个页面类别时,该待比较网页页面的第一块元素与当前页面类别的第二块元素中相同的块元素将会进行合并,相同块元素在待比较网页页面和当前页面类别中各自对应的出现频次会进行加和,得到该块元素在更新后的当前页面类别中的出现频次。
具体地,可以通过步骤2-1至步骤2-4依次计算待比较网页页面与每个页面类别的相似度指标值,其中,步骤2-1至步骤2-4具体如下:
步骤2-1:获取待比较网页页面的第一块元素与页面类别Ai所含的第二块元素中的相同块元素Kij,其中,i用于指示当前参与计算的页面类别,取值依次为1至n,n为页面类别集合中页面类别的个数,j依次取1至mi,mi为页面类别Ai与待比较网页页面中相同块元素的个数。本步骤也就是获取待比较网页页面的第一块元素与页面类别Ai所含的第二块元素中相同块元素。
步骤2-2:根据相同块元素Ki1至相同块元素Kimi在待比较网页页面中的总出现频次和待比较网页页面中第一块元素的总出现频次,计算第一相似度S1i。具体地,相同块元素Ki1至相同块元素Kimi在待比较网页页面中的总出现频次等于相同块元素Ki1至相同块元素Kimi中每个相同块元素在待比较网页页面中的出现频次之和;待比较网页页面中第一块元素的总出现频次等于待比较网页页面中每个第一块元素的出现频次之和。
具体地,可以按照公式计算第一相似度S1i,其中,V1Kij为相同块元素Kij在待比较网页页面中的出现频次,K0k为待比较网页页面中的第一块元素,N1为待比较网页页面中第一块元素的个数,为第一块元素K0k在待比较网页页面中的出现频次。本发明实施例也就是,根据相同块元素在待比较网页页面中的总出现频次与第一块元素在待比较网页页面中的总出现频次的比值,计算得到第一相似度S1i。
步骤2-3:根据相同块元素Ki1至相同块元素Kimi在页面类别Ai中的总出现频次和页面类别Ai所含的第二块元素的总出现频次,计算第二相似度S2i。具体地,根据相同块元素Ki1至相同块元素Kimi在页面类别Ai中的总出现频次等于相同块元素Ki1至相同块元素Kimi中每个相同块元素在页面类别Ai中的出现频次之和;类别页面Ai所含的第二块元素的总出现频次等于类别页面Ai所含的各个第二块元素的出现频次之和。例如,类别页面A1中包含5个第二块元素,每个第二块元素出现频次分别是2、2、3、2和1,那么类别页面A1所含的第二块元素的总出现频次V1=2+2+3+2+1=10。
具体地,可以按照公式计算第二相似度S2i,其中,V2Kij为相同块元素Kij在页面类别Ai中的出现频次,Kik为页面类别Ai所含的第二块元素,Ni为页面类别Ai所含的第二块元素的个数,为第二块元素Kik在页面类别Ai中的出现频次。本发明实施例也就是,根据相同块元素在页面类别Ai中的总出现频次与第二块元素在页面类别Ai中的总出现频次的比值,计算得到第二相似度S2i。
步骤2-4:根据第一相似度S1i和第二相似度S2i计算相似度指标值Bi。具体地,相似度指标值Bi=(第一相似度S1i+第二相似度S2i)/2。
假设存在页面类别集合和网页页面1,其中,页面类别集合中包含页面类别A1和页面类别A2,下面以页面类别A1和网页页面1为例,具体说明网页页面1实现聚类的过程。此时,网页页面1为待比较网页页面。首先获取网页页面1的HTML代码,根据获取到的网页页面1的HTML代码建立关于该HTML代码的树形结构,并获取上述树形结构中的块元素,对于网页页面1获取到6个块元素,上述6个块元素具体如下:
<title>Page1</title>
<h1>This is page1</h1>
<p class="p1">P1</p>
<p id="content">Content</p>
<p class="p2">P2</p>
<div>footer</div>
然后,在网页页面1获取到的块元素中,提取块元素中包含class属性或者id属性的块元素,得到网页页面1的第一块元素,也可以称之为有效块元素。那么,对于网页页面1可以提取出3个符合上述提取条件(即,包含class属性或者id属性的块元素)的有效块元素,分别是p[class="p1"]、p[id="content"]和p[class="p2"],并且上述3个有效块元素的出现频次依次是1、1和1。页面类别A1中包含4个第二块元素,分别是p[class="p1"]、p[id="content"]、p[class="p2"]和div[class="footer"],并且上述4个第二块元素的出现频次依次是2、2、2和1。接下来对网页页面1中与页面类别A1中相同的块元素进行获取,得到3个相同块元素,分别是p[class="p1"]、p[id="content"]和p[class="p2"],然后计算第一相似度S11和第二相似度S21。具体可以按照公式计算网页页面1和页面类别A1的第一相似度S11,按照公式计算网页页面1和页面类别A1的第二相似度S21,那么,网页页面1和页面类别A1的第一相似度网页页面1和页面类别A1的第二相似度所以相似度指标值B1=(1+0.857)/2=0.9285。将该相似度指标值B1与预设阈值比较,如果相似度指标值B1大于预设阈值,将网页页面1归至页面类别A1所表示的页面类别中。在将网页页面1归至页面类别A1后,对页面类别A1中包含的第二块元素进行更新。因为网页页面1中的块元素p[class="p1"]、p[id="content"]和p[class="p2"]均被页面类别A1包含,所以页面类别A1中包含的块元素的种类不变,但p[class="p1"]、p[id="content"]和p[class="p2"]在页面类别A1中的出现频次均增加一次,由于网页页面1中不包含第二块元素div[class="footer"],所以该第二块元素div[class="footer"]在页面类别A1中的出现频次不变。综上,此时页面类别A1中包含的4个第二块元素,分别是p[class="p1"]、p[id="content"]、p[class="p2"]和div[class="footer"],并且上述4个第二块元素的出现频次依次是3、3、3和1。如果相似度指标值B1小于预设阈值,说明网页页面1不属于页面类别A所表示的页面类别,接下来计算网页页面1与页面类别A2的相似度指标值B2,并根据相似度指标值B2与预设阈值的大小关系,判断网页页面1是否属于页面类别A2所表示的页面类别。计算相似度指标值B2的过程同计算相似度指标值B1的过程相同,此处就不再具体说明。如果相似度指标值B2大于预设阈值,说明网页页面1属于页面类别A2所表示的页面类别,如果相似度指标值B2小于预设阈值,那么就将网页页面1作为一个新的页面类别添加到页面类别集合中。根据上述过程,完成网页页面1的聚类。
如果需要聚类的网页页面为多个,其他网页页面实现聚类的过程与网页页面1相同,在此不再重复说明。
需要说明的是,对于前述的各方法实施例,为了简单描述,故将其都表述为一系列的动作组合,但是本领域技术人员应该知悉,本发明并不受所描述的动作顺序的限制,因为依据本发明,某些步骤可以采用其他顺序或者同时进行。其次,本领域技术人员也应该知悉,说明书中所描述的实施例均属于优选实施例,所涉及的动作和模块并不一定是本发明所必须的。
通过以上的实施方式的描述,本领域的技术人员可以清楚地了解到根据上述实施例的方法可借助软件加必需的通用硬件平台的方式来实现,当然也可以通过硬件,但很多情况下前者是更佳的实施方式。基于这样的理解,本发明的技术方案本质上或者说对现有技术做出贡献的部分可以以软件产品的形式体现出来,该计算机软件产品存储在一个存储介质(如ROM/RAM、磁碟、光盘)中,包括若干指令用以使得一台终端设备(可以是手机,计算机,服务器,或者网络设备等)执行本发明各个实施例所述的方法。
实施例2
根据本发明实施例,还提供了一种用于实施上述网页页面的聚类方法的网页页面的聚类装置,该聚类装置主要用于执行本发明实施例上述内容所提供的聚类方法,以下对本发明实施例所提供的网页页面的聚类装置做具体介绍:
图2是根据本发明实施例的网页页面的聚类装置的示意图,如图2所示,该装置主要包括获取单元10、计算单元20、第一处理单元30和第二处理单元40,其中:
获取单元10用于获取待比较网页页面的第一块元素。
计算单元20用于根据第一块元素与页面类别集合中每个页面类别所含的第二块元素,依次计算待比较网页页面与每个页面类别的相似度指标值,其中,页面类别集合为已确定的页面类别的类别集合,第一块元素和第二块元素均包含预设属性。具体地,预设属性为class属性或者id属性。本单元也就是通过待比较网页页面的第一块元素和每个页面类别中包含的第二块元素,分别计算出该待比较网页页面与每个已确定的页面类别的相似度指标值。相似度指标值越高,说明待比较网页页面与该页面类别的中其它网页页面的结构越相似。
第一处理单元30用于当计算出待比较网页页面与当前页面类别的相似度指标值大于预设阈值时,将待比较网页页面归至当前页面类别,并更新当前页面类别包含的第二块元素得到当前页面类别的更新后页面类别,完成待比较网页页面的聚类。
在本发明实施例中,计算待比较网页页面与哪个页面类别的相似度指标值时,上述哪个页面类别就为当前页面类别。如果待比较网页页面与当前页面类别的相似度指标值大于预设阈值,那么就将待比较网页页面归至当前页面类别中,并且更新该当前页面类别中包含的第二块元素,从而实现了对待比较网页页面的聚类。由于待比较网页页面所属的页面类别已确定,如果还有未与待比较网页页面计算相似度指标值的页面类别的话,也就不需要再进行计算了。具体地,更新该当前页面类别中包含的第二块元素包括:将待比较网页页面中不与当前页面类别所包含的第二块元素相同的第一块元素作为第二块元素添加至当前页面类别,以及更新每个第二块元素的出现频次。预设阈值的大小可以根据需求设置。
例如:待比较网页页面A中包含4个第一块元素,分别是p[id="submit"]、p[class="p2"]、p[class="p3"]、p[class="p4"],当前页面类别C中包含5个第二块元素,分别是p[class="p2"]、p[class="p3"]、p[class="p4"]、div[class="red"]和p[id="repair"],上述5个第二块元素在当前页面类别C中的出现频次依次分别是2、2、2、2和1,假设待比较网页页面A和当前页面类别C的相似度指标值高于预设阈值,那么将待比较网页页面A所属的页面类别归至当前页面类别C,此时,需要对当前页面类别C中包含的第二块元素进行更新,通过对比可知,待比较网页页面A中的第一块元素p[id="submit"]不与当前页面类别C中包含的任何一个第二块元素相同,那么将第一块元素p[id="submit"]作为第二块元素添加至当前页面类别C,此时当前页面类别C中包含6个第二块元素,分别是p[class="p2"]、p[class="p3"]、p[class="p4"]、div[class="red"]、p[id="repair"]和p[id="submit"],上述6个第二块元素的出现频次依次是3、3、3、2、1和1。因为当前页面类别C包含的第二块元素p[class="p2"]、第二块元素p[class="p3"]和第二块元素p[class="p4"]出现频次分别是2、2和2,但是待比较网页页面A也包含上述三个块元素,所以将待比较网页页面A的归至当前页面类别C后,当前页面类别C中第二块元素p[class="p2"]、第二块元素p[class="p3"]和第二块元素p[class="p4"]的出现频次都分别增加1次,而待比较网页页面A不包含第二块元素div[class="red"]和第二块元素p[id="repair"],所以第二块元素div[class="red"]和第二块元素p[id="repair"]在当前页面类别C中的出现频次不变。
第二处理单元40用于当待比较网页页面与页面类别集合中每个页面类别的相似度指标值均小于预设阈值时,将待比较网页页面作为一个新的页面类别添加到页面类别集合中。
在本发明实施例中,若待比较网页页面与页面类别集合中每个页面类别的相似度指标值都小于预设阈值,说明待比较网页页面与页面类别集合中每个页面类别中的网页页面的页面结构都不相似或者相似度较低,那么就将待比较网页页面作为一个新的页面类别添加到页面类别集合中。需要说明的是,将待比较网页页面作为一个新的类别页面添加到页面类别集合中后,待比较网页页面的第一块元素作为上述新增类别页面的第二块元素。
在本发明实施例中,通过根据待比较网页页面中提取到的块元素与已确定的页面类别包含的块元素,可以计算出该待比较网页页面与已确定的页面类别之间的相似度,进而根据相似度与预设阈值的大小关系,可以判断出该待比较网页页面是否属于某个已确定的页面类别,并根据判断结果完成对待比较网页页面的聚类,此种基于块元素来实现网页页面聚类的聚类方式,仅需考虑网页页面的块元素就可以实现网页页面的聚类,相比较于现有技术中需要计算网页页面的整个标签树,并计算标签编辑距离来实现网页页面聚类的聚类方式,解决了现有技术中网页聚类效率低的问题,进而达到了提高网页聚类效率的效果。并且此种基于块元素实现网页页面聚类的聚类方式,不会因为网页页面中偶尔出现的内嵌元素或者其它元素影响相似度计算的准确性,从而达到了提高网页页面聚类准确性的效果。
需要说明的是,如果待比较网页页面为多个,可以对每个待比较网页页面都重复调用获取单元10、计算单元20、第一处理单元30和第二处理单元40,从而实现对每个待比较网页页面的聚类。
优选地,本发明实施例所提供的网页页面的聚类装置还包括判断单元、第三处理单元和第四处理单元,其中:
判断单元用于在根据第一块元素与页面类别集合中每个页面类别所含的第二块元素,依次计算待比较网页页面与每个页面类别的相似度指标值之前,判断页面类别集合是否为空,也就是判断页面类别集合中是否存在已确定的页面类别。
第三处理单元用于在判断页面类别集合为空的情况下,直接将待比较网页页面作为一个新的页面类别添加到页面类别集合中,也就是如果判断出页面类别集合中不存在已确定的页面类别,那么就将待比较网页页面作为第一个页面类别添加到页面类别集合中。
第四处理单元,用于在判断页面类别集合不为空的情况下,则根据第一块元素与页面类别集合中每个页面类别所含的第二块元素,依次计算待比较网页页面与每个页面类别的相似度指标值,也就是如果判断出页面类别集合中存在已确定的页面类别,就计算待比较网页页面与每个已确定的页面类别之间的相似度指标值。
在本发明实施例中,通过预先判断页面类别集合是否为空,根据判断结果对待比较网页页面进行不同的处理方式,达到了进一步提高对待比较网页页面进行聚类的效率的效果。
具体地,在本发明实施例中,获取单元10包括第一获取模块、建立模块和提取模块,其中:
第一获取模块用于获取待比较网页页面的超文本标记语言HTML代码;
建立模块用于根据待比较网页页面的HTML代码建立树形结构,也就是建立关于待比较网页页面的HTML代码的树形结构。
提取模块用于提取树形结构中包含预设属性的块元素,得到待比较网页页面的第一块元素。具体地,预设属性为class属性或者id属性,本模块也就是提取树形结构中包含class属性或者id属性的块元素,上述提取到的块元素称之为第一块元素。
具体地,在本发明实施例中,计算单元20包括第二获取模块、第一计算模块和第二计算模块,其中:
第二获取模块用于获取待比较网页页面的第一块元素与页面类别Ai所含的第二块元素中的相同块元素Kij,其中,i用于指示当前参与计算的页面类别,取值依次为1至n,n为页面类别集合中页面类别的个数,j依次取1至mi,mi为页面类别Ai与待比较网页页面中相同块元素的个数。本模块也就是获取待比较网页页面的第一块元素与页面类别Ai所含的第二块元素中相同块元素。
第一计算模块用于根据相同块元素Ki1至相同块元素Kimi在待比较网页页面中的总出现频次和待比较网页页面中第一块元素的总出现频次,计算第一相似度S1i;根据相同块元素Ki1至相同块元素Kimi在页面类别Ai中的总出现频次和页面类别Ai所含的第二块元素的总出现频次,计算第二相似度S2i。具体地,相同块元素Ki1至相同块元素Kimi在待比较网页页面中的总出现频次等于相同块元素Ki1至相同块元素Kimi中每个相同块元素在待比较网页页面中的出现频次之和;待比较网页页面中第一块元素的总出现频次等于待比较网页页面中每个第一块元素的出现频次之和;根据相同块元素Ki1至相同块元素Kimi在页面类别Ai中的总出现频次等于相同块元素Ki1至相同块元素Kimi中每个相同块元素在页面类别Ai中的出现频次之和;类别页面Ai所含的第二块元素的总出现频次等于类别页面Ai所含的各个第二块元素的出现频次之和。例如,类别页面A1中包含5个第二块元素,每个第二块元素出现频次分别是2、2、3、2和1,那么类别页面A1所含的第二块元素的总出现频次V1=2+2+3+2+1=10。
第二计算模块用于根据第一相似度S1i和第二相似度S2i计算相似度指标值Bi。
具体地,第一计算模块包括计算子模块,计算子模块用于按照公式计算第一相似度S1i,其中,V1Kij为相同块元素Kij在待比较网页页面中的出现频次,K0k为待比较网页页面中的第一块元素,N1为待比较网页页面中第一块元素的个数,为第一块元素K0k在待比较网页页面中的出现频次;按照公式计算第二相似度S2i,其中,V2Kij为相同块元素Kij在页面类别Ai中的出现频次,Kik为页面类别Ai所含的第二块元素,Ni为页面类别Ai所含的第二块元素的个数,为第二块元素Kik在页面类别Ai中的出现频次。本发明实施例也就是,根据相同块元素在待比较网页页面中的总出现频次与第一块元素在待比较网页页面中的总出现频次的比值,计算得到第一相似度S1i;根据相同块元素在页面类别Ai中的总出现频次与第二块元素在页面类别Ai中的总出现频次的比值,计算得到第二相似度S2i。
假设存在页面类别集合和网页页面1,其中,页面类别集合中包含页面类别A1和页面类别A2。下面以页面类别A1和网页页面1为例,具体说明网页页面1实现聚类的过程。此时,网页页面1为待比较网页页面。首先获取网页页面1的HTML代码,根据获取到的网页页面1的HTML代码建立关于该HTML代码的树形结构,并获取上述树形结构中的块元素,对于网页页面1获取到6个块元素,上述6个块元素具体如下:
<title>Page1</title>
<h1>This is page1</h1>
<p class="p1">P1</p>
<p id="content">Content</p>
<p class="p2">P2</p>
<div>footer</div>
然后,在网页页面1获取到的块元素中,提取块元素中包含class属性或者id属性的块元素,得到网页页面1的第一块元素,也可以称之为有效块元素。那么,对于网页页面1可以提取出3个符合上述提取条件(即,包含class属性或者id属性的块元素)的有效块元素,分别是p[class="p1"]、p[id="content"]和p[class="p2"],并且上述3个有效块元素的出现频次依次是1、1和1。页面类别A1中包含4个第二块元素,分别是p[class="p1"]、p[id="content"]、p[class="p2"]和div[class="footer"],并且上述4个第二块元素的出现频次依次是2、2、2和1。接下来对网页页面1中与页面类别A1中相同的块元素进行获取,得到3个相同块元素,分别是p[class="p1"]、p[id="content"]和p[class="p2"],然后计算第一相似度S11和第二相似度S21。具体可以按照公式计算网页页面1和页面类别A1的第一相似度S11,按照公式计算网页页面1和页面类别A1的第二相似度S21,那么,网页页面1和页面类别A1的第一相似度网页页面1和页面类别A1的第二相似度所以相似度指标值B1=(1+0.857)/2=0.9285。将该相似度指标值B1与预设阈值比较,如果相似度指标值B1大于预设阈值,将网页页面1归至页面类别A1所表示的页面类别中。在将网页页面1归至页面类别A1后,对页面类别A1中包含的第二块元素进行更新。因为网页页面1中的块元素p[class="p1"]、p[id="content"]和p[class="p2"]均被页面类别A1包含,所以页面类别A中包含的块元素的种类不变,但p[class="p1"]、p[id="content"]和p[class="p2"]在页面类别A中的出现频次均增加一次,由于网页页面1中不包含第二块元素div[class="footer"],所以该第二块元素div[class="footer"]在页面类别A1中的出现频次不变。综上,页面类别A1中包含的4个第二块元素,分别是p[class="p1"]、p[id="content"]、p[class="p2"]和div[class="footer"],并且上述4个块元素的出现频次依次是3、3、3和1。如果相似度指标值B1小于预设阈值,说明网页页面1不属于页面类别A所表示的页面类别,接下来计算网页页面1与页面类别A2的相似度指标值B2,并根据相似度指标值B2与预设阈值的大小关系,判断网页页面1是否属于页面类别A2所表示的页面类别。计算相似度指标值B2的过程同计算相似度指标值B1的过程相同,此处就不再具体说明。如果相似度指标值B2大于预设阈值,说明网页页面1属于页面类别A2所表示的页面类别,如果相似度指标值B2小于预设阈值,那么就将网页页面1作为一个新的页面类别添加到页面类别集合中。根据上述过程,完成网页页面1的聚类。
如果需要聚类的网页页面为多个,其他网页页面实现聚类的过程与网页页面1相同,在此不再重复说明。
从以上的描述中,可以看出,本发明解决了现有技术中网页聚类效率低的问题,进而达到了提高网页聚类效率的效果。
上述本发明实施例序号仅仅为了描述,不代表实施例的优劣。
在本发明的上述实施例中,对各个实施例的描述都各有侧重,某个实施例中没有详述的部分,可以参见其他实施例的相关描述。
在本申请所提供的几个实施例中,应该理解到,所揭露的客户端,可通过其它的方式实现。其中,以上所描述的装置实施例仅仅是示意性的,例如所述单元的划分,仅仅为一种逻辑功能划分,实际实现时可以有另外的划分方式,例如多个单元或组件可以结合或者可以集成到另一个系统,或一些特征可以忽略,或不执行。另一点,所显示或讨论的相互之间的耦合或直接耦合或通信连接可以是通过一些接口,单元或模块的间接耦合或通信连接,可以是电性或其它的形式。
所述作为分离部件说明的单元可以是或者也可以不是物理上分开的,作为单元显示的部件可以是或者也可以不是物理单元,即可以位于一个地方,或者也可以分布到多个网络单元上。可以根据实际的需要选择其中的部分或者全部单元来实现本实施例方案的目的。
另外,在本发明各个实施例中的各功能单元可以集成在一个处理单元中,也可以是各个单元单独物理存在,也可以两个或两个以上单元集成在一个单元中。上述集成的单元既可以采用硬件的形式实现,也可以采用软件功能单元的形式实现。
所述集成的单元如果以软件功能单元的形式实现并作为独立的产品销售或使用时,可以存储在一个计算机可读取存储介质中。基于这样的理解,本发明的技术方案本质上或者说对现有技术做出贡献的部分或者该技术方案的全部或部分可以以软件产品的形式体现出来,该计算机软件产品存储在一个存储介质中,包括若干指令用以使得一台计算机设备(可为个人计算机、服务器或者网络设备等)执行本发明各个实施例所述方法的全部或部分步骤。而前述的存储介质包括:U盘、只读存储器(ROM,Read-Only Memory)、随机存取存储器(RAM,Random Access Memory)、移动硬盘、磁碟或者光盘等各种可以存储程序代码的介质。
以上所述仅是本发明的优选实施方式,应当指出,对于本技术领域的普通技术人员来说,在不脱离本发明原理的前提下,还可以做出若干改进和润饰,这些改进和润饰也应视为本发明的保护范围。