HTML资讯页识别算法

简介: 目前爬虫会爬取很多国际站点的HTML页面,包含各种不同类型的站点,如站点首页、论坛页、资讯页、列表页、视频页、下载页、图集页等等。

作者:UC 国际研发 儒愚

image.png

背景

目前爬虫会爬取很多国际站点的HTML页面,包含各种不同类型的站点,如站点首页、论坛页、资讯页、列表页、视频页、下载页、图集页等等。若想从这些爬取数据中提取有效资讯内容,第一步就需要先识别页面是否为资讯页。当前判断资讯页的方法较简单粗暴,主要是依赖正文单词数以及正文图片像素作为判断依据。这种方法实现简单,但容易出现较大程度的误判现象,小说、图集页面和视频页面容易被误判为资讯页。

目标

识别是否为资讯页可归类为一个分类问题。故尝试使用机器学习算法进行特征训练,并以此获取到二分类模型,最终分类标签可划分为资讯页(正样本1)、非资讯页(负样本0),用以表示资讯页面的识别。

量化指标:F1-score达到90%以上。

指标解释

准确率:实际是正类(资讯页)并且被预测为正类(资讯页)的样本占所有预测为正类(资讯页)的比例。(注:准确率更为关注将负类(非资讯页)样本错分为正类(资讯页)样本的情况)

召回率:实际是正类(资讯页)并且被预测为正类(资讯页)的样本占所有实际为正类(资讯页)样本的比例。(注:召回率更为关注将正类(资讯页)样本分类为负类(非资讯页)样本的情况)

F1-score:准确率和召回率的调和均值,即F1=((1+12)PR)/((12*P)+R) (P代表准确率,R代表召回率),相当于准确率和召回率的综合评价指标。单一指标可以更好量化分类模型的优异程度,如果更看重准确率可以使用F0.5,更看重召回率可以使用F2等。

识别算法流程

image.png

步骤详解

5.1 数据选取

随机从爬取数据中抽取不同的HTML内容。为了覆盖多种类型数据,每条数据的域名(包括二级)均不相同。最后数据集总数在1k条。对该数据抽取结果进行覆盖验证,其中已基本包含大部分类型的站点,比如主页、论坛页、下载页、图集页、图文资讯页、列表页、视频页等类型,确保了数据有足够的覆盖面,至此数据选取结束。

5.2 数据过滤/清洗

针对第一步抽取回来的数据进行过滤/清洗。首先对HTML页面结构进行检查,过滤掉不符合html标签规则且无法修复的页面数据。接着,对HTML页面进行修剪,剔除掉无用的标签内容,如script标签、注释、style标签等等。

5.3 数据标签

第三步就是对数据打标签了。众所周知,这一步的工作量是最大的,需要人工对数据集进行打标,工作量需占6-7成。另外,考虑到数据的类型覆盖问题,图文资讯页的占比大概在4成左右,所以真实的数据集分布会满足该趋势,最终选定正负样本的占比在4:6左右,即正样本(资讯页)占比40%。

5.4 特征选取

特征选取是一个不断迭代优化的过程。前期是先依靠经验,选择尽可能多的特征,然后再使用相关性分析进行特征分析。后期再根据业务特点(站点特性)以及其他维度信息进行筛选和调整,选取过程不做详细讨论,最终确定19个最有效特征,具体如下表:
image.png

image.png

image.png

5.5 模型选择

资讯页识别本质上是一个分类算法,属于二分类问题。常见的二分类算法有SVM、LR(逻辑回归)、决策树(单一决策树、随机森林、GBDT)、贝叶斯、NN等等。由于决策树和贝叶斯不支持连续型特征,需对该类特征进行分段,需人工设置分段函数,在目前所选的18-19特征中不易分段,所以最终选择的验证分类算法是SVM和LR。

5.5.1 LR

LR算法就是大名鼎鼎的逻辑回归算法,不了解的可先自行google ,此处不再多做介绍。LR逻辑回归有多种收敛法选择:坐标法下降、牛顿法、随机梯度下降等,这三种比较出名,LR的应用场景大部分都会从中选择。由于随机梯度下降法应用场景一般是大样本量的训练模型,其主要优势是支持局部更新,目前样本量不大,所以选择另外两种收敛法进行效果验证。

