首页> 中国专利> 基于标签和分块特征的新闻网页关键信息自动抽取方法

基于标签和分块特征的新闻网页关键信息自动抽取方法

摘要

一种基于标签和分块特征的新闻网页关键信息自动抽取方法,步骤如下:输入欲抽取新闻站点栏目的统一资源定位符(Uniform resource locator,URL);生成目标链接样式正则表达式;下载新闻站点栏目URL对应的网页源代码;提取网页中所有链接,通过新闻链接样式正则表达式过滤出得到新闻链接;将上一步骤得到的新闻链接插入到待抽取的新闻页面URL队列;下载新闻页面URL对应的网页源代码,包括基于标签与分块特征的正文块抽取算法,基于编辑距离的新闻标题抽取,基于分块特征的新闻时间、来源抽取。本发明能够精确抽取新闻关键信息、最大化地减少抽取模板的制作和维护的工作量。

著录项

  • 公开/公告号CN109857956A

    专利类型发明专利

  • 公开/公告日2019-06-07

    原文格式PDF

  • 申请/专利权人 四川大学;

    申请/专利号CN201910072318.3

  • 申请日2019-01-25

  • 分类号

  • 代理机构成都信博专利代理有限责任公司;

  • 代理人舒启龙

  • 地址 610065 四川省成都市武侯区一环路南一段24号

  • 入库时间 2024-02-19 10:51:16

法律信息

  • 法律状态公告日

    法律状态信息

    法律状态

  • 2019-12-31

    授权

    授权

  • 2019-07-02

    实质审查的生效 IPC(主分类):G06F16/955 申请日:20190125

    实质审查的生效

  • 2019-06-07

    公开

    公开

说明书

技术领域

本发明涉及计算机技术领域,具体涉及一种基于标签和分块特征的新闻网页关键信息自动抽取方法。

背景技术

对网页信息的抽取研究一直是信息技术领域的研究热点,网络新闻是人们获取信息的重要来源,其获取来源一般有搜索引擎和新闻网站两种。从搜索引擎获取新闻的方法虽然新闻来源范围广,但是其搜索的信息在一定程度上滞后且不全面,不能及时向用户反馈最新的信息。新闻网站是实时新闻发布的主要平台,也是获取实时新闻的关键平台,要及时、全面地获取新闻实时信息并作为后续研究的基础信息,对新闻站点进行实时采集很有必要。

Web信息抽取即从网页中抽取出有价值的、适用于后续研究的网页主体信息。目前较为成熟的信息抽取方法主要有基于模板的方法、基于统计的方法、基于视觉分块的方法。

基于模板的信息抽取方法。早期的手工构建模板的方法主要用来解决特定网站的信息抽取问题,使用该类方法不需要构建数据集,但是需要大量的人工分析且不同的站点需要不同的模板,费时费力且通用性较差。一种全自动生成模板的算法,算法利用网页链接分类算法和网页结构分离算法,并经过大量计算后抽取出网页中各个信息单元,从而生成模板。但是算法需要对同类网站进行观察并需要大量计算。

基于统计的网页信息抽取算法。目前基于统计的方法主要有统计文本密度、标签密度和行块分布等方法。一种基于后缀树的信息抽取方法。其首先从Web页面的标记路径中提取一个标识符序列,然后在这个序列之上构建一个后缀树,并提出四个精炼过滤器来筛选可能不包含数据记录的数据区域,从而实现信息的自动抽取。目前基于统计的方法大多是针对网页正文抽取进行的研究,多数对于发布时间、来源等其他新闻关键信息的抽取不能提供直接帮助。

基于视觉的信息抽取方法。一种基于视觉的VBF方法,方法通过获取网页的HTML代码和截图、建立DOM树、计算神经网络和表单识别、匹配、生成,从网页中提取信息表单。基于视觉分块的方法往往需要先进行页面渲染会耗费较多资源。

