首页> 中国专利> 一种网页中非正文文本的识别系统及方法

一种网页中非正文文本的识别系统及方法

摘要

本发明公开了一种网页中非正文文本的识别系统及方法,涉及正文抽取领域。所述系统包括:网页抓取器适于抓取目标网站的所有网页的数据;DOM树构建单元,适于构建目标网站的每个网页对应的DOM树;DOM树分析单元,适于根据DOM树找出网页中的单元文本段;文本统计单元,适于统计单元文本段在目标网站的所有网页中的出现次数;文本识别单元,适于在所述出现次数大于预定阈值时,将所述单元文本段识别为非正文文本。所述系统及方法,克服了现有方法对于非正文文本识别的滞后问题,并且具有较高的识别准确度。

著录项

  • 公开/公告号CN102779172A

    专利类型发明专利

  • 公开/公告日2012-11-14

    原文格式PDF

  • 申请/专利号CN201210214385.2

  • 发明设计人 王志刚;

    申请日2012-06-25

  • 分类号G06F17/30;

  • 代理机构北京路浩知识产权代理有限公司;

  • 代理人王莹

  • 地址 100088 北京市西城区新街口外大街28号D座112室(德胜园区)

  • 入库时间 2023-12-18 07:16:49

法律信息

  • 法律状态公告日

    法律状态信息

    法律状态

  • 2022-06-07

    未缴年费专利权终止 IPC(主分类):G06F17/30 专利号:ZL2012102143852 申请日:20120625 授权公告日:20160601

    专利权的终止

  • 2016-06-01

    授权

    授权

  • 2013-01-09

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

    实质审查的生效

  • 2012-11-14

    公开

    公开

说明书

技术领域

本发明涉及正文抽取技术领域,特别涉及一种网页中非正文文本 的识别系统及方法。

背景技术

正文抽取在搜索引擎、移动阅读等领域有着越来越重要的作用。 正文抽取常用的技术有基于规则、基于DOM(Document Object  Model,文档对象模型)树、基于标记窗、基于最大文本块等。这些 方法都需要对网站中的非正文文本,比如广告、网站声明等,进行排 除。如图1a所示是一段网站声明的代码段示意图,图1b是图1a中代 码段在网页中的实际展示效果图,这种网站声明在网页中非常常见, 对于用户阅读价值不大,都需要在正文抽取时进行排除。然而,如何 有效地识别这些非正文文本,是一个难题。

现有技术中主要采用垃圾关键词密度的方法进行非正文文本识 别。在基于垃圾关键词识别非正文文本时,需要有垃圾关键词构成的 词典,并且不断对词典进行更新。对于词典的更新,只有在发现问题 后才能加入新的垃圾关键词。因此,这种方法对于问题的解决具有严 重的滞后性,而且当面对全互联网的海量数据时,这种滞后性显的更 加突出。

发明内容

本发明要解决的技术问题是:如何提供一种网页中非正文文本的 识别系统及方法,以克服现有方法对于非正文文本识别的滞后问题。

为解决上述技术问题,本发明提供一种网页中非正文文本的识别 系统,所述系统包括:网页抓取器、DOM树构建单元、DOM树分析 单元、文本统计单元和文本识别单元;

所述网页抓取器适于抓取目标网站的所有网页的数据;

所述DOM树构建单元,适于构建目标网站的每个网页对应的 DOM树;

所述DOM树分析单元,适于根据所述DOM树找出所述网页中 的单元文本段;

所述文本统计单元,适于统计所述单元文本段在所述目标网站的 所有网页中的出现次数;

所述文本识别单元,适于在所述出现次数大于预定阈值时,将所 述单元文本段识别为非正文文本。

其中,所述DOM树构建单元采用网页语言对应的解析器。

其中,所述DOM树分析单元包括:节点访问模块和文本段划分 模块;

所述节点访问模块,适于从所述DOM树的根节点开始,依次访 问所述DOM树中的节点,并将访问到的当前节点发送给所述文本段 划分模块;以及适于判断所述DOM树中是否还有需要访问的节点, 如果是,将相应的节点作为新的当前节点发送给所述文本段划分模 块;

所述文本段划分模块,适于判断当前节点对应的文本段是否满足 单元文本段的条件,并且在满足条件时,将所述当前节点对应的文本 段作为单元文本段,并且通知所述节点访问模块停止对所述当前节点 的后代节点的访问。

其中,所述节点访问模块,适于从所述DOM树的根节点开始, 按照广度优先算法依次访问所述DOM树中的节点,并将访问到的当 前节点发送给所述文本段划分模块;以及适于判断所述DOM树中是 否还有需要访问的当前节点的同层节点或者下层节点,如果是,将相 应的同层节点或者下层节点作为新的当前节点发送给所述文本段划 分模块。

