一种基于SVM及文本密度特征的网页信息提取方法

2019-10-21 01:09周艳平李金鹏宋群豹
计算机应用与软件 2019年10期
关键词:正文噪音段落

周艳平 李金鹏 宋群豹

(青岛科技大学信息科学技术学院 山东 青岛 266061)

0 引 言

如今,在网络信息飞速增长的时代,网络信息变得越来越重要,它影响着人类学习、工作、生活等各个方面。然而,网页通常包含非主题信息,如导航、广告链接、版权信息等, 我们称之为噪音信息。 在网页上的正文信息通常与不相关的内容混杂在一起,这导致网页信息的可利用性大大降低[1]。当对Web页面信息再次分析或开发利用时,往往会有页面上的噪音信息。如何准确有效地提取文本信息已成为当前研究领域的一个重要课题。

现有的网页正文抽取的方法可以分为四类:基于包装器和启发式规则的信息提取方法,基于文本特征的信息提取方法,基于视觉分块的信息提取方法,基于统计和机器学习的信息提取方法。

(1) 基于包装器和启发式规则的信息提取方法。该方法是一种早期且流行的方法,后续的Web模板提取技术也属于这一类。 其原则是通过构造包装器或Web模板规则从Web信息源中提取符合规则的信息[2-3]。该方法在特定格式信息源中的提取有很好的准确率,但在当前互联网页面越来越多样化、越来越复杂的趋势下,该方法并不是通用的。

(2) 基于文本特征的信息提取方法。 该方法通过网页结构和文本特征将网页划分为文本块和链接块。通过使用连续出现的噪声块的结果来完成文本部分的位置,得到网页正文信息[4-5]。该方法比传统的基于包装的提取方法更简单实用。但对于某些多主题网页的抽取,该方法无法正确地对正文进行定位,从而影响了准确率。

(3) 基于视觉分块的信息提取方法。该算法受人眼视觉启发,对人视觉处理信息进行模拟,并结合DOM树对网页进行文本分块,最后从文本块中定位到正文块,达到提取正文的目的。该方法考虑了包含文本的DOM节点的结构。与传统算法相比,该算法的精度有了一定的提高,但计算量大,实现难度较大。

(4) 基于统计和机器学习的信息提取方法。该算法通过对样本网页的文本分布和节点特征进行统计分析,建立模型规则,并通过不断学习对模型参数进行改进,从而在一定程度上实现自适应。文献[7]根据网页的显示属性对网页文本进行分组,根据显示属性值对网页文本进行分类,获取相关文本,从而完成网页的信息提取。目前,网页的复杂性和非标准化程度越来越高。仅将属性值作为训练特征使用会导致某些网页无法正确识别或特征遗漏。

本文提出了一种基于SVM和文本密度的网页信息提取方法。 根据网页的特点和文本信息块周围标签的特点,提出了五种密度特征。使用分类效果比较高的监督学习分类器SVM进行正文信息块筛选处理。实验证明,该方法不仅有较高的精度,而且通用性好。

1 文本块处理

网页按内容可分为三类:主题型网页,Hub网页和多媒体网页[11]。下面分别给出定义:

(1) 主题型网页:以段落形式描述一个或多个主题的网页,很少或甚至没有图片、视频和链接。凤凰新闻网是一个典型的主题网页。

(2) Hub网页:通常它不描述事物,但提供相关页面的超链接,例如hao123的主页。

(3) 多媒体网页:这种网页的内容通过图片,视频等体现,而文本只是对它们的描述,如电影天堂。

本文是以主题网页为主开展研究工作。

1.1 网页预处理

为了提高处理效率,在构建DOM树之前,应先删除网页中如 HTML注释及脚本等噪音信息。本文采用正则表达式来过滤噪音信息,噪音信息如表1所示。

表1 噪音信息

1.2 文本块抽取

