首页> 中国专利> 基于聚集文本密度的网页正文提取方法及装置

基于聚集文本密度的网页正文提取方法及装置

摘要

本发明提供一种基于聚集文本密度的网页正文提取方法及装置,该方法根据标签分隔网页HTML的方法,对网页文本内容进行分割,从而有效将其中的各类文本分开。无需定制特殊的网站提取规则,通用性强;无需使用复杂的文本挖掘手段,该方法简单高效,对各类网页正文提取准确高效。

著录项

法律信息

  • 法律状态公告日

    法律状态信息

    法律状态

  • 2019-03-26

    授权

    授权

  • 2016-08-03

    实质审查的生效 IPC(主分类):G06F17/30 申请日:20160126

    实质审查的生效

  • 2016-07-06

    公开

    公开

说明书

技术领域

本发明涉及网页爬虫技术领域,具体的涉及一种基于聚集文本密度的网页正文提取方法 及装置。

背景技术

随着社会信息化的飞速发展,互联网已经成为人们获取信息的一个重要来源。网民通常 使用浏览器直接查看网页内容,此外,还有许多基于互联网的信息处理工作(如信息检索、 数据挖掘、机器翻译等)也是以网页的信息内容为基础数据来进行的,最主要是基于网页的 正文来处理。但是大多数网页中除了包含有用的信息(例如正文内容)外还包含许多噪声信 息,例如网站的导航信息、相关链接和广告、版权信息以及一些脚本语言等。如何准确、高 效地提取网页的正文信息,做到既不遗漏正文也不混入噪音,已经成为当前网络信息抽取及 应用的一个重要课题,具有很高的应用价值和实践意义。

针对该问题现有技术中存在多种提取方法:

1)基于DOM树结构的正文提取方法

首先修复网页的HTML文件中的不规范结构或信息(如:开始标签<h1>没有结束标签</a> 等),使之成为标准的HTML文件。然后将HTML文件解析为DOM(DocumentObjectModel, 文件对象模型)树。最后遍历DOM树识别并剔除非正文信息,并依据页面布局、文本密度等 规则提取正文文本。目前很多网站的页面结构越来越复杂、也越来越不规范,会导致无法构 建出DOM数从而提取正文提取模板构建失败。之后的构建和遍历DOM树过程,时空复杂度 高、效率低、速度慢。噪音识别中需要人工维护更新信息(如广告服务器列表等),不能做到 自动化。

2)基于规则提取正文

通过人工手段为特定的网站指定提取规则,例如正则表达式或XPath等。优点是准确程 度高,但缺点是不具备通用性、无法扩展,只能解析固定网站或固定格式的网页,并且规则 的制定过程费时费力,一旦网页布局发生变化,难以及时发现进行更新维护。3)基于网页分 割提取正文块

利用HTML标签中的分隔线以及一些视觉信息(如文字颜色、字体大小、文字信息等) 分隔出网页中的正文块。由于不同网站的HTML风格迥异,分割没有统一方法,通用性难以 保证;需要增加很多辅助的人工规则。4)基于数据挖掘和机器学习方法提取正文

该方法包括以下步骤:线性化重构网页代码使正文段落的逻辑顺序不因标签的嵌套规则 破坏;过滤HTML噪声标签;将文本段落以<table>标签为单位解析并存储;使用文本聚类算 法对段落聚类并最终生成正文。存在问题:简单问题复杂化,使得提取正文变得繁琐复杂, 不利于广泛运用。

发明内容

本发明的目的在于针对上述背景技术中提到的现有技术存在的技术问题,提供一种基于 聚集文本密度的网页正文提取方法及装置。

本发明提供一种基于聚集文本密度的网页正文提取方法,包括以下步骤:步骤S100:获 取网页的HTML源文件文本,删除无价值的第一标签并剔除文本中的特殊字符,得到样本文 本;步骤S200:将样本文本中所有第二标签替换为空行,生成多个空行文本,将空行文本转 换为队列T,两两相邻的空行本文由空行符分隔;步骤S300:将队列T分隔成多个子队列, 将每个子队列中的所有文本合并为一个文本块,将多个文本块组成队列B,根据文本阈值和索 引阈值对队列T进行分割;步骤S400:从队列B中选取文本长度最大的文本作为网页正文; 索引阈值为预设的任意两子队列间的空行数,文本阈值为预设的子队列中所含文本字符数。