由于新闻站点风格、网页设计实现方式不一样,导致站点与站点之间、站点版块间的新闻页面的构造不同,所以给新闻关键信息的精确抽取带来了巨大的挑战。基于模板的传统信息抽取方法是基于同一数据源的HTML结构特征相同的前提来生成该类网页的模板,用于抽取结构相近的网页中的信息。当模板质量高且网页结构相似性高时,其抽取准确率较高,且信息抽取速度较快。如果待抽取信息的网页规模较大且来自很多网站或版块,信息抽取模板的制作和维护代价很高。当某一类页面的结构发生变化时,原有的模板无法适应网页结构的变化,就无法精确抽取网页中的信息。基于统计的信息抽取方法主要分析网页的正文部分,而很少对新闻标题、发布时间、转载来源等其他关键信息进行统计分析。

现有的基于统计的方法不能直接抽取新闻发布时间等其他关键信息,并存在耗费大量人力且易失效等特点。

发明内容

本发明的目的是针对现有技术存在的问题而提供一种基于标签和分块特征的新闻网页关键信息自动抽取方法,旨在精确抽取新闻关键信息、最大化地减少抽取模板的制作和维护的工作量。

本发明的目的是这样实现的:一种基于标签和分块特征的新闻网页关键信息自动抽取方法,包括以下步骤:

步骤(1):输入欲抽取新闻站点栏目的统一资源定位符(Uniform resourcelocator,URL);

步骤(2):生成目标链接样式正则表达式;

步骤(3):下载新闻站点栏目URL对应的网页源代码;

步骤(4):提取网页中所有链接,通过新闻链接样式正则表达式过滤出得到新闻链接;

步骤(5):将步骤(4)得到的新闻链接插入到待抽取的新闻页面URL队列;

步骤(6):下载新闻页面URL对应的网页源代码,抽取网页的新闻关键信息,包括基于标签与分块特征的正文块抽取算法,基于编辑距离的新闻标题抽取,基于分块特征的新闻时间、来源抽取。

本发明的主要思想是将新闻链接样式规则化与基于标签和分块特征的信息自动抽取相结合,建立一个针对新闻网站的目标新闻自动抽取框架,使用者只用对目标新闻链接的样式进行正则化统一,即可借助该框架得到结构化的新闻关键信息,包括新闻标题、正文、发布时间、来源等。本发明的输入是待抽取的某新闻站点的某栏目地址和目标新闻链接样式的正则表达式,输出是目标新闻链接的新闻关键信息。

本发明优势在于:

(1)本发明通过分析中文新闻网页的标签和分块特征,提出了一种标签块定位方法。方法不需要人工参与,解决了传统的新闻关键信息抽取需要构造模板的问题。

(2)本发明通过标签块定位,缩小了抽取新闻发布时间和来源的范围,并通过分析提炼了新闻发布时间、来源的样式,提高了抽取准确率。

附图说明

图1是本发明的自动抽取整体技术框架图。

图2是本发明的目标新闻链接抽取模块流程图。

图3是本发明的新闻关键信息抽取模块流程图。

具体实施方式

下面结合附图对本发明的实施方案进行阐述,以使本发明的优点和特征能更易于被本领域技术人员理解,从而对本发明的保护范围做出更为清楚明确的界定。

本发明提出的针对新闻站点的新闻关键信息自动抽取框架是对中文网站的目标新闻网页进行新闻关键信息的自动抽取,其中新闻关键信息包括新闻标题、正文、发布时间、来源。本发明的输入是待抽取的某新闻站点的某栏目地址和目标新闻链接样式的正则表达式,输出是目标新闻链接的新闻关键信息。

本发明提出的自动抽取整体技术框架如图1所示。框架的核心包括新闻链接获取模块、新闻关键信息抽取模块。

(1)目标新闻链接获取模块:给定新闻站点(栏目)URL地址和待获取的新闻链接样式正则表达式,根据URL地址下载栏目页HTML源代码,如果栏目页需要动态加载,则加入动态加载分析获取网页源代码。然后提取网页中所有链接,通过新闻链接样式正则表达式过滤出新闻链接。