其中,当所述当前节点到其后代节点的最长路径小于等于预定长 度,并且所述当前节点的后代节点中不包含复杂节点时,认为所述当 前节点对应的文本段满足单元文本段的条件。

其中,所述复杂节点包括:标签table、tr、td、ul、ol、frame、 select、input、marquee和/或map对应的节点。

其中,所述文本统计单元包括:哈希运算模块和统计模块;

所述哈希运算模块,适于对所述单元文本段进行哈希运算,得到 结果键值;

所述统计模块,适于根据所述结果键值统计所述单元文本段在所 述目标网站的所有网页中的出现次数。

其中,所述文本识别单元,还适于在所述出现次数小于等于所述 预定阈值时,将所述单元文本段识别为正文文本。

本发明还提供一种网页中非正文文本的识别方法,其包括步骤:

A:使用网页抓取器抓取目标网站的所有网页的数据;

B:构建目标网站的每个网页对应的DOM树;

C:根据所述DOM树找出所述网页中的单元文本段;

D:统计所述单元文本段在所述目标网站的所有网页中的出现次 数;

E:根据所述出现次数,判断所述单元文本段是否是非正文文本。

其中,所述步骤B中,采用网页语言对应的解析器构建目标网站 的每个网页对应的DOM树。

其中,所述步骤C中具体包括步骤:

C1:从所述DOM树的根节点开始,依次访问所述DOM树中的 节点;

C2:判断当前节点对应的文本段是否满足单元文本段的条件,如 果是,停止对所述当前节点的后代节点的访问,将所述当前节点对应 的文本段作为单元文本段,执行步骤C3;否则,直接执行步骤C3;

C3:判断所述DOM树中是否还有需要访问的节点,如果是,将 相应的节点作为新的当前节点,执行步骤C2;否则,执行所述步骤 D。

其中,所述步骤C2具体包括步骤:

C21:判断当前节点是否满足以下条件:所述当前节点到其后代 节点的最长路径小于等于预定长度,并且所述当前节点的后代节点中 不包含复杂节点;如果是,执行步骤C22;否则,执行步骤C3;

C22:停止对所述当前节点的后代节点的访问,将所述当前节点 对应的文本段作为单元文本段,执行步骤C3。

其中,所述复杂节点包括:标签table、tr、td、ul、ol、frame、 select、input、marquee和/或map对应的节点。

其中,所述步骤C1中,按照广度优先算法依次访问所述DOM 树中的节点;

所述步骤C3具体包括步骤:

C31:判断所述DOM树中是否还有未访问的所述当前节点的同 层节点,如果是,将所述同层节点作为新的当前节点,执行步骤C2; 否则,执行步骤C32;

C32:判断所述DOM树中是否还有需要访问的所述当前节点的 下层节点,如果是,将所述下层节点作为新的当前节点,执行步骤 C2;否则,执行所述步骤D。

其中,所述步骤D具体包括步骤:

D1:对所述单元文本段进行哈希运算,得到结果键值;

D2:根据所述结果键值统计所述单元文本段在所述目标网站的 所有网页中的出现次数。

其中,所述步骤E具体包括步骤:判断所述出现次数是否大于预 定阈值,如果是,将所述单元文本段识别为非正文文本;否则,将所 述单元文本段识别为正文文本。

本发明的网页中非正文文本的识别系统及方法,采用DOM树获 取每个网页的单元文本段,进而对单元文本段在目标网站中出现的次 数进行统计,并将其出现次数与预定阈值进行比较,从而识别出网站 上的非正文文本,克服了现有方法对于非正文文本识别的滞后问题, 并且具有较高的识别准确度,在搜索引擎中具有广泛的应用前景。

附图说明

图1a是一段网站声明的代码段示意图;

图1b是图1a中代码段在网页中的实际展示效果图;

图2是本发明实施例所述网页中非正文文本的识别系统的模块结 构图;

图3是所述DOM树分析单元的内部模块结构图;

图4是所述文本统计单元的内部模块结构图;

图5是本发明实施例的网页中非正文文本的识别方法的流程图;

图6是HTML网页对应的DOM树示意图;

图7是所述步骤C的流程图;

图8是所述步骤D的流程图;

图9是单元文本段统计原理示意图。

具体实施方式

下面结合附图和实施例,对本发明的具体实施方式作进一步详细 描述。以下实施例用于说明本发明,但不用来限制本发明的范围。

图2是本发明实施例所述网页中非正文文本的识别系统的模块 结构图,如图2所示,所述系统包括:网页抓取器100、DOM树构 建单元200、DOM树分析单元300、文本统计单元400和文本识别单 元500。

所述网页抓取器100适于抓取目标网站的所有网页的数据,其一 般可以采用网络蜘蛛、网页爬虫、搜索机器人或网络抓取脚本程序。