进一步地,步骤S200中第二标签使用正则表达式进行替换,替换规则为:R[("i",n)], 其中"i"为第二标签,n为该标签替换为空行的数量。

进一步地,步骤S300中包括以下步骤:

步骤S310:循环遍历队列T,记当前元素为Tc,若当前元素Tc的有效中文字符数小于文 本长度阈值,则将当前元素Tc文本加入队列B中并继续遍历队列T,若当前元素Tc的有效 中文字符数大于文本阈值则记当前元素Tc为当前有效文本Tcv,创建临时文本块Temp为当 前有效文本Tcv的文本值;

步骤S320:从当前有效文Tcv之后的下一个元素开始遍历队列T,忽略空格或空行元素 直到找到下一有效文本Ncv,如果下一有效文本Ncv与有效文本Tcv在队列T中的位置索引 差值小于索引阈值,则将下一有效文本Ncv的文本追加到临时文本块Temp中,并将下一有效 文本Ncv赋值给有效文本Tcv;

步骤S330:继续对下一有效文本Ncv之后的下一个有效元素Ncvi+2遍历队列T,如果Ncvi+2与当前有效文本Tcv在队列T中的位置索引差值大于索引阈值,则将临时文本块Temp复制一 份放入队列B中,将Ncvi+2赋值给当前元素Tc继续循环遍历队列T。

进一步地,第一标签为无价值的Html标签。

本发明另一方面还提供了一种如上述的方法用基于聚集文本密度的网页正文提取装置, 包括:网页HTML文件获取模块,用于获取网页的HTML源文件文本,删除无价值的第一标 签并剔除文本中的特殊字符,得到样本文本;空行分割模块,用于将样本文本中所有第二标 签替换为空行,生成多个空行文本,将空行文本转换为队列T,两两相邻的空行本文由空行符 分隔;队列转化模块,用于队列T分隔成多个子队列,将每个子队列中的所有文本合并为一 个文本块,将多个文本块组成队列B,根据文本阈值和索引阈值对队列T进行分割;文本选 取模块,用于从队列B中选取文本长度最大的文本作为网页正文。

进一步地,第二标签使用正则表达式进行替换,替换规则为:R[("i",n)],其中"i"为第二 标签,n为该标签替换为空行的数量。

进一步地,队列转化模块包括:第一循环模块:用于循环遍历队列T,记当前元素为Tc, 若当前元素Tc的有效中文字符数小于文本长度阈值,则将当前元素Tc文本加入队列B中并 继续遍历队列T,若当前元素Tc的有效中文字符数大于文本阈值则记当前元素Tc为当前有效 文本Tcv,创建临时文本块Temp为当前有效文本Tcv的文本值;第二循环模块,用于从当前 有效文Tcv之后的下一个元素开始遍历队列T,忽略空格或空行元素直到找到下一有效文本 Ncv,如果下一有效文本Ncv与有效文本Tcv在队列T中的位置索引差值小于索引阈值,则将 下一有效文本Ncv的文本追加到临时文本块Temp中,并将下一有效文本Ncv赋值给有效文 本Tcv;队列B形成模块,用于继续对下一有效文本Ncv之后的下一个有效元素Ncvi+2遍历 队列T,如果Ncvi+2与当前有效文本Tcv在队列T中的位置索引差值大于索引阈值,则将临时 文本块Temp复制一份放入队列B中,将Ncvi+2赋值给当前元素Tc继续循环遍历队列T。

本发明的技术效果:

本发明提供的基于聚集文本密度的网页正文提取方法网页正文方法,无需定制特殊的网 站提取规则,通用性强;无需使用复杂的文本挖掘手段,该方法简单高效,对各类网页正文 提取准确高效。本发明提供的网页正文提取方法通过对获取的网页HTML按照标签清理、转 换处理后通过聚集的方法获取网页正文,既没有定制特殊的网站规则,避免设置通用性较差 的网站规则;也有没有生成和遍历DOM树,避免了效率地下的情况;经过实践地测试此方法 准确高效的提取网页正文,同时也适用于各类网站。

本发明提供的基于聚集文本密度的网页正文提取装置无需使用复杂的文本挖掘手段,该 方法简单高效,对各类网页正文提取准确高效。

具体请参考根据本发明的基于聚集文本密度的网页正文提取方法及装置提出的各种实施 例的如下描述,将使得本发明的上述和其他方面显而易见。

附图说明

图1是本发明提供的基于聚集文本密度的网页正文提取方法流程示意图;