(2)新闻关键信息抽取模块:顺序给定目标新闻链接,通过新闻地址获取其Html源代码文件并解析成Dom树,经过预处理后,首先通过新闻正文块抽取算法获取新闻正文所在的元素节点即正文块,并获取节点文本即正文。其次通过新闻标题块抽取算法获取新闻标题所在的节点即标题块,并获取节点文本即标题。最后,通过正文块和标题块定位新闻发布时间、来源所在的节点块,再通过时间、来源抽取算法获取新闻发布时间和来源。

以下结合具体案例对本发明的实施方案展开描述。

步骤1:输入欲抽取新闻站点栏目URL。

以凤凰网军事栏目防务观察子栏目为例,栏目地址为http://news.ifeng.com/listpage/7131/1/list.shtml。

步骤2:生成目标链接样式正则表达式。

通过查看栏目URL对应的网页源代码,可以找到页面的新闻链接,如http://news.ifeng.com/a/20181017/60113348_0.shtml,根据链接构造正则表达式:^http://news.ifeng.com/a/d{8}/d{8}_0.shtml$。

步骤3:下载新闻站点栏目URL对应的网页源代码。

步骤4:提取网页中所有链接,通过新闻链接样式正则表达式过滤出得到新闻链接。

新闻链接的抽取是针对某固定站点的某栏目进行新闻页面链接的精确抽取。目标新闻链接抽取模块流程图如图2所示。

经过统计分析大量新闻网页源代码发现,新闻链接一般存在于<frame>、<a>标签中,只要在HTML源代码中过滤出这两个标签就可以缩小标签查找的范围,简化链接抽取的网页源代码,所以在链接抽取的代码中定义了链接过滤器LinkFilter。为了更好地在网页源代码中寻找固定标签,在过滤标签之前将源代码解析成节点树(DOM),然后通过链接过滤器过滤出链接标签。具体实现如算法getNewsUrls所示。

定义1新闻站点(栏目)地址(SiteUrl)是指新闻站点的某个子栏目。

定义2栏目新闻链接(NewsUrls)是指某新闻站点中具体一条新闻的网页链接,即目标新闻链接。

新闻链接在线抽取算法,伪代码如下:

步骤5:将上一步得到的新闻链接插入到待抽取的新闻页面URL队列;

步骤6:下载新闻页面URL对应的网页源代码;抽取网页的新闻关键信息,包括抽取基于标签与分块特征的正文,抽取基于编辑距离的新闻标题,抽取基于分块特征的新闻时间、来源。新闻关键信息抽取模块流程图如图3所示。

1、基于标签与分块特征的正文块抽取

为了更好地抽取新闻正文,本发明作者对大量的新闻网站做了分析,并发现以下特征:

(1)新闻正文往往在一个主体块,而噪音数据(非新闻关键信息)往往分为很多块。

(2)新闻正文块中有较多的文字信息即有较长的文本长度,而噪音数据中包含很少的文字且多为链接文字。

(3)新闻正文块中包含较少的链接信息,而噪音数据则包含更多的链接信息。

(4)新闻正文块的叶子结点多为文本节点,而噪音数据中的叶子结点多为链接节点。

(5)新闻正文块的总文本长度一般大于噪音数据块。

(6)新闻正文块中含有较多的文字和较少的标签,而噪音数据则相反。

(7)新闻正文块一般用<p>标签作为文本标签。

基于这些特征,本发明提出基于标签和分块特征的正文抽取算法,算法伪代码如下(设一个标签块为B):

算法中预处理指的是去除Document对象中无用标签及其内容、注释和符号实体等。其中无用标签主要有脚本语言标签,如<script><noscript>;与用户交互的标签,如<input>、<option>;版面设计的样式标签,如框架标签<iframe>、CSS样式标签<style>;等等。