所述DOM树构建单元200,适于构建所述目标网站的每个网页 对应的DOM树。所述DOM树构建单元采用网页语言对应的解析器, 并且对于HTML网页,采用HTML解析器。

所述DOM树分析单元300,适于根据所述DOM树找出所述网 页中的单元文本段。

图3是所述DOM树分析单元的内部模块结构图,如图3所示, 所述DOM树分析单元300包括:节点访问模块301和文本段划分模 块302。

所述节点访问模块301,适于从所述DOM树的根节点开始,依 次访问所述DOM树中的节点,并将访问到的当前节点发送给所述文 本段划分模块302;以及适于判断所述DOM树中是否还有需要访问 的节点,如果是,将相应的节点作为新的当前节点发送给所述文本段 划分模块302。

其中,所述节点访问模块301可以按照广度优先算法、深度优先 算法或者其他搜索算法访问所述DOM树中的节点。由于所述DOM 树分析单元300在判定当前节点对应的文本段为单元文本段时,将停 止对当前节点的后代节点的访问,因此,所述节点访问模块301,优 选适于按照广度优先算法依次访问所述DOM树中的节点,并将访问 到的当前节点发送给所述文本段划分模块302;以及适于判断所述 DOM树中是否还有需要访问的当前节点的同层节点或者下层节点, 如果是,将相应的同层节点或者下层节点作为新的当前节点发送给所 述文本段划分模块302。其中,广度优先算法又称作宽度优先搜索, 或横向优先搜索,是一种从根节点开始,自上层至下层,沿着树的宽 度遍历树的节点的算法。

所述文本段划分模块302,适于判断当前节点对应的文本段是否 满足单元文本段的条件,并且在满足条件时,将所述当前节点对应的 文本段作为单元文本段,并且通知所述节点访问模块301停止对所述 当前节点的后代节点的访问。其中,当所述当前节点到其后代节点的 最长路径小于等于预定长度,并且所述当前节点的后代节点中不包含 复杂节点时,认为所述当前节点对应的文本段满足单元文本段的条 件。所述复杂节点包括:标签table、tr、td、ul、ol、frame、select、 input、marquee和/或map对应的节点。

所述文本统计单元400,适于统计所述单元文本段在所述目标网 站的所有网页中的出现次数。

图4是所述文本统计单元的内部模块结构图,如图4所示,所述 文本统计单元400进一步包括:哈希运算模块401和统计模块402。

所述哈希运算模块401,适于对所述单元文本段进行哈希运算, 得到结果键值。

所述统计模块402,适于根据所述结果键值统计所述单元文本段 在所述目标网站的所有网页中的出现次数。

所述文本识别单元500,适于判断所述出现次数是否大于预定阈 值,如果是,将所述单元文本段识别为非正文文本;否则,将所述单 元文本段识别为正文文本。

图5是本发明实施例的网页中非正文文本的识别方法的流程图, 如图5所示,对应所述系统,所述方法包括步骤:

A:使用网页抓取器抓取目标网站的所有网页的数据。所述网页 抓取器一般可以是网络蜘蛛、网页爬虫、搜索机器人或网络抓取脚本 程序。所述网页可以采用HTML(Hypertext Markup Language,超文 本标记语言)、XML(extensible markup language,可扩展标记语言)、 XHTML(extensible Hypertext Markup Language,可扩展超文本标记 语言)等标记语言,为简单起见,后续均以HTML网页为例说明。这 里的所有网页包括所述目标网站的主网页和子网页。

B:构建目标网站的每个网页对应的DOM树。本实施例中采用 HTML解析器构建目标网站的每个网页对应的DOM树,本领域技术人 员容易想到,当所述网页采用其他标记语言时,可以采用相应的解析 器,比如采用XML解析器构建XML网页对应的DOM树。图6是HTML 网页对应的DOM树示意图,如图6所示,DOM树中的节点对应于 HTML代码中的标签或者文本。

C:根据所述DOM树找出所述网页中的单元文本段。

图7是所述步骤C的流程图,如图7所示,所述步骤C中具体 包括步骤:

C1:从所述DOM树的根节点开始,依次访问所述DOM树中的 节点。

C2:判断当前节点对应的文本段是否满足单元文本段的条件,如 果是,停止对所述当前节点的后代节点的访问,将所述当前节点对应 的文本段作为单元文本段,执行步骤C3;否则,直接执行步骤C3。

所述步骤C2具体包括步骤:

C21:判断当前节点是否满足以下条件:所述当前节点到其后代 节点的最长路径小于等于预定长度,并且所述当前节点的后代节点中 不包含复杂节点;如果是,执行步骤C22;否则,执行步骤C3。本 步骤的含义是,当所述当前节点同时满足,所述当前节点到其后代节 点的最长路径小于等于预定长度,并且所述当前节点的后代节点中不 包含复杂节点时,将所述当前节点对应的文本段作为单元文本段。