图2是本发明提供的基于聚集文本密度的网页正文提取装置的结构示意图。

具体实施方式

构成本申请的一部分的附图用来提供对本发明的进一步理解,本发明的示意性实施例及 其说明用于解释本发明,并不构成对本发明的不当限定。

参见图1,本发明提供的基于聚集文本密度的网页正文提取方法,包括以下步骤:

步骤S100:获取网页的HTML源文件文本,删除无价值的第一标签并剔除文本中的特殊 字符,得到样本文本;

步骤S200:将样本文本中所有第二标签替换为空行,生成多个空行文本,将空行文本转 换为队列T,两两相邻的空行本文由空行符分隔;

步骤S300:将队列T分隔成多个子队列,将每个子队列中的所有文本合并为一个文本块, 形成由多个文本块组成的队列B,根据文本阈值和索引阈值对队列T进行分割,索引阈值为 预设的任意两子队列间的空行数,文本阈值为预设的子队列中所含文本字符数;

步骤S400:从队列B中选取文本长度最大的文本作为网页正文。

本发明以标签的替换和删除作为起始,并依据文本字符数和空行数,将源文件文本中的 文本子队列分割为不同子队列,从而将正文文本与其他作用的文本分开,该方法无需根据具 体网页人工设置具体提取原则,仅需根据标签情况进行替换,即可实现对文本正文的提取。 效率得到提高。

无价值的第一标签可以为各类常用的无价值的Html标签。本文中所指无价值的Html标 签包括但不限于注解(<!--...-->、<!...>)、脚本(<script...>...</script>)、头(<head..>...</head>)、 样式(<link.../>)、编辑类(<input../>)。

剔除特殊字符,某些文本在网页源文件中会替换为特殊的字符,如空格符在网页源码中 为“&nbsp”,此处所知即为删除此类不具有具体意义的特殊字符。具体为,在此步骤中对队 列T中的每个元素text进行检测,剔除text中的各类常特殊字符,这些特殊字符包括但不限 于空格(”&nbsp”)、大于号(”&gt;”)、小于号(”&lt;”)以及等于号(“&quot;”)。

本文中的第二标签是指经过删除无价值的第一标签步骤后,并未被删除的其他常用的 Html标签。通过将Html文本中所有的第二标签替换为一定数目的空行后,样本文本中含有正 文内容的文本与其他标签分割的内容分开。

优选的,对于步骤S200包括以下步骤:将第二标签中的文本标签根据以下规则进行空行 替换。按照对应关系替换规则为:R[("i",n)],其中"i"为第二标签,n为该标签替换为空行的 数量。例如:R:[("div",5),("tr",5),("h1",9),("br",5),("span",4),("table",2)]使用正则表达式进行替 换。

具体如下:R中的所有元素由键值对组成,R元素中的键是标签名称:例如div、tr、hl 等为各类常用的第二标签。R元素中的值代表标签转换过程中替换的空行数目;如R中第一 个元素("div",5)代表当检测到的第二标签为div时,将开始或者结束标签替换为5个空行符 (“ ”)。对于不在关系式R中的其他第二标签,则替换为一个空行符。此步的替换原则是基 于视觉效果替换,视觉效果中间隔越大的第二标签,将被替换为更多的空行。之后将一个网 页文本中的多个被空行分隔开的文本形成列表T,列表中以空行分割两两相邻文本。

步骤S300为聚集文本步骤,通过以上步骤获取的网页文本信息已经被标签分隔为了一个 个被空行分隔的小文本块,此步骤将物理位置相邻的小文本块聚集为一个文本块。

具体地,步骤S300中包括以下步骤:

步骤S310:循环遍历队列T,记当前元素为Tc,若当前元素Tc的有效中文字符数小于指 定文本长度阈值(比如4),则将当前元素Tc文本加入队列B并继续遍历队列T。若Tc的有 效中文字符数大于指定阈值则说明当前元素Tc为有效文本,记Tc为当前有效文本Tcv,创建 临时文本块Temp为当前有效文本Tcv的文本值。

步骤S320:之后从Tcv之后的下一个元素开始遍历队列T,忽略空格或空行文本元素直 到找到下一有效文本Ncv,如果下一有效文本Ncv与有效文本Tcv在队列T中的位置索引差 值小于指定的索引阈值(比如7),则将下一有效文本Ncv的文本追加到临时文本块Temp中 并将下一有效文本Ncv赋值给有效文本Tcv。