设预处理后的新闻网页W由多个标签块B组成,W={B1,B2,B3,...,Bn},对每一个标签块中的具体信息做统计,得到Bi={Nb,Nlt,Nl,Np,Nt,Ntag}。其中Nb表示一个标签块中包含的子标签块数;Npt是该标签块中的非链接标签内文本数,整个标签块中的文本数包括链接标签内的文本数记为Nt;Nl表示标签块中的链接数,其对应的链接文本数为Nlt;Np表示该标签块中P标签的数量;Ntag是标签块中所有的标签总数。

W对应的DOM树为T,遍历树T,计算T中每一个元素节点及其子节点的特征属性,并以键值对的形式保存节点与其属性实体的对应关系。计算节点文本数时,根据标签名用所有文本数减去链接标签中的文本数(Npt=Nt-Nlt),同时不对链接标签计数以排除链接及其中的文本对计算文本-标签比的影响,其中文本-标签密度比为density=Npt/(Ntag-Nl)。计算B中文本长度的平均值(var),设B中的文本节点1,2,3,...n,i为文本节点中的任一节点,Li表示该文本节点的文本长度。标签块文本平均数计算公式如下:

标签块特征分数计算公式如下:

根据以上公式对树T的所有标签块算分,最后以分数最大值定位到正文元素块。

2、基于编辑距离的新闻标题抽取

经过大量的观察和分析,新闻标题一般有如下几种分布:

(1)一般网页HTML源代码的头部的<title>标签会标明新闻标题;

(2)在新闻体内,正文标题一般用<h1>、<h2>等标题修饰标签;

(3)正文体内可能使用(镶嵌)title字符串的类标签或id标签声明标题。

由此,本发明提出层次查找标题的方法,首先抽取文档头部的<title></title>标签和<h1></h1>标签中的字符串,去掉字符串前后空白和符号,分别得到S1,S2。根据S2的长度对S1进行截取得到S1',然后计算S1'和S2的字符串编辑距离,若编辑距离等于0,则S2为该文章标题。如果获取失败则获取其中<h1><h2>…<h6>标签所有内容,按标签不同列表存储,依次计算S1和各标签内容的最大相同子串长度,最后取拥有最长子串的字符串为标题。如果<hi>标签中都没有标题则用Jsoup(Jsoup是一款Java的HTML解析器,可直接解析某个URL地址、HTML文本内容)的选择器选取符合“*[id^=title],*[id$=title],*[class^=title],*[class$=title]”的标签内容,获取到字符串S3,取S1和S3最大相同子串为标题。

基于以上方法定位到标题所在的标签块,为后续的时间来源抽取做准备。

3、基于分块特征的新闻时间、来源抽取

通过大量的观察发现,大部分新闻网页的发布时间和来源分布在标题块和正文块中间,所以本专利提出基于分块特征的新闻发布时间、来源标签块抽取。根据前面提到的正文块和标题块的抽取,可以获取到标题块-正文块的中间字符串,将字符串转化为DOM树元素节点,即可对时间、来源进行抽取。

(1)新闻时间抽取

经过统计分析大量的网页发现,中文新闻网站的发布时间主要有以下几种样式:

1)yyyy mm dd

2)yyyy mm dd HH:mm:ss

3)yyyy mm dd HH:mm

4)mm dd HH:mm:ss

5)mm dd HH:mm

以上样式中均忽略时间数字间的连接符,其常用的连接符有“-”,“年月日”,“/”等。其中yyyy表示某一年,如2018;mm表示某月,如05表示五月;dd表示日期,如02表示2日。HH表示小时,如21表示为下午九点;mm表示分钟数,如08表示8分;ss表示秒,如09表示9秒。加上年月日的连接符,以上时间表示为2018年5月2日21:08:09。