在网页的DOM树中,容器标签如

    1. 等之间的文本内容(不包括标签本身)称为“文本块”,它可以嵌套在其他文本块中,也就是说,文本块可以包含多个子文本块。 包含正文内容的文本块称为正文块,没有正文内容的文本块称为噪声块[12]。

      大量研究发现正文节点一般分布在DOM树的叶节点中。 因此,采用DOM树的深度优先遍历来分析叶子节点中的信息。步骤如下:

      (1) 深度优先遍历DOM树,从叶子节点开始,找到最底层的第一个容器标签,读取该节点信息加入文本块队列,并标记已访问。

      (2) 判断叶子节点有未被访问的兄弟节点,若有则读取节点信息加入文本块队列,并标记已访问。若无则读取父节点信息,若父节点未被访问,并且不是body节点,则重复(1)过程。直到将所有的节点都访问,输出文本块队列。

      2 SVM文本块分类

      在本文中,去噪被认为是二元分类问题,即正文块和噪音块。在实验中,SVM用于解决二元分类问题。 假设在n维空间中定义了训练集,正类表示正文块,负类表示噪声块。选择了可以区分正文块和噪音块的五个重要特征属性,即可以训练出五维的特征属性矩阵。

      2.1 文本特征标注

      文本块特征会直接影响SVM的分类效果,通过分析网页结构发现,虽然各个网站的风格有差异,但主题网站的结构是很相似的。通过使用数学模型分析其组成并计算其比例,形成具有不同含义的特征文本的密度值。本文使用五种密度值进行特征标注,分别如下:

      (1) 超链接密度:“超链接”形式的文本长度与文本块总长度的比例称为文本块的超链接密度,其公式为:

      (1)

      式中:HLL为超链接文字长度,AL为文本块包含的文字总长度。诸如广告、友情链接、目录和导航之类的大量“网络噪声”通常以“超链接”的形式存在,并且与正文内容在不同文本块中。 也就是说,文本块中超链接的密度越高,该文本块属于噪音块的概率就越大。

      (2) 噪音词密度:通常用于标识网站自身的功能,与页面正文内容无关的词语数量,(如“首页”、“搜索”、“声明”、“版权”、“帮助”等)与整个文本块词语数量之比,称为该文本块的噪音词密度,其公式为:

      (2)

      式中:NWC是文本块中有噪音的词语的数量,AWC是文本块中的词语总数。 噪音词的出现并非偶然。 通过对大量网页的研究,发现文本块中的噪音词的比例越高,该文本块是噪音块的概率越大。本文通过哈尔滨工业大学信息检索研究中心开发分词工具来对文本块内容进行分词处理,并提取出词语信息来进行计算。

      (3) 中文标点密度:在某一文本块中,中文标点与文本块内字符总长度之比,称为该文本块的中文标点密度,其公式为:

      (3)

      式中:SCL是文本块中中文标点的数量,ACL是文本块中字符的总数量。通过对网页的研究和分析,发现网页文本通常分段显示。 段落通常包含标准标点符号,而网页中的噪音信息通常不包含或仅包含一个标点符号。

      (4) 文本修饰标签密度:“strong”、“b”、“I”、“h1”、“h2”、“u”等修饰文字的标签称为文本修饰标签。某一文本块中,文本修饰标签数量与文本块中所有标签数量之比,称为该文本块的文本修饰标签密度,其公式为:

      (4)

      式中:LC为文本块包含的文本修饰标签的数量,ALC为文本块中所有标签的数量。文本修饰标签对文本的内容进行装饰,增加文本的可读性,通常修饰标签会在正文中体现。

      (5) 网页区域密度:在整个HTML中,正文文本块通常集中在网页的某个区域位置,称为该正文文本块的网页区域密度,其公式为:

      (5)

      式中:NS为该文本块容器标签所在的节点序数,ANS为整个DOM树的节点总数。经过大量的研究发现,正文容器标签的区域密度通常在18%~55%范围内,这对我们进一步判断正文文本块有很大的参考价值。

      2.2 数据模型训练

      本文从网易、新浪、人民网等主题网站随机提取10个页面作为训练网页,通过特征提取器针对2.1节提出的五种密度特征来提取,并且人工标注文本块的类别(-1:噪音块、1:正文块)。针对训练期间所出现的问题,文本通过以下方法解决:

      (1) 数值归一化处理。为了让结果更加准确,在处理不同取值范围的特征值时,通常采用数值归一化方法,本文将任意取值范围的特征值转化为(0,1)区间内的值,公式如下:

      (6)

      式中:newValue为特征值数值归一化后新的值,oldValue为原始特征值,max和min分别是数据集中的最小特征值和最大特征值。

      (2) 确定训练矩阵。将上述五个特征属性用作输入参数,得到训练矩阵。

      (3) 选择核函数。核函数的作用就是隐含着一个从低维空间到高维空间的映射,而这个映射可以把低维空间中线性不可分的两类点变成线性可分的。SVM中常用的内核函数有四种:线性核函数,高斯核函数,多项式核函数,感知核函数[13]。多实证应用表明高斯核函数(RBF)SVM具有良好的学习能力,其公式如下:

      (7)

      式中:σ为核函数的参数,需要人工根据经验调整。

      (4) 调参方法。在模型中,有两个超参数分别是惩罚系数C和RBF核函数的系数σ是需要人工调整的。当C越大,σ越小,核函数对x的衰减越快,这就放大了数据之间的差别,致使该模型只适用于支持向量附近,未知样本分类效果差,训练精度高,而测试精度不高的可能;如果C值越小,σ值越大,平滑效果越大,训练精度不高,从而也会影响测试精度。本文使用交叉检验法来确定此数据模型的参数σ1、C1。

      (5) 交叉检验法。首先把数据集分为两部分:训练数据集和验证数据集;为了判断一个模型的优秀程度,我们将模型的训练数据集替换成验证集进行检验,从而获得验证结果。但我们不能只对数据集进行一次分割,而是必须将其随机分割几次,从而每次都得到一个结果。再求所有结果的均值,就可以对训练模型进行评估了。我们可以在其间不断地调整模型参数,通过比较结果可以得出这个模型的最佳参数。

      2.3 文本块分类

      通过SVM数据模型对文本块进行分类,需要注意的是,这时已经完成了文本块处理相关的工作,具体步骤如下:

      (1) 先对网页进行预处理并生成DOM树。

      (2) 遍历DOM树获得文本块并加入到队列中。

      (3) 利用特征提取器对每个文本块进行密度特征提取。

      (4) 将文本块密度特征输入到SVM数据模型中,返回相应结果R。

      (5) 保存R>0的文本块(R为结果值,R<0:噪音块,R>0:正文块)。

      根据上述方法,得到正文块的具体步骤如图1所示。

      图1 正文块获取步骤

      3 SVM正文块内降噪

      经过上述步骤处理之后,就可以获得正文块。文本块中仍有一些需要去除的噪声信息。研究分析发现块内噪音一般存在以下特点[12]:

      (1) 噪音信息不会太长,通常只有几个词,而且不包含标点符号信息。

      (2) 块内噪音通常存在于正文块的头部或尾部,并且不会出现在混淆文本内容的段落。

      根据上述特点,本文以段落为基本单位分析正文文本块,提出“段落文字密度”,“段落标点密度”和“段落区域密度”的概念,以评估某个段落是否为块内噪音段落。

      常用的HTML分段指示标记有:


      、、、
      ,源HTML脚本中的回车符可以忽略不计[14],这些标记对之间的文本(不再被其他标记分隔)称为段落。

      定义1(段落文字密度) 划分某正文文本块为若干段落,每个段落中的文字数量与整个文本块文字数量之比,称为该段落的段落文字密度。

      定义2(段落标点密度) 划分某正文文本块为若干段落,每个段落中的中文标点数量与该段落的内容字符数之比,称为该段落的段落标点密度。

      定义3(段落区域密度) 划分某正文文本块为若干段落,每一段落所占文本块的起始位置到终止位置的行数,称为该段落的区域。整个区域相对于段落的位置,称为段落区域密度。

      段落区域是一个范围值,因此我们使用均值法得到一个中间密度值作为该段落区域密度,其公式为:

      (8)

      式中:MIN(PC)为段落区域中最小行对应的正文块中段落序数,APC为正文块中段落总数,MAX(PC)为段落区域中最大行对应的正文块中段落序数。

      针对这2个特征建立SVM数据模型,参数σ2、C2是由交叉检验法得出,分类步骤如下:

      (1) 循环遍历图1已经得到的正文块队列。

      (2) 随机选取100个段落进行特征提取,建立数据模型,将特征输入到数据模型中训练。

      (3) 利用训练好的数据模型来对文本块的段落进行分类。

      (4) 保存R>0的段落(R为结果值,R<0:噪音段落,R>0:正文段落)。

      根据上述方法,得到正文段落的具体步骤如图2所示。

      图2 正文段落获取步骤

      4 实验及结果分析

      实验选取互联网中3个的主题网站:网易、新浪、人民网,和2个多主题网站:新浪博客、博客网。每个网站随机爬取110个网页,其中100个作为测试集,10个作为训练集。训练集需要进行人工标注和整理,并将每个网站的训练集随机分成2个验证数据集和8个训练数据集。

      实验环境是Windows7 X64,开发工具为PyCharm4.5.4,anaconda4.4.0,选用机器学习开发包sklearn进行开发。本文使用sklearn中的网格搜索,即GridSearchCV类实现调参工作。实验证明,将SVM文本块分类和SVM文本块内降噪的高斯核函数参数σ1、σ2分别设定为1.6、1.2。惩罚参数C1、C2分别设定为3.0、2.0。这种情况下,分类验证结果是最好的。

      采用信息检索技术中的准确率(P)、召回率(R)和F值(F)三个指标来衡量该方法返回结果的实际效果。定义网页中有效正文内容总行数WebValidRow,返回结果的总行数为ResultAllRow,返回结果中属于有效正文内容的行数为ResultValidRow,则:

      (9)

      (10)

      (11)

      实验对比了三种文本提取方法的准确率、召回率和F值,结果如表2-表4所示。

      表2 正文文本提取准确率P对比 %

      表3 正文文本提取召回率R对比 %

      表4 正文文本提取综合对比 %

      由上述测试结果可见,对于单主题的网页,这三种均拥有较高的召回率和不错的准确率,且本文方法的准确率要略优于文献[10]方法;而对于多主题网页,本文方法在准确率和召回率方面要明显优于其他两种方法。可见,本文方法总体表现上要优于文献[10]方法,特别在多主题网页的处理方面,优势较为明显。

      5 结 语

      与传统的文本提取方法相比,本文方法在准确率、召回率上都有所提高。 从实验结果来看,本文中使用的方法可以应用于大多数网站,但在个别网页中也存在一些不准确的文本块提取。特别是一些比较简短的正文文本,该类信息密度特征提取不准确,致使分类时将其作为噪音信息滤掉。这将是今后算法改进的方向。

      猜你喜欢
      正文噪音段落
      趣味•读写练 答案
      更正启事
      《现代畜牧兽皮》正文书写规范
      【短文篇】
      心理小测试
      无法逃避的噪音
      噪音银行
      夏天,爱情的第四段落
      噪音的小把戏
      白噪音的三种用法