论文部分内容阅读
随着互联网的快速发展和日渐流行,网页已经成为人们获取信息的重要来源。网页在给我们提供有用信息的同时,也充斥着各种商业广告,这些广告可能占用系统资源,影响网页内容展示,诱导用户访问有害网页,影响用户体验,进而降低用户粘滞性。现有的网页广告屏蔽方法是基于过滤规则进行匹配,其核心在于维护过滤规则列表。当前最流行的网页广告屏蔽工具Adblock Plus基于EasyList过滤规则列表来工作,通过网络控制和页面处理的方式来屏蔽广告。基于过滤规则列表广告屏蔽方法能部分缓解广告所带来的困扰,但是这种方法需要根据用户的反馈来持续维护列表,时间成本与人力成本比较高。此外,随着网页随机化技术的出现,基于过滤规则匹配的方法就会失效。另外,由于开发人员在定义元素id或class属性值时可能误使用过滤规则列表中的内容,导致此类方法错误屏蔽正常的网页内容。因此,为了避免维护过滤规则列表时间与人力成本的浪费,减少网页屏蔽工具的误报与漏报率。本文首先通过实证调研了4个类别的200个网页,发掘了真实网页广告区域在网页源代码中的结构,并总结了广告区域中广告标识节点存在的4种形式,然后结合代码分析与图像处理技术,提出了一种通过广告标识屏蔽网页广告的方法,并实现了屏蔽网页广告的工具AdClear。论文的主要工作包括:(1)通过递归处理根据网页HTML代码生成的DOM树方式完成对网页代码的分析。在遍历处理DOM树时,将根据节点类型的不同,分别进行不同的处理。特别地,对于包含图像节点将发送到服务端进行识别。为了减轻服务端的压力,进一步提出了相应的过滤规则,合理的选择节点发送到服务器进行判断。根据实际网页广告区域代码的结构,给出了通过广告标识识别最小广告区域的方法。(2)结合广告标识字符背景颜色变化平滑、字符与背景边界清晰的特点,使用信息熵、Canny算子边缘检测技术对图像进行二值化处理,并使用HOG特征、CNN的方式对二值化图像提取特征。使用SVM和MLP分类模型实现图像文本分类,完成图像广告标识识别。最终,组合使用不同的二值化,提取特征及分类模型技术来完成对图像中的广告标识识别。组合成的三种方法分别为信息熵+HOG+SVM、Canny算子+HOG+SVM 及Canny 算子+CNN。(3)实现了网页广告屏蔽工具AdClear,并通过与Adblock Plus的对比,说明了 AdClear的有效性。在实验部分,通过比较本文提出的三种图像广告标识识别方法的效果,选择了基于Canny算子+HOG+SVM的方法作为图像识别模块的方法。在对网页广告的实际检测中,AdClear相比于Adblock Plus拥有更好的效果,具有99.55%的准确率与96.52%的召回率,显著优于Adblock Plus 62%的准确率和92.34%的召回率。