获取新闻发布时间时,遍历时间、标签块中的元素节点,获取所有文本节点并抽取其中的文本信息,计算其中的数字个数,取数字个数在8到14之间的文本作为第一次筛选出的候选发布时间文本,最后使用已按观察样式写好的正则表达式在候选文本中匹配出发布时间,并格式化时间作为新闻发布时间。如果时间获取失败,则用Jsoup(Jsoup是一款Java的HTML解析器,可直接解析某个URL地址、HTML文本内容)的选择器选取符合“*[id^=time],*[id$=time],*[class^=time],*[class$=time]”的标签内容,之后再用已按观察样式写好的正则表达式对时间进行抽取。对时间的抽取方法均忽略时间连接符,最后将获取到的年月日时间统一用“-”连接。

(2)新闻来源抽取

大部分有来源信息的新闻网页会以“来源:”形式标明新闻转载来源。也有一部分转载的新闻网页会标明来源,但是没有“来源:”字样,其往往放在发布时间后面,而且其标签往往以“source”为子串的字符串作为一个属性值,所以基于以上观察,在抽取来源时,首先检测所有文本节点中是否含有“来源:”字样,若有则获取该文本节点所有文本。若没有则检测所有标签的属性值,是否含有“source”字符子串,若有则获取其对应的标签的文本作为来源。

本发明针对传统新闻关键信息抽取多需要分析新闻页面写解析模板的情况,提出针对固定站点的新闻关键信息自动抽取方法。用户只用对固定站点的新闻链接构造进行分析,就可以对相应的新闻链接进行在线的自动抽取,从而得到新闻关键信息用于后续分析研究。

本发明随机选取10个中文新闻网站,每个站点随机选取3个新闻栏目,然后用发明提出的链接抽取方法抽取出了目标新闻链接共1597条新闻链接。随机选取其中1000条新闻链接作为实验数据集,并对链接对应的新闻关键信息(标题、时间、来源、正文)文本进行标注,得到标注的实验数据集。采用准确率(P)、召回率(R)和F值作为新闻关键信息抽取的评价标准。将发明方法与Newspaper(国外)、Webcollector(国内)的自动抽取结果进行对比,结果如表1所示:

表1 实验结果对比

从表1中可以看出本文提出的新闻关键信息抽取方法具有较好的抽取效果。新闻关键信息抽取的实验数据显示:

1)新闻网页源文件的在线获取:本文的新闻关键信息采集均为在线采集,即给定新闻链接为输入,程序自动获取网页源文件,经过新闻关键信息抽取之后,输出当前输入链接对应的新闻关键信息。Newspaper和本文方法都能较好地获取到新闻网页源文件。Webcollector则不能获取新浪网新闻的网页源文件,所以实验结果中其召回率较低。

2)对标题的抽取:newspaper对新闻标题的抽取结果中,部分数据带了网站信息,造成标题数据的不准确。Webcollector可能抽取到非标题信息的其他数据信息,存在抽取错误率,也存在漏采现象。本文方法对标题的抽取虽然存在漏采率,但是采集到的标题均为新闻准确标题,无误差。

3)对时间的抽取:newspaper存在大量新闻时间的漏采,抽取到的时间多精确到的日期并且对精确到时分秒的新闻时间采集存在误采。比如实验结果中有大量的22:00:00的时间信息存在,查找了网页源代码并没有找到该时间的出处。Webcollector对形如yyyy mmdd HH:mm样式的时间采集效果较差,这样的时间的抽取结果多精确到日。其对腾讯新闻的时间采集基本是失败的,存在大量的漏采和误采现象。对其他网站新闻的采集也存在较少的误采现象。本文提出的时间采集方法,可以对各种样式的时间数据准确采集并且具有较高的精确度。

4)对正文的抽取:newspaper存在较其他两个大的漏采现象。三者都出现一定的误采现象,但被误采的新闻网页多属于图片类新闻,这类新闻正文主要以图片为主,文字较少。

5)对来源的抽取:由于对比的两个自动抽取框架都没有提供来源抽取的方法,所以尽管本文方法对来源进行了抽取并取得了良好的抽取效果,但不参与对比。

去获取专利,查看全文>

相似文献

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

客服邮箱:kefu@zhangqiaokeyan.com

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

  • 服务号