随着Internet的迅速发展,Web已经成为人们获取信息的主要渠道之一,大多数的企业或团体都是通过Web站点的网页发布企业信息。为了充分利用这些信息,而不仅仅是浏览,应用程序必须从HTML形式的Web网页中抽取感兴趣的数据,并转换成具有一定结构的格式化数据。Web包装器软件的任务就是负责抽取HTML格式的数据并转化为结构化的数据。基于Web包装器的应用程序能以访问数据库中信息的方式来访问Web数据,所以Web包装器是Web数据集成体系结构中的关键部分。论文在研究Web包装器概念设计的基础上,利用最新的Web技术、信息处理技术和人工智能技术,完成了Web网页数据抽取包装器软件的设计,并通过Web新书发布页面信息抽取实验,分析了算法和系统的性能,验证了该包装器软件的可行性和高效性。
中国论文网 http://www.xzbu.com/7/view-3009321.htm
一、Web包装器的概念设计
定义Wrapper:给定一个包含一系列Web页面P(其中P={p1,p2Λ,pn})的Web数据源S,找到一个映射关系W,它可以将S中的P映射到一个数据集R,并且当pi,j ∈{1,Λ,n}结构变化不大的情况下能正确抽取数据。映射W就是通常所说的Web包装器(Wrapper)。
从功能上来说,Wrapper就是根据特定的抽取规则从特定的半结构化Web数据源执行数据抽取的程序。Wrapper的核心是抽取规则。抽取规则用于从每个HTML文档中抽取相关信息。
维护的步骤首先要进行Wrapper的验证,然后,进入维护过程。当页面发生变化时,Wrapper所抽取的数据就可能不正确或抽取不到数据,这样就触发了维护例程。维护在本质上是在新页面中重新建立抽取规则,从而完成Wrapper的自动修复过程。
Web信息抽取就是从Web页面所包含的无结构或半结构的信息中识别用户感兴趣的数据,并将其转化为结构和语义更为清晰的格式(XML、关系数据、面向对象的数据等)。信息抽取可以理解为一个从待处理文本中抽取信息,形成结构化的数据并存入一个数据库,供用户查询和使用的过程。因此为了完成信息的抽取和转化,Web包装器需要具有四个方面的能力:(1)信息定位:确定所需要的信息在文档中的位置;(2)数据抽取:将文本内容分字段抽取出数据;(3)数据组织:将抽取的数据按照正确的结构和语义组织起来;(4)可维护性:当Web页面发生变化时,Web包装器仍能正确抽取数据。因此,我们设计了一种高效的Web包装器算法如下:
输入:
- Config.xml配置文件:Web数据源S抽取规则定义;
- S:Web数据源;
- P:Web数据源S的Web页面,其中P={p1,p2Λ,pn};
- T:HTML解析后生成的DOM树,其中T={t1,Λ,tn};
- B:待抽取信息块,其中B={b1,K,bm};
- Express:表达式;
输出:
- R:抽取数据结果集R=R1,YR2KYRn
①利用JDOM解析Config.xml配置;
②R=(空数据集);
③for(int i=1; i<=n; i++)
{
解析S中的pi得到ti,即:pi→ti
从ti定位信息抽取块bj,即:ti→bj,其中j ∈{1,Λ,m}
//对于pi中得到的bj进行如下操作;
④for(int j=1; j<=m; j++)
{
用表达式Express从bj中析取数据,记作Ri j={rj1,Λ,rjk};
k表示从S中抽取数据生成k个字段的数据模型
}
⑤RetuRn Ri=Ri1YRi2ΛYRim},其中i ∈{1,Λ,n}
}
⑥RetuRn R=R1YR2ΛYRn
二、Web包装器软件的设计
根据以上算法,Web包装器的结构主要由3个模块组成:预定义模块、数据抽取模块和数据组织模块。其中预定义模块、数据抽取模块是Web包装器的核心部分。
1.预定义模块。预定义模块主要完成了抽取规则定义。本文设计的Web包装器是基于规则的抽取模型,考虑到这种包装器的可维护性和重用性,采用了通过解析XML配置文件(Config.xml)来完成信息定位和信息抽取。对于Web数据源页面发生了变动,则Web包装器的维护只需要更改针对此Web数据源的配置文件(Config.xml)即可。在网页组织形式变动不大的情况下,可以方便、快速地解决Web包装器的维护问题。预定义抽取规则Config.xml配置文件模板如下:
<?xml version=“1.0” encoding=“gb2312”?>
<config>
<url>Web源网页地址</url>
<beginPage>起始页</beginPage>
<endPage>结束页</endPage>
<tag>标签</tag>
<index>索引号</index>
<regex>正则表达式</regex>
</config>
2.数据抽取模块。数据抽取模块作为Web包装器的核心部分,完成了信息定位和信息抽取功能。页面解析主要是解析HTML文档格式的文件,可以利用HTMLParser解析器。HTMLParser是一个纯的java写的HTML解析的库,不依赖于其它的java库,是目前很好的HTML解析和分析的工具,能根据需要抓取网页数据或改造HTML的内容。此模块主要完成抽取信息的定位,即确定所需抽取的信息块在文档中的位置。
在完成信息定位后,根据定义的抽取规则中的正则表达式来按字段析取出所需要的数据。正则表达式(Regular expression)是一种可以用于模式匹配和替换的强有力的工具。一个正则表达式就是由普通的字符以及特殊字符(称为元字符)组成的文字模式,它描述在查找文字主体时待匹配的一个或多个字符串。正则表达式作为一个模板,将某个字符模式与所搜索的字符串进行匹配,从而可以按字段析取出所需要的数据。
3.数据组织模块。Web包装器完成的功能就是从半结构化的信息中抽取出结构化的数据并保存。因此,如何将抽取的数据以结构化的形式保存起来也是Web包装器的一个关键部分。而数据组织模块正是完成了对抽取结果的处理过程。我们使用XML格式来组织抽取结果,XML语言具有良好的数据存储格式、可扩展性、高度结构化以及便于与数据库交互,可以方便以后对抽取信息的进一步处理,如检索和分类等。
三、算法验证与结果分析
为了验证本文提出的Web包装器设计与实现方法的可行性、高效性及在Web信息集成中的应用,现针对清华大学、冶金工业、北京大学等出版社的新书推荐和发布网站的页面运用以上设计思想定义其抽取规则及Web包装器,进行图书信息抽取测试。用ce,te和fe来分别表示:已抽取出的正确信息个数、还没抽取出的正确信息个数和抽取出的错误信息个数;用R表示召回率也称查全率;P表示精度也称查准率,根据R、P计算公式得实验结果如表1所示:
从以上表中实验结果看出,此包装器的召回率(查全率)和精度(查准率)均可达到近100%。经分析,清华大学出版社由于其图书发布页面以列表形式显示。为了抽取其详细数据,利用二次抽取完成数据抽取,在抽取过程中一些图书信息定位不同造成一些图书信息未能抽取出来。但从整体实验结果来看,此Web包装器设计具有可行性和高效性。