一种基于视觉分块的网页LOGO提取系统及方法与流程

文档序号:23305824发布日期:2020-12-15 11:36阅读:175来源:国知局
本发明是一种基于视觉分块的网页logo提取系统及方法,尤其涉及网页logo提取及视觉识别分析技术,属于计算机网络领域。
背景技术
::《中国互联网络发展状况统计报告》指出依然有44.4%网民遭受过网络安全的威胁,其中钓鱼网站占比最重。国家已经设置了国家防火墙对此进行了管控,通过设置黑名单的方式根据ip,域名进行过滤,但是攻击者根据现有的防御方式不断发掘新的攻击技术。有一部分网站不断的更换域名和主机地址,导致这些网页的识别难度变大。在这样的情况下只通过黑名单就无能为力,所以需要对网页内容的特征提取。目前基于网页内容的特征提取主要分为3大类,有基于机器学习的启发式特征提取方法,有基于网页源代码的提取方法,有基于网页dom树结构的提取方法,还有基于视觉特征的提取方法。基于网页源代码的特征提取的效率高,但是未充分利用网页中的其他信息。基于网页dom树结构的特征提取方法同时考虑了文本密度和网页的dom树结构信息,准确率得到的提高,但与基于网页源码的特征提取存在相同的问题,所以提取出更加有代表性的网页视觉特征,对网页识别有这举足轻重的影响。网页特征提取方法主要分为三类:基于网页文本的特征提取,基于网页结构的特征提取和基于网页视觉信息的特征提取:(1)基于网页文本的特征提取:针对于网页中的文本信息,对于普通文本的文档特征提取出现的比较早,heintze等人从文档中提取长度为30至45的字符串作为文档特征shivakumar等人通过对分段文本的签名进行比较来识别目标文档。除了heintze和shivakumar的匹配算法外,还有yap3算法、mdr算法等,这些算法没有考虑到网页文本内容或者普通文档的整体结构,只是使用了字符串比较的方法。在文档查重中还有基于词频统计的方法,如shivakumar等人提出的scam方法,后来该方法被改进后被应用于google的系统。但是由于网页内容比较少,包含的词汇量也很少,这导致生成的文本特征向量十分的稀疏,会导致分类的准确率下降,并且传统的方法并没有考虑到网页的语义特征和结构特征。(2)基于网页的结构特征提取:si等人在1997年提出了check方法,它引入了文档的结构信息,即文档按章、节、段落等生成一颗文档树,然后对文档树进行深度优先比较来计算相似度sahuguet等人提出的w4f算法是将网页构建成dom树,基于人工标记好的网页,抽取出网页主要内容对应的规则。liu等人设计的xwrap也是先将网页构建成dom树,然后根据目标节点的xpath表达式来进行内容的提取,这个技术的不足之处是该技术对网页结构的变化敏感,所以要经常对结构发生变化的网页更新xpath表达式。(3)基于网页视觉特征提取:网页中包含很多的视觉特征比如字体,背景颜色,链接个数,dengcai等人提出了一种独立于标记树,自上而下的方法来检测web内容结构体。它根据用户的视觉感受模拟用户如何理解web布局结构。这种方法独立于html文档表示。王宪法等人使用了wemlvf,分别提出了基于经典包装器归纳算法softmeadly和基于xpath的自动生成信息抽取模板的方法。这两种方法使用视觉特征自动生成信息抽取模板,但模板的表达并不包含视觉特征,使得在使用模板进行信息抽取的过程中无需提取网页的视觉特征,从而既充分利用了视觉特征在信息抽取中的作用,又显著提升了信息抽取的效率。2015年wu等人提出一种基于视觉特征的正文抽取方法,他们结合了网页的结构特征和视觉特征,利用已标注数据集进行训练,使用分类算法来将正文和非正文内容分成两类,但是这些方法并没有得到好的实际应用效果。技术实现要素:为了解决现有技术中基于网页视觉识别分析不稳定,准确率不高,实际应用效果不好的问题,本发明提出一种基于视觉分块的网页logo提取系统及方法,具体方案如下:方案一:一种基于视觉分块的网页logo提取系统,包括页面数据提取模块、分隔符探测模块和页面布局重构模块,上述各模块之间呈递进逻辑连接;页面数据提取模块用于所需特征量的提取;分隔符探测模块负责分隔符的添加以及规则化分割;页面布局重构模块用于将页面内容重新布局重构。进一步地,所述的页面数据提取模块由视觉块提取模块和logo块提取模块两部分组成。方案二:一种基于视觉分块的网页logo提取方法,是根据上述提取系统为基础实现的,具体方法步骤如下:步骤一,在对html页面进行解析,然后通过所述的页面数据提取模块中的视觉块提取模块对视觉块进行提取,通过所述的logo块提取模块对logo块进行数据提取;步骤二,利用所述的分隔符探测模块在网页中添加的分隔符并通过算法进行分割;步骤三,最终通过页面布局重构模块将分割整理后的内容进行页面布局重构,实现网页logo提取。进一步地,在步骤一中视觉块提取模块根据视觉块的特点进行视觉快提取,视觉块为dom树节点的子集;视觉块用visualblock表示,由多个视觉块组成的视觉结构则用visualstructure表示,所述的视觉块特点具体为:a.每个视觉块都是一个与网页平行的矩形;b.一个视觉结构里的所有视觉块之间关联度高于一个阈值,说明这个结构中内容关联度高,可以合并为一个视觉结构;c.视觉块中包含位置信息,字体大小,文本个数,链接个数,图片个数;d.视觉块之间不存在重合;e.视觉结构拥有所有视觉块的特点。进一步地,所述的位置信息以top、left、heigh和width作为坐标四元组,top和left分别定义节点显示区域矩形的左上角定点与页面下边沿的像素距离;heigh指矩形区域的高度,width指矩形区域的宽度;确定四元组进而确定visualblock的显示区域,所述的字体大小通过解析visualblock包含的dom树结点获得,对所有节点的字体大小进行统计;所述的图片个数对包含的dom树节点解析,获取到<image>标签,统计个数并且保存链接生成dom树,最终利用cssbox类库模型对视觉块进行提取。进一步地,根据步骤二中所述的分隔符探测模块,一个分隔符由一个二元组代表ps,pe,其中ps代表着起始坐标,pe代表着结束坐标,分隔符宽度由这两个值计算,分隔符探测算法步骤如下:步骤二一,首先初始化分隔符列表,列表最开始只包含一个以面板为界限的分隔符对于在面板上的每个视觉块,每个视觉块之间的分隔符按如下规则别评估,首先移除初始面板周围的4个分隔符,如果分隔符中包含一个块,则分割这个分隔符;如果块穿过一个分隔符,则重新调整分隔符参数;如果一个分隔符被block覆盖,则移除这个分隔符;移除初始面板周围的4个分隔符;步骤二二,分隔符被用来辨别不同语义块,因此分隔符的权重可以根据相邻块的不同分配,接下来的规则被用来为每一个分隔符设置权重,分隔符宽度越宽则权值越大,如果分隔符与某些标签重叠则权值越高,如果分隔符分割开的两个视觉块背景颜色不同则权值提高;步骤二三,对于水平分隔符,如果分隔符两侧的字体属性差异较大,则权值会增加,此外,如果分隔符上方的块的字体大小小于分隔符下方的块的字体大小,则权值会增加,对于水平分割器,当分割器两侧的块的结构非常相似时,分割器的权值将减小。进一步地,步骤三中所述的页面布局重构模块,构建过程从权值最小的的分隔符开始,然后将这些分隔符旁边视觉块合并以形成新的视觉块;合并过程将反复进行,直到满足最大权值的分隔符为止,并根据块区域中分隔符的最大权重设置每个视觉块文件的doc,其中预先定义文件为pdoc,则doc的要求是doc>pdoc;之后检查每个叶子节点是否满足粒度要求,对于每个失败的节点,再次转到视觉块提取步骤,以进一步在该节点内构造子内容结构;如果所有节点全部满足要求,则停止迭代过程,并获得整个页面的基于视觉的内容结构。进一步地,所述的视觉块提取模块,在网页进行了分割后,分割出来每个部分中包含的视觉块之间都有紧密的联系,每个视觉块之间的doc都高于pdoc;由多个视觉块聚合出来的结构为视觉结构visualstructure,每个视觉结构的特征信息都是由内部所有视觉块的信息构成,其中视觉结构的特征信息具体为:位置信息:visualstructure的位置信息是一个四元组包括top、left、width和height四个视觉特征量,遍历visualstructure中所有的视觉块,找到最小的top,left和最大的top+height,left+weight,同时用以上这四个数据代表着visualstructure所包含的区域;图像信息:visualstructure的图像信息为所包含的所有的视觉块图像信息的汇总,视觉块中存在两个字段,一个是记录包含图像个数,一个是图像的链接列表,将所有视觉块中的两个字段进行加和得到visualstructure的图像信息;背景颜色:提取visualstructure中第一个视觉块的背景颜色作为visualstructure的背景颜色;文本内容:包含视觉块的所有文本内容;字体大小:提取第一个视觉块的字体大小当作visualstrcture的字体大小;根据构建之后的visualstructure,从根节点依次前序遍历每个视觉块信息,提取每个视觉块的视觉特征,visualstructure中的id代表该结构在树中的位置,根节点id=“1”,其子节点id=“1-1”,“1-2”以此类推,为每一个visualstructure根据其id名字建立一个文件夹用于存放该结构的一些具体文件,如结构中包含图片,则根据<img,src=“”>获取图片的url,获取到块中的图片存储到与之对应的id文件夹内。进一步地,所述的logo块提取模块,经过采集大量网页源码,对网页中logo图片位置的属性字段会包含logo或者logo字段,使用logo或者包含logo的字段设为该图片的类,利用该特性自主提取网页的logo图片;之后结合vips算法,提取出来logo图片具有最小的粒度,即提取出来的logo块仅包含logo图片不包含其他的干扰信息;之后将html解析成dom树,dom树中的节点包含标签,标签属性为<divclass=”logo”>或<divid=”logo”>,在提取过程中,如果视觉块中存在class属性包含“logo”关键字的时候,则将改视觉块设为logo块,其中islogo字段为true,并且该视觉块的所有子节点也为logo块;通过dom树构建视觉树的时候标注logo块,logo标注算法如下:解析dom树中的每个节点属性信息,判断该节点是否为logo块,查看节点属性class或id中是否包含logo关键字,如果包含则为logo块;如果该节点是logo块,则将该节点设为可视块,并将doc设为11,将该节点的所有子节点同时设为logo块;递归标注每一个子节点;根据logo块需满足块doc>pdoc规则,则logo视觉块探测算法如下:递归遍历已经分割完成的所有视觉块,从视觉块根节点开始遍历;之后判断该视觉快是否满足粒度要求,如果满足则查看该视觉块中包含的所有可视块中是否存在logo块即islogo字段为true的节点,如果存在则将该块即为logo;获取视觉块位置四元组,如果为logo块则根据坐标截取网页中图片,最后递归遍历该视觉块所有子节点;根据logo标注算法,logo探测算法,如果存在包含“logo”关键字的块,则将该视觉块视为logo块,因块中存在logo图片具有不确定性,所以对视觉结构中包含的所有的视觉块进行遍历,去判断是否为logo块,如果是则在id后加上“logo”字样。本发明的有益效果体现在:一种基于视觉分块的网页logo提取系统及方法,是基于网页dom树结构的特征进行特征量提取的系统及其方法,本发明的提取方法同时考虑了文本密度和网页的dom树结构信息,准确率得到的提高,通常先利用浏览器渲染某个网页后,获取到这个网页中各个节点的视觉信息,该方法提取更为健壮的视觉特征,有更好的鲁棒性,同时具有更高的准确度。附图说明图1是基于视觉的页面分块算法流程图;图2是某大学教务处视觉块提取示意图;图3是某大学教务处页面分隔符集合示意图;图4是内容重构后的某大学教务处页面显示图;图5是经提取视觉特征结果图;图6是某网页视觉块结构示意图;图7是某网页编辑logo块示意图。具体实施方式具体实施方式一:结合附图1-7说明基于视觉分块的网页logo提取系统,具体实施方式如下:该系统包括页面数据提取模块、分隔符探测模块和页面布局重构模块;上述各模块之间呈递进逻辑连接;页面数据提取模块用于所需特征量的提取,分隔符探测模块负责分隔符的添加以及规则化分割,页面布局重构模块用于将页面内容重新布局重构。具体实施方式二:结合附图1-7说明基于视觉分块的网页logo提取方法,包括视觉块划分算法,根据网页的基本结构,浏览器根据html,css生成domtree,csstree并进行渲染。视觉块为dom树节点的子集,与dom树不同,每个视觉块都表示网页中的某一部分,视觉块用visualblock表示,由多个视觉块组成的视觉结构用visualstructure表示,视觉块的特点如下:(1)每个视觉块都是一个与网页平行的矩形,(2)一个视觉结构里的所有视觉块之间关联度高于一个阈值,说明这个结构中内容关联度高,可以合并为一个视觉结构,(3)视觉块中包含位置信息,字体大小,文本个数,链接个数,图片个数等等,(4)视觉块之间不存在重合,(5)视觉结构拥有所有视觉块的特点。其中特点(3)提到的位置信息为坐标四元组(top,left,heigh,width),top和left分别指节点显示区域矩形的左上角定点与页面下边沿的像素距离;heigh指矩形区域的高度,width指矩形区域的宽度。确定四元组可以确定visualblock的显示区域,提到的字体大小通过解析visualblock包含的dom树结点获得,对所有节点的字体大小进行统计。图片个数也是对包含的dom树节点解析,获取到<image>标签,统计个数并且保存链接。生成dom树,并利用cssbox的类库对视觉块进行提取。具体实施方式三:除具体实施方式二所述的视觉块划分算法,结合附图1-7的说明,该算法还可细化为视觉块划分过程:其中每个页面都可以用一个三元组表示:ω=(o,φ,σ),o是一个块的有限集,每个块都不重合o=(ω1,ω2,…,ωn)可以将每个块递归地视为与从整个页面结构产生的子结构相关联的子网页。φ是一个分隔符的有限集φ=(φ1,φ2,…,φn),包括水平和垂直两个分隔符,每个分隔符都有一个表示其可见性的权重,并且同一φ中的所有分隔符都具有相同的权重。每两个块之间可以被表示为δ=oⅹo—>φu{null}对于每个视觉块,例子:存在ω1,ω2,并且δ(ω1,ω2)≠null,说明ω1,ω2存在一个分隔符,或者可得知两个块是相邻关系;对于每个可视块,都定义了关联度(doc),以衡量其内容的关联性,doc具有以下属性:(1)doc值越大,块内的内容越一致。(2)在层次结构树中,子级的doc不小于其父级的doc。(3)在我们的算法中,doc值是1到10的整数,不过也可以使用不同的范围(例如,实数等)。具体实施方式四:基于视觉分块的网页logo提取方法,可以预先定义允许的关联度(pdoc)以实现不同应用程序的内容结构的不同粒度;pdoc越小,内容结构粒度越粗。视觉块划分流程如图1所示,包括块提取,分隔符检测和内容结构构建三个步骤,这三个步骤总体上视为一轮,算法是自上而下的;首先将网页分为几个大块,然后记录此级别的层次结构,对于每个大块,递归执行相同的过程,直到获得doc>pdoc的最小块,具体实施步骤如下:步骤一:块提取,web页面的主体内容都被标记在<body>和</body>之间,所以只需要提取主体部分的块区域,通常dom树中的每一个节点都可以代表一个视觉块,但有一些大的节点(<table><p>)用它来代表单个视觉块并不合适,所有这些节点需要被分割并且被他们的子节点代替。对于每个被提取出来的节点,其doc值根据其内部差异进行设置,重复此过程直到找到所有合适的节点代表当前子页面中的可视块为止,具体算法过程如下:(1)判断所有的dom节点是否满足可视这个条件;(2)如果满足可视这个条件,根据上面提到的规则对可视节点进行分割;(3)如果节点可以分割,则继续遍历其子节点,对子节点重复这个过程;(4)如果节点不可分割,将节点加入池中,进行保存。接下来考虑判断dom节点本身的属性以及dom节点孩子的属性,依靠wwwhtml规范4.01,将dom节点分为inlinenode和line-breaknode两类,依靠节点在浏览器中的表现和孩子节点的属性我们可以给出如下定义:(1)有效节点:该节点展示在浏览器上,说明该节点的宽度和高度都>0(2)文本节点:这个dom节点对一个文本,不存在html标签我们提出了一些启发式的规则判断节点是否可分,当该节点不可分割的时候为其设立doc值;规则如表1所示:表1块提取中适用的启发式规则表对于拥有不同html标签的dom节点,需要应用不同的规则,如表2所示:表2不同规则对应不同节点对照表r1r2r3r4r5r6r7r8r9r10r11r12inlinetextnode√√√√√√√√√<table>√√√√√√<tr>√√√√√√<td>√√√√√√√√<p>√√√√√√√√√othertags√√√√√√√√√根据以上两个表对domtree进行划分,如图2所示,展示对domtree划分出来的视觉块。步骤二:分隔符探测,一个分隔符由一个二元组代表,(ps,pe),ps代表着起始坐标,pe代表着结束坐标,分隔符宽度由这两个值计算,分隔符探测算法如下:首先初始化分隔符列表,列表最开始只包含一个以面板为界限的分隔符,对于在面板上的每个视觉块,每个视觉块之间的分隔符按如下规则别评估,如果分隔符中包含一个块,则分割这个分隔符;如果块穿过一个分隔符,则重新调整分隔符参数,如果一个分隔符被block覆盖,则移除这个分隔符,移除初始面板周围的4个分隔符,分隔符被用来辨别不同语义块,因此分隔符的权重可以根据相邻块的不同分配,接下来的规则被用来为每一个分隔符设置权重;分隔符宽度越宽则权值越大,如果分隔符与某些标签重叠则权值越高,如果分隔符分割开的两个视觉块背景颜色不同则权值提高,对于水平分隔符,如果分隔符两侧的字体属性(如字体大小和字体粗细)差异较大,则权值会增加。此外,如果分隔符上方的块的字体大小小于分隔符下方的块的字体大小,则权值会增加;对于水平分隔器,当分隔器两侧的块的结构非常相似(例如均为文本)时,分隔器的权值将减小;如图3所示在网页中添加的分隔符:步骤三:内容结构构建,构建过程从权值最小的的分隔符开始,然后将这些分隔符旁边视觉块合并以形成新的视觉块;合并过程将反复进行,直到满足最大权值的分隔符为止。根据块区域中分隔符的最大权重设置每个视觉块的doc。之后,检查每个叶子节点是否满足粒度要求。对于每个失败的节点,我们再次转到可视块提取步骤,以进一步在该节点内构造子内容结构。如果所有节点都满足要求,则停止迭代过程,并获得整个页面的基于视觉的内容结构。如果预先定义了pdoc,则doc的常见要求是doc>pdoc。具体实施方式五:结合附图1-7说明,除具体实施方式二所述的视觉块提取方法,该方法还可细化为网页视觉块提取和logo块提取两部分:(1)视觉块提取根据具体实施方式四中步骤二中的分隔符探测算法,网页进行了分割后,分割出来每个部分中包含的视觉块之间都有紧密的联系,每个视觉块之间的doc都高于pdoc。由多个视觉块聚合出来的结构为视觉结构(visualstructure),每个视觉结构的特征信息都是由内部所有视觉块的信息构成,其中视觉结构的特征信息具体为:位置信息:visualstructure的位置信息是一个四元组包括top、left、width和height四个视觉特征量,遍历visualstructure中所有的视觉块,找到最小的top,left和最大的top+height,left+weight,同时用以上这四个数据代表着visualstructure所包含的区域;图像信息:visualstructure的图像信息就是所包含的所有的视觉块图像信息的汇总,视觉块中存在两个字段,一个是记录包含图像个数,一个是图像的链接列表。将所有视觉快中这这两个字段进行加和就是visualstructure的图像信息。背景颜色:提取visualstructure中第一个视觉块的背景颜色当作visualstructure的背景颜色。文本内容:包含视觉块的所有文本内容字体大小:提取第一个视觉块的字体大小当作visualstrcture的字体大小。根据构建之后的visualstructure,从根节点依次前序遍历每个视觉块信息,提取每个视觉块的视觉特征。visualstructure中的id代表着该结构在树中的位置,根节点id=“1”,其子节点id=”1-1”,”1-2”以此类推。为每一个visualstructure根据其id名字建立一个文件夹用于存放该结构的一些具体文件。比如:如果结构中包含图片,根据<img,src=””>获取图片的url,获取到块中的图片存储到与之对应的id文件夹内。(2)logo块提取经过观察大量网页源码发现,网页中logo图片位置的属性字段大概率会包含logo或者logo字段,因为开发者为了定义该图片为网页中的logo,所以使用logo或者包含logo的字段设为该图片的类。本方法利用到该特性,自主提取到网页的logo图片。结合vips算法,提取出来logo图片具有最小的粒度,即提取出来的logo块仅包含logo图片不包含其他的干扰信息;之后将html解析成dom树,dom树中的节点包含标签,标签属性为<divclass=”logo”>或<divid=”logo”>,在提取过程中,如果视觉块中存在class属性包含“logo”关键字的时候,则将改视觉块设为logo块,其中islogo字段为true,并且该视觉块的所有子节点也为logo块;通过dom树构建视觉树的时候标注logo块,logo标注算法如下:解析dom树中的每个节点属性信息,判断该节点是否为logo块,查看节点属性class或id中是否包含logo关键字,如果包含则为logo块;如果该节点是logo块,则将该节点设为可视块,并将doc设为11,将该节点的所有子节点同时设为logo块;递归标注每一个子节点;根据logo块需满足块doc>pdoc,logo,块探测算法如下:递归遍历已经分割完成的所有视觉块,从视觉块根节点开始遍历;之后判断该视觉快是否满足粒度要求,如果满足的去查看该视觉块中包含的所有可视块中是否存在logo块即islogo字段为true的节点,如果存在则将该块即为logo;获取视觉块位置四元组,如果为logo块则根据坐标截取网页中图片,最后递归遍历该视觉块所有子节点。根据logo标注算法,logo探测算法,如果存在包含“logo”关键字的块,则将该视觉块视为logo块,块中可能存在logo图片,所以对视觉结构中包含的所以的视觉块进行遍历,去判断是否为logo块,如果是则在id后加上“logo”字样。以上实施例只是对本专利的示例性说明,并不限定它的保护范围,本领域技术人员还可以对其局部进行改变,只要没有超出本专利的精神实质,都在本专利的保护范围内。当前第1页12当前第1页12
当前第1页1 2 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1