步骤S330:之后继续对下一有效文本Ncv之后的下一个有效元素Ncvi+2开始遍历队列T。 如果Ncvi+2与当前有效文本Tcv在队列T中的位置索引差值大于指定的索引阈值,则将文本 块Temp复制一份放入队列B中,将Ncvi+2赋值给当前元素Tc继续循环遍历队列T。

步骤S400为选择正文步骤,通过步骤S300后,相关的文本聚集在一起了(比如:正文、 广告、链接等),获取队列B中元素文本长度最长的元素,此元素文本就是正文,到此正文 提取全部完成。

采用该步骤依据通常网页中:1)正文是连在一起的,不会被广告等噪音分隔;2)正文 的文本块长度较长并且相隔不远;3)正文的内容应该是最长的。从而有效的将网页中的文本 集合,既避免了使用复制的步骤和算法,又避免了针对不同网页指定不同提取规则的繁琐, 提高了对网页文本提取的效率。

参见图2,本发明的另一方面还提供另一种上述方法用的装置,包括:

网页HTML文件获取模块100,用于获取网页的HTML源文件文本,删除无价值的第一 标签并剔除文本中的特殊字符,得到样本文本;

空行分割模块200,用于将样本文本中所有第二标签替换为空行,生成多个空行文本,将 空行文本转换为队列T,两两相邻的空行本文由空行符分隔;

队列转化模块300,用于队列T分隔成多个子队列,将每个子队列中的所有文本合并为一 个文本块,将多个文本块组成队列B,根据文本阈值和索引阈值对队列T进行分割;

文本选取模块400,用于从队列B中选取文本长度最大的文本作为网页正文。

该装置无需根据具体网页设计提取规则,无需人工介入,能有效提高提取效率。

优选的,第二标签使用正则表达式进行替换,替换规则为:R[("i",n)],其中"i"为第二标 签,n为该标签替换为空行的数量。按此规则进行提取,能有效实现对无效文档与正文文 本飞分离,避免二者混合后难以分割。

优选的,队列转化模块包括:

第一循环模块:用于循环遍历队列T,记当前元素为Tc,若当前元素Tc的有效中文字符 数小于文本长度阈值,则将当前元素Tc文本加入队列B中并继续遍历队列T,若当前元素 Tc的有效中文字符数大于文本阈值则记当前元素Tc为当前有效文本Tcv,创建临时文本块 Temp为当前有效文本Tcv的文本值;

第二循环模块,用于从当前有效文Tcv之后的下一个元素开始遍历队列T,忽略空格或空 行元素直到找到下一有效文本Ncv,如果下一有效文本Ncv与有效文本Tcv在队列T中的位 置索引差值小于索引阈值,则将下一有效文本Ncv的文本追加到临时文本块Temp中,并将下 一有效文本Ncv赋值给有效文本Tcv;

队列B形成模块,用于继续对下一有效文本Ncv之后的下一个有效元素Ncvi+2遍历队列 T,如果Ncvi+2与当前有效文本Tcv在队列T中的位置索引差值大于索引阈值,则将临时文本 块Temp复制一份放入队列B中,将Ncvi+2赋值给当前元素Tc继续循环遍历队列T。

采用该模块,能有效避免对分行文本中所含文本的遗漏,尤其适用于对于正文中也出现 了标签的情况。

本领域技术人员将清楚本发明的范围不限制于以上讨论的示例,有可能对其进行若干改 变和修改,而不脱离所附权利要求书限定的本发明的范围。尽管己经在附图和说明书中详细 图示和描述了本发明,但这样的说明和描述仅是说明或示意性的,而非限制性的。本发明并 不限于所公开的实施例。

通过对附图,说明书和权利要求书的研究,在实施本发明时本领域技术人员可以理解和 实现所公开的实施例的变形。在权利要求书中,术语“包括”不排除其他步骤或元素,而不 定冠词“一个”或“一种”不排除多个。在彼此不同的从属权利要求中引用的某些措施的事 实不意味着这些措施的组合不能被有利地使用。权利要求书中的任何参考标记不构成对本发 明的范围的限制。

去获取专利,查看全文>

相似文献

  • 专利
  • 中文文献
  • 外文文献
获取专利

客服邮箱:kefu@zhangqiaokeyan.com

京公网安备:11010802029741号 ICP备案号:京ICP备15016152号-6 六维联合信息科技 (北京) 有限公司©版权所有
  • 客服微信

  • 服务号