5.5.2 SVM

SVM中文名称是支持向量机,有严格的数学说明,不了解的可先自行google。在SVM算法中最复杂的是核函数的选择(业界有人说发现一个新的核函数就能够出产一篇顶级paper)。不采用核函数的SVM本质上和LR都属于一种线性分类器,不做分析。另外,SVM较有名的核函数是RBF径向基,其具有较好的适应性,本实验采取RBF核函数的SVM作为效果验证。

5.6 交叉验证

交叉验证指的是将数据集分为N等份,使用其中N-1份作为训练得到数据模型,然后再使用剩余1份作为验证数据集,以此验证数据模型的效果。总共需测试N次,最终求指标均值,可确保算法的泛化性,防止过拟合。测试结果如下:

LR:牛顿法-L2正则化

image.png

LR:坐标法下降-L1正则化

image.png

SVM:RBF径向基核函数-自带L2正则化
image.png

结论

从实验结果来看,从HTML页面中提取出19个有效特征项,并应用LR(牛顿法)算法识别资讯页明显优于实验中的其他两种,准确率、召回率和F1-score均达到90%以上,达到预期使用目标。

目录
相关文章
|
1月前
|
算法
【MATLAB】语音信号识别与处理:滑动平均滤波算法去噪及谱相减算法呈现频谱
【MATLAB】语音信号识别与处理:滑动平均滤波算法去噪及谱相减算法呈现频谱
39 0
|
1月前
|
算法
【MATLAB】语音信号识别与处理:T1小波滤波算法去噪及谱相减算法呈现频谱
【MATLAB】语音信号识别与处理:T1小波滤波算法去噪及谱相减算法呈现频谱
29 0
|
1月前
|
算法
【MATLAB】语音信号识别与处理:SG滤波算法去噪及谱相减算法呈现频谱
【MATLAB】语音信号识别与处理:SG滤波算法去噪及谱相减算法呈现频谱
39 1
|
3月前
|
机器学习/深度学习 算法 TensorFlow
文本分类识别Python+卷积神经网络算法+TensorFlow模型训练+Django可视化界面
文本分类识别Python+卷积神经网络算法+TensorFlow模型训练+Django可视化界面
56 0
文本分类识别Python+卷积神经网络算法+TensorFlow模型训练+Django可视化界面
|
1月前
|
算法
【MATLAB】语音信号识别与处理:移动中位数滤波算法去噪及谱相减算法呈现频谱
【MATLAB】语音信号识别与处理:移动中位数滤波算法去噪及谱相减算法呈现频谱
20 2
|
1月前
|
算法
【MATLAB】语音信号识别与处理:卷积滑动平均滤波算法去噪及谱相减算法呈现频谱
【MATLAB】语音信号识别与处理:卷积滑动平均滤波算法去噪及谱相减算法呈现频谱
27 0
|
1月前
|
算法
【MATLAB】语音信号识别与处理:一维信号NLM非局部均值滤波算法去噪及谱相减算法呈现频谱
【MATLAB】语音信号识别与处理:一维信号NLM非局部均值滤波算法去噪及谱相减算法呈现频谱
38 1
|
1月前
|
算法
【MATLAB】语音信号识别与处理:高斯加权移动平均滤波算法去噪及谱相减算法呈现频谱
【MATLAB】语音信号识别与处理:高斯加权移动平均滤波算法去噪及谱相减算法呈现频谱
92 0
|
2月前
|
小程序
微信小程序中识别HTML标签的方法
微信小程序中识别HTML标签的方法
|
27天前
|
机器学习/深度学习 算法 生物认证
基于深度学习的人员指纹身份识别算法matlab仿真
这是一个关于使用深度学习进行指纹识别的算法概述。在matlab2022a环境下,通过预处理指纹图像(灰度化、二值化等)并利用卷积神经网络(CNN)提取特征。CNN架构包含卷积、池化、归一化和全连接层。特征向量通过余弦相似度计算匹配,训练时采用triplet loss优化。部分核心代码展示了加载预训练模型进行测试集分类预测并计算准确率的过程。