一种基于深度学习的网页类型智能识别方法及系统
技术领域
本发明属于互联网信息采集的技术领域,尤其涉及一种基于深度学习的网页类型智能识别方法及系统。
背景技术
网页类型识别是数据采集系统的关键步骤。在网页数据采集的过程中,为了提高数据采集的效率,通过对网页的类型进行识别,比如在一个网页采集后解析内容之前,要先通过源码对其判断网页的类型,是属于栏目、翻页、专题还是文章,针对不同的类型,调用不同的内容抽取算法,从而提高内容抽取的准确度,如果没有有效办法去识别网页类型,对网页的更新频率计算、文章栏目标记、正文自动抽取都是极大的干扰。
目前,对网页类型的识别大多采取如下方法:传统的网页分类方法,利用人工设定识别规则如设置多种不同类型的网页模板、网页特征(如结构特征、语义特征)对网页进行分类识别或者基于其他非深度学习的机器学习方法对网页类型进行识别。传统的网页分类方法,需要人工找特征,非常麻烦,并且特征的确定具有明显人为的因素,分类精度也不高。传统机器学习复杂在于两点:1.冷启动:学习前没有特征参数,需要专家知识的梳理和注入,即特征的确定办法和计算办法。2.训练过程的参数降维,超参数的迭代。
如今,深度学习正好解决了传统机器学习的这两个问题,将学习过程简化了,并且深度学习已经用于图像的分类识别,并且取得了很好的分类识别效果。但是,图像属于感知层面的数据,其本身就是数字信号,可直接转换为数字序列供机器处理,而网页属于认知层面的数据,其本身的数据并不是数字序列。如何将网页数据转换为深度学习能够使用的数据,进而实现利用深度学习算法对网页进行类别识别,提高网页分类识别准确率所需解决的问题。
发明内容
为了提高网页类型识别的准确度,进而提高网页信息采集的效率,本发明提出了一种基于深度学习的网页类型智能识别方法,该方法包括以下步骤:
S1、输入待分类识别网页;
S2、深度学习分类模型对输入网页进行分类识别,得到所述待分类识别网页的类别信息。
其中,所述深度学习分类模型通过以下步骤得到:
S2.1、获取标记有类别的网页数据集;
S2.2、筛选训练网页集和测试网页集;
S2.3、对网页进行预处理操作;
S2.4、深度学习分类模型计算;
S.2.5、深度学习模型验证。
其中,所述对网页进行预处理操作,进一步包括:
S2.3.1、获取网页的HTML源代码;
S2.3.2、网页净化:把一个网页中对分类没有影响或者影响分类效果的部分内容去掉;
S2.3.3、文本序列化处理:将输入的网页文本的标签、短链接文字进行保留,将超过一定长度L的长链接文字使用字母进行标记,将长度超过M字的文本的每个字用特殊符号代替,将超过长度N的文本用N个特殊符号代替,得到处理后的文本序列;其中,对长链接文字进行标记的字母与特殊符号不同,L、M、N为整数,L<M<N;
S2.3.4、矩阵转换:将文本序列转变为一个二维矩阵。
其中,所述将文本序列转变为一个二维矩阵,具体可以使用word embeding或者Word2Vec模型。
其中,所述深度学习分类模型计算,进一步包括:
S2.4.1、深度学习算法选择;
S2.4.2、设置训练参数;
S2.4.3、得到深度学习分类模型。
其中,所述深度学习算法为CNN,所述训练参数包括每次迭代误差取1%,学习率取0.001。
其中,所述深度学习模型验证包括:将测试网页数据输入学习得到的深度学习分类模型,判断模型输出的结果是否与测试网页的类型一致;如果不一致,则验证不通过,则将测试集数据假如训练集继续训练,同时,选择新的测试集;如果一致则通过验证,得到最终的深度学习分类模型。
本发明还提供一种基于深度学习的网页类型智能识别系统,该系统包括以下模块:
输入模块:输入待分类识别网页;
类型识别模块:深度学习分类模型对输入网页进行分类识别,得到所述待分类识别网页的类别信息;
所述深度学习分类模型进一步由以下模块构成:
数据获取模块:获取标记有类别的网页数据集;
筛选模块:筛选训练网页集和测试网页集;
预处理模块:对网页进行预处理操作;
模型计算模块:深度学习分类模型计算;
模型验证模块:深度学习模型验证。
所述数据预处理模块还包括:
源码获取子模块:获取网页的HTML源代码;
网页净化子模块:把一个网页中对分类没有影响或者影响分类效果的部分内容去掉;
文本序列化子模块:将输入的网页文本的标签、短链接文字进行保留,将超过一定长度L的长链接文字使用字母进行标记,将长度超过M字的文本的每个字用特殊符号代替,将超过长度N的文本用N个特殊符号代替,得到处理后的文本序列;其中,对长链接文字进行标记的字母与特殊符号不同,L、M、N为整数,L<M<N;
矩阵转换子模块:将文本序列转变为一个二维矩阵。
所述模型计算模块,进一步包括:
算法选择子模块:深度学习算法选择;
参数设置子模块:设置训练参数;
模型输出子模块:得到深度学习分类模型。
所述算法选择子模块选择的深度学习算法为卷积神经网络算法CNN;所述参数设置子模块设定的训练参数包括每次迭代误差取1%,学习率取0.001。
所述模型验证模块进一步包括:将测试网页数据输入学习得到的深度学习分类模型,判断模型输出的结果是否与测试网页的类型一致;如果不一致,则验证不通过,则将测试集数据假如训练集继续训练,同时,选择新的测试集;如果一致则通过验证,得到最终的深度学习分类模型。
在利用深度学习算法对网页进行类别识别的时候,由于网页属于认知层面的数据,其本身的数据并不是数字序列,而图像、语音数据属于感知层面的数据,它们本身就是数字信号,可直接转换为数字序列供机器处理,为了解决这个问题,本发明通过将网页数据转换为一个二维矩阵,并利用深度学习CNN算法,提取出网页特征,并进一步进行网页类别识别,从而提高网页类别识别的准确率。
目前,采用传统机器学习方式分类识别网页的准确率为70-80%,而本发明基于CNN的网页类型识别方法可以提高分类识别网页的准确率到95%以上。
根据本发明的一种基于深度学习的网页类型智能识别方法和系统可以看出,本发明解决了网页分类缺陷率低的问题,提高网页类型识别准确性,通过采用该分类方法能够提高网页数据采集的效率。
附图说明
图1为本发明一种基于深度学习的网页类型智能识别方法的流程图。
图2为本发明进行CNN学习模型训练的示意图。
图3为本发明一种基于深度学习的网页类型智能识别系统的示意图。
具体实施方式
上述说明仅是本发明技术方案的概述,为了能够更清楚了解本发明的技术手段,而可以找说明书的内容予以实施,并且为了让本发明的上述和其他目的、特征和有点能够更明显易懂,以下为本发明的具体实施方式。
实施例一
图1为本发明的一种基于深度学习的网页类型智能识别方法,包括以下步骤:
S1、输入待分类识别网页;
S2、深度学习分类模型对输入网页进行分类识别,得到所述待分类识别网页的类别信息。
图2为所述深度学习分类模型的具体训练过程:
S2.1、获取标记有类别的网页数据集;
定向采集网页,并标记网页类别,通过爬虫定向采集网页,将省/市门户归为一类,部委网站归一类,垂直系统网站归一类,每一类各从首页、栏目、专题、文章取若干网页,共计10万网页作为训练网页,并对这些训练网页进行网页类型标记,标记网页所述的类型,如首页、栏目、专题、文章。
S2.2、筛选训练网页集和测试网页集;
在训练网页中按照已有的分类,从每个类别的网页中各选取1万网页做训练集和测试集。
S2.3、对网页数据进行预处理:
S2.3.1、获取网页的HTML源代码;
S2.3.2、网页净化:把一个网页中对分类没有影响或者影响分类效果的部分内容去掉;比如里的底部
去掉,减少感染;
S2.3.3、文本序列化处理:将输入的网页文本的标签、短链接文字进行保留;将超过一定长度(如8个字)的长链接文本标记为“T”,将长度超过30字的文本的每个字用特殊符号代替(30字以内的纯文本保留),比如都写为“字”,如果一段正文是300字,那么就是连续的300个“字”。如果网页文本长度很长,比如数万,此时如果标记为“字”的文本太长,会影响序列的平衡,因此,我们可以最长截取300个“字”来代替正文,从而完成对输入文本的序列化处理,将一个网页转换为一个长度有限、符号类型有限的文本序列;
S2.3.4、矩阵转换:将文本序列转变为一个二维矩阵。将得到文本序列转换为一个二维矩阵,具体可以使用word embeding或者Word2Vec模型。
在采用word embeding进行二维矩阵转换时:我们取了10万网页,将所有网页转为文本序列,所有文本序列中出现过的标记,组成我们的词表,假设有1000。那么每篇网页可以用一个[0,5,2,0,0,.....,1,0]这种矩阵来表示,其中的数字表示每个词(标记)出现的频率。
在实际计算中,我们计算每个词的词向量,词向量不是一维的,假设对<DIV>我们用5维矩阵[0,0.12,1.1,5.9,0.98]来表示,每个词(标记)都是这样的矩阵,我们称为词向量,一篇网页就转换为一个1000X5的矩阵。
S2.4、深度学习分类模型计算:
S2.4.1、深度学习算法选择:采用深度学习算法进行模型训练,可以采用卷积神经网络算法CNN去自动发现特征,通过反向传播算法来推导各隐藏层超参数;在利用CNN进行训练时,使用ReLU激活函数做收敛,ReLU能有效缓解了梯度消失的问题;另外,虽然卷积核越大计算越快,但是为了性能的综合考虑,采取5X5的卷积核;
S2.4.2、设置训练参数;例如每次迭代误差取1%,学习率取0.001。
S2.4.3、得到深度学习分类模型。
S.2.5、深度学习模型验证:将测试网页数据输入学习得到的深度学习分类模型,判断模型输出的结果是否与测试网页的类型一致。如果不一致,则验证不通过,则将测试集数据假如训练集继续训练,同时,选择新的测试集;如果一致则通过验证,得到最终的深度学习分类模型。
在进行深度学习分类模型训练的时候可以采用现有的深度学习平台,如百度、金山、腾讯等的深度学习平台。
对网页进行类型识别,同样需要对网页进行预处理操作得到一个二维矩阵;将得到的二维矩阵数据输入所述深度学习分类模型,得到该网页的网页类型。
实施例二
本发明的一种基于深度学习的网页类型智能识别系统,该系统包括以下模块:
一种基于深度学习的网页类型智能识别系统,该系统包括以下模块:
输入模块:输入待分类识别网页;
类型识别模块:深度学习分类模型对输入网页进行分类识别,得到所述待分类识别网页的类别信息;
所述深度学习分类模型进一步由以下模块构成:
数据获取模块:获取标记有类别的网页数据集;
筛选模块:筛选训练网页集和测试网页集;
预处理模块:对网页进行预处理操作;
模型计算模块:深度学习分类模型计算;
模型验证模块:深度学习模型验证。
所述数据预处理模块还包括:
源码获取子模块:获取网页的HTML源代码;
网页净化子模块:把一个网页中对分类没有影响或者影响分类效果的部分内容去掉;
文本序列化子模块:将输入的网页文本的标签、短链接文字进行保留,将超过一定长度L的长链接文字使用字母进行标记,将长度超过M字的文本的每个字用特殊符号代替,将超过长度N的文本用N个特殊符号代替,得到处理后的文本序列;其中,对长链接文字进行标记的字母与特殊符号不同,L、M、N为整数,L<M<N;
矩阵转换子模块:将文本序列转变为一个二维矩阵。
所述模型计算模块,进一步包括:
算法选择子模块:深度学习算法选择;
参数设置子模块:设置训练参数;
模型输出子模块:得到深度学习分类模型。
所述算法选择子模块选择的深度学习算法为卷积神经网络算法CNN;所述参数设置子模块设定的训练参数包括每次迭代误差取1%,学习率取0.001。
所述模型验证模块进一步包括:将测试网页数据输入学习得到的深度学习分类模型,判断模型输出的结果是否与测试网页的类型一致;如果不一致,则验证不通过,则将测试集数据假如训练集继续训练,同时,选择新的测试集;如果一致则通过验证,得到最终的深度学习分类模型。
以上所述,仅为本发明较佳的具体实施方式,但本发明的保护范围不局限于此,任何熟悉本技术领域的技术人员在本发明的技术范围内,可轻易想到的变化或替换,都应涵盖在本发明的保护范围之内。因此,本发明的保护范围应该以权利要求的保护范围为准。