仍以图6为例,图6中左侧div节点与其最远的后代节点的距离 为3,小于预定距离4,同时,其后代节点中不含所述复杂节点,因 此,图6中左侧div节点对应的文本段被识别为单元文本段。需要说 明的是,对所述单元文本段的识别与所述当前节点的标签名称无关。

所述后代节点包括所述当前节点的各子孙节点,即在所述当前节 点所在分支上并且位于所述当前节点下层的所有节点。对于所述预定 长度的设定以及所述复杂节点所包括节点的范围可以根据实际使用 情况适时调整。比如,所述预定长度可以设置为3或者4或者5,本 实施例中,所述预定长度优选为4。仍以图6中的DOM树为例,对 于图6中左侧的div节点,当其作为当前节点时,其对应的分支为 div->p->a->text2,该div节点距离其最远的后代节点text2的距离为3, 小于预定长度4。本实施例中,所述复杂节点包括:标签table、tr、 td、ul、ol、frame、select、input、marquee和/或map对应的节点。

C22:停止对所述当前节点的后代节点的访问,将所述当前节点 对应的文本段作为单元文本段,执行步骤C3。

C3:判断所述DOM树中是否还有需要访问的节点,如果是,将 相应的节点作为新的当前节点,执行步骤C2;否则,执行所述步骤 D。

所述步骤C1中,可以采用广度优先算法、深度优先算法或者其 他搜索算法访问所述DOM树中的节点。由于本发明实施例所述方法 在判定当前节点对应的文本段为单元文本段时,将停止对当前节点的 后代节点的访问,因此,所述步骤C1中优选采用广度优先算法。

当所述步骤C1中,按照广度优先算法依次访问所述DOM树中 的节点时,所述步骤C3具体包括步骤:

C31:判断所述DOM树中是否还有未访问的所述当前节点的同 层节点,如果是,将所述同层节点作为新的当前节点,执行步骤C2; 否则,执行步骤C32。所述同层节点是指与所述当前节点处于同一层 的节点,其可以是所述当前节点的兄弟节点,也可以是所述当前节点 的非兄弟节点(如图6中的text2节点与text3节点是同层节点但不是 兄弟节点)。

C32:判断所述DOM树中是否还有需要访问的所述当前节点的 下层节点,如果是,将所述下层节点作为新的当前节点,执行步骤 C2;否则,执行所述步骤D。需要说明的是,当所述当前节点对应的 文本段被识别为单元文本段时,所述当前节点的后代节点无需再被访 问。

D:统计所述单元文本段在所述目标网站的所有网页中的出现次 数。

图8是所述步骤D的流程图,如图8所示,所述步骤D具体包 括步骤:

D1:对所述单元文本段进行哈希运算,得到结果键值。本实施 例中,采用MD5(Message DigestAlgorithm 5,消息摘要算法第五版) 算法对所述单元文本段进行哈希运算,当然本领域技术人员容易想到 还可以利用其他类似算法进行哈希运算。本实施例中,在对所述出现 次数进行统计时,建立了以所述结果键值为key,以所述出现次数为 value的key-value表格,进而根据所述key-value表格判断每个key值对 应的value值是否大于所述预定阈值,以识别出每个key值对应的单元 文本段是否是非正文文本。

D2:根据所述结果键值统计所述单元文本段在所述目标网站的 所有网页中的出现次数。

E:根据所述出现次数,判断所述单元文本段是否是非正文文本。 所述步骤E具体包括步骤:判断所述出现次数是否大于预定阈值,如 果是,将所述单元文本段识别为非正文文本;否则,将所述单元文本 段识别为正文文本。图9是单元文本段统计原理示意图,如图9所示, 各所述单元文本段出现次数的统计范围为所述目标网站的所有网页。 其中,所述预定阈值可以根据实际使用情况进行调整,比如预定阈值 可以优选为100,或者90、150等等。

本发明实施例所述网页中非正文文本的识别系统及方法,采用 DOM树获取每个网页的单元文本段,进而对单元文本段在目标网站 中出现的次数进行统计,并将其出现次数与预定阈值进行比较,从而 识别出网站上的非正文文本,克服了现有方法对于非正文文本识别的 滞后问题,并且具有较高的识别准确度,在搜索引擎中具有广泛的应 用前景。

以上实施方式仅用于说明本发明,而并非对本发明的限制,有关 技术领域的普通技术人员,在不脱离本发明的精神和范围的情况下, 还可以做出各种变化和变型,因此所有等同的技术方案也属于本发明 的范畴,本发明的专利保护范围应由权利要求限定。

去获取专利,查看全文>

相似文献

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

客服邮箱:kefu@zhangqiaokeyan.com

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

  • 服务号