基于DOM 的Deep Web查询接口属性抽取方法
石 龙1,强保华1,2,何 倩1,吴春明2,谌 超1
【摘 要】属性抽取主要基于单元素属性抽取,而多元素属性抽取的研究较少。针对多元素组成属性情况进行研究,提出一种基于查询接口DOM 结构的属性抽取方法,该方法将查询接口解析成DOM,基于DOM 节点提取查询接口上对应的表单元素,对从查询接口上提取获得的元素集合进行二次聚类,挖掘元素之间的组合关系,最终将元素组合形成属性。这种方法能很好地抽取接口上的单元素属性和多元素属性,实验结果表明了方法的有效性。 【期刊名称】桂林电子科技大学学报 【年(卷),期】2012(032)006 【总页数】5
【关键词】属性抽取;Deep Web;查询接口;DOM 节点;表单元素 Web分为Surface Web和Deep Web。Deep Web又称深网,主要指深藏于网络数据库(WDB),只能通过动态网页技术访问的Web资源集合[1],其所蕴涵的信息量是Surface Web的500倍左右[2],而且仍以惊人的速度增长。为此,Deep Web信息获取及集成成为当前网络信息处理领域的研究热点问题之一。
查询接口是获取Deep Web信息的有效通道,而将众多分布在不同站点上同一领域,通过模式抽取与匹配形成统一的集成查询接口,是Deep Web信息获取的必要前提。查询接口模式主要由一组与领域相关的属性集合组成[3],所以模式抽取的主要工作是对属性的抽取。因此,准确地查询接口属性抽取成为集成查询接口生成的关键。
关于查询接口模式抽取以及属性抽取相关内容的研究较多[4-8]。属性抽取最先使用的方法是文法分析[4],这种方法假设所有查询接口都由隐藏的文法构建而成,通过构建解析树对整个查询接口进行解释,将表示属性的各个元素组合方式识别出来,其中,属性抽取准确率为80%,召回率为86%。文献[5]基于表单HTML 编写风格和页面布局这2 个启发式信息,使用浏览器提供的API函数计算表单上文本信息与控件元素的距离,选择距离最近的文本作为元素标签文本信息,最后以三元组表示1个带有实例信息的属性进行抽取。实验结果显示属性抽取平均准确率达到85%,平均召回率达到93.8%。文献[6]则利用N-Gram 算法计算文本块与输入控件之间的关联程度,最终实现属性抽取。
查询接口属性由表单上的单元素或多元素组合而成。但是,文献[5-6]并没有对多元素组合属性抽取进行详细描述,而文献[4]虽然对多元素组合的属性进行抽取,但这种方法的准确率和召回率比较低,还不能达到实际应用程度。本研究对多元素组成属性的问题进行研究,提出一种基于查询接口表单DOM(document object model)的属性抽取方法,通过解析表单HTML 获取DOM 节点集合,提取表单查询元素DOM 节点,将查询元素进行二次聚类,最终实现属性抽取[9-10]。
1 属性抽取相关概念
查询接口一般指可以填写和提交查询的、能够访问Deep Web网络数据库的Form 表单(简称表单),它是获取Deep Web信息的通道。图1所示是一个查询接口的界面,接口表单中所包含的所有用户看得见的用以与Web服务器交互的控件、功能控件和一些文本信息等,即表单元素。
定义1 查询元素,指表单元素中能与Web服务器交互的用以查询的控件。主要类型为text、radio及checkbox的INPUT 控件和SELECT 控件,以下统称为元素,其表示形式为
其中:label是用以描述查询元素的标签文本;ename为控件名;type为控件的类型;defval为控件的默认值,若为文本控件,则一般为空;valdomain为控件取值的值域,如下拉列表的所有值。
定义2 查询接口属性指表单上的单元素或元素组合,表示为
其中:name表示属性名;eset为元素组合,即属性所包含的元素集合。 DOM,即文件对象模型指以面向对象方式描述的文档模型。根据W3C DOM 规范,DOM 是HTML与XML的应用编程接口,它将整个HTML(或XML)页面映射为一个由层次节点组成的文件。简单而言,HTML 的任何标签都映射成为一个DOM对象(DOM 节点)。因此,图1所示的查询接口中的所有元素在浏览器中被一一映射为DOM 节点。
2 属性抽取方法描述
以图1的航空领域的查询接口为例进行属性抽取问题的描述。图1中查询接口所在浏览器映射成的DOM 结构如图2所示。
查询接口表单中任何元素在浏览器解析后都被映射成DOM 节点,因此,使用浏览器提供的API函数对查询接口表单进行解析,获取其文档对象模型DOM,并从这些DOM 节点中提取查询元素对应的控件节点,从而得到1个查询元素DOM 节点集合。以集合中的1个节点表示1个元素,通过二次聚类算法对DOM 树节点元素进行归并形成属性,从而实现对查询接口属性的抽取。 2.1 查询接口元素预聚类