XML 数据挖掘,第 1 部分: 考察几种 XML 数据挖掘方法

考察并解决静态和动态文档方面的难题

XML 应用于很多不同领域的数据表示、存储和交换。本系列探索 XML 数据分析的一个方面:XML 数据挖掘。在这第一篇文章中,简要介绍一些从 XML 文档挖掘隐藏知识的技术和方法。了解挖掘数据、信息的层次结构以及元素之间的关系。后续文章将介绍挖掘 XML 关联规则和集群化多个版本的 XML 文档。

Laura Irina Rusu, PhD MACS CP, 开发团队主管,DW 和 BI 顾问, Computershare Technology Services Australia, La Trobe University Australia

Laura Irina Rusu 的照片Laura Rusu 于 2009 年在澳大利亚墨尔本拉筹伯大学完成了她的计算机科学博士学位,研究的课题是 XML 数据仓库和挖掘。她在许多 国际性会议 上提出了好几种创新的 XML 数据仓库和挖掘技术,还在同行认可的国际刊物上发表过论文。她编写了 mining association rules from XML documents 书中的一章,还编辑了一本关于 data mining and warehousing technologies 的书。Laura 具有学院、研究和 IT 行业等各种角色的经验。



2011 年 12 月 27 日

简介

XML 日益成为很多领域数据表示、存储和交换的首选语言 — 从科学技术到金融服务、医疗系统、生物研究、航空、国防,等等。用 XML 表示的信息量急剧增加。很多人在寻找解决 XML 文档存储和分析方面问题的切实可行的技术。在这个由三部分组成的系列文章中,将探索 XML 数据挖掘的几个方面。

本文将了解对 XML 数据挖掘可用的研究和技术。探索从静态和动态 XML 文档挖掘关联规则方面的难题。

本系列的后续文章将介绍挖掘 XML 关联规则和集群化多个版本的 XML 文档。


XML 挖掘

常用缩略词

  • W3C:万维网联盟
  • WSDL:Web 服务描述语言

XML 挖掘包括从 XML 文档挖掘结构和内容。结构挖掘 其实是挖掘 XML 模式,包括内部结构挖掘(挖掘 XML 文档内部的结构)和结构间挖掘(挖掘 XML 文档之间的结构)。内容挖掘 涉及内容分析和结构清理。内容分析是指分析 XML 文档中的文本。结构清理(structural clarification)是指根据内容确定类似的文档。

静态 XML 文档的内容和结构不会随时间而改变。例如,包含会议演示内容细节的 XML 文档就是一个静态文档。动态(或者多版本的)XML 文档会随着时间改变结构或内容。例如一个在线书店,如果它的内容以 XML 格式表示,就会每天随着网上客户的行为而改变。

静态 XML 文档不同于动态 XML 文档的主要特征有:

时间跨度的表示
静态 XML 文档不包含指明文档有效期的元素。相反,动态 XML 文档则至少包含一个指明特定版本文档有效期的元素。
所呈现信息的永久性
静态 XML 文档一旦创建,其中的信息就总是有效的。相反,某个版本的动态 XML 文档只在时间跨度元素指定的期间内有效。一旦出现新的版本,前一版本中包含的信息就被取代。

图 1 展示了一个 WSDL 格式的静态 XML 文档的模式示例。

图 1. 静态 XML 文档的模式
示例图展示了一个静态 XML 文档的模式

基于 图 1 中模式的 XML 文档实例的内容永远不会改变,因为一旦发布,特定会议上演示的论文就不会被修改。

图 2 展示了一个 WSDL 格式的动态 XML 文档的模式示例。

图 2. 动态(多版本)XML 文档的模式
示例图展示了一个动态 XML 文档的模式

图 2 中,<AsAtDate> 节点包含每个 XML 文档版本中数据的有效期间。不使用单个日期节点来指定有效性时间,也可以使用两个日期节点来指定有效性日期范围(例如,<from_date><to_date>)。一般来说,变更使得 XML 文档成为动态的。给定一个初始版本的 XML 文档,它的每组变更都产生一个新的 XML 文档。新的 XML 文档将被看作旧版本的新版本。


挖掘静态 XML 文档

本节将回顾从静态 XML 文档挖掘关联规则以及集群化静态 XML 文档的几种方法。

从静态 XML 文档挖掘关联规则

从静态 XML 文档挖掘关联规则的大部分工作都使用基于 Apriori 算法的面向 XML 的算法。但是也有几种非基于 Apriori 的方法。

Apriori 算法

关联规则的概念是 1993 年引入的,并在 1994 年得到更详细的描述(参见 参考资料)。例如,有这么一个关联规则:“如果用户购买产品 A,他/她也会购买产品 B,这发生在超过 80% 的交易中。”该规则的支持度是 80%,这意味着 80% 的交易包含商品 A 和 B。

在挖掘过程的开始,用于找到关联规则的算法设置最小支持度和置信度。然后,确定所有频繁 k - 项集,从 k = 1(项集只有一项)开始,并循环通过交易集合,计算出支持度和置信度。如果针对所需的最小支持度和置信度,它们不是有效的,那么 k-项集被认为不是频繁的,并被删除。

这一算法就是所谓的 Apriori 算法,被应用于很多后续方法,以发现关联规则。

发现关联规则涉及到找到给定数据集中条目之间同时出现的重要关系。关系应该出现得足够频繁,以被看作是规则;规则必须对数据集具有支持度和置信度。

如果关联规则的概念扩展到 XML 文档,就是在寻找 XML 文档部分之间的关系。XML 文档的一部分可以是简单节点,也可以是复杂节点(由其他简单节点组成)。任何复杂节点都可以被看作较大的树(整个 XML 文档)中的一个子树。因此,从 XML 文档中挖掘关联规则需要找到 XML 文档子树(子结构)之间的关系。下面的列表概述了三种不同的方法。

  • Wan 和 Dobbie 提出的一种 XML 关联规则抽取算法(参见 参考资料)实际上是 Apriori 算法的一种使用 XQuery 语言的实现。使用这种算法,XML 数据可以被直接挖掘,无需预先处理 XML 文档。无需映射到一种不同的格式。但是使用 XQuery 实现时,挖掘过程中频繁项集的发现比使用 C++ 实现时慢。在 XQuery 实现中,算法需要的更新功能有限。
  • Daniele Braga 和同事提出的方法(参见 参考资料)基于 Apriori 算法,以三个主要步骤挖掘关联规则:预处理数据、抽取关联规则和后期处理关联规则。他们介绍了以下概念:
    • 关联规则的概念
    • 上下文选择
    • 主体
    • 头部
    在关系 X -->Y 中,X 是关联规则的主体Y 是头部。主体和头部总是根据关联规则的上下文来定义的。支持度和置信度将被计算,并且只跟已建立的上下文有关。图 3 展示了一个表示为树的 XML 文档示例,树中标示有上下文、主体和头部。
    图 3. 具有上下文、主体和头部的 XML 文档
    具有上下文、主体和头部的 XML 文档的示例图
  • Ling Feng 和同事提出的技术(参见 参考资料)不基于 Apriori 算法,提出了一种不同的将事务 的概念映射到 XML 文档树型结构的方法。目标是从 XML 文档集合而不是单个文档中发现关联规则。因此,每个 XML 文档(树)都相当于一个数据库记录(事务),其中每个 XML 片段(子树)相当于事务中的一个项。此项工作试图发现 XML 文档中多个树之间而不是简单结构的项之间的关联规则。每个树被命名为一个树结构的项,是一个有根的已排序树,其节点分为:基本节点(没有边)和复杂节点(内部节点,有一条或多条边)。

基于 Apriori 和非基于 Apriori 的方法之间的主要区别在它们使用事务和项等概念的方式上。基于 Apriori 的算法通过为特定路径查询 XML 文档而抽取出将被挖掘为一系列节点的项来,非基于 Apriori 的算法将 XML 文档中的每个子树(子结构)都看作一个项。

对于所挖掘的文档,不同的算法允许不同的复杂度(不同的嵌套级别)。也有可能您需要挖掘的只是单个 XML 文档,或者是从多个 XML 文档抽取关联规则。

这里描述的基于 Apriori 的 XML 关联规则挖掘技术适用于任何复杂度的 XML 文档,只要事先知道结构则可。对于复杂且不对称结构的 XML 文档,可以考虑在 XML 数据上使用一组转换,来简化挖掘上下文的识别。在有些算法中,您需要在算法的开始定义关联规则的上下文、主体和头部。表 1 中总结了这些方法以及各自的强处和弱点。

表 1. 从静态 XML 文档挖掘关联规则
工作基于 Apriori 的挖掘算法非基于 Apriori 的挖掘算法从单个 XML 文档挖掘关联规则从多个 XML 文档挖掘关联规则从简单 XML 文档挖掘关联规则从复杂 XML 文档挖掘关联规则
Wan 和 Dobbie,2003;Wan 和 Dobbie,2004YNYNYN
Braga 等,2002;Braga 等,2003YNYYYY
Feng 等,2003NYYYYY

集群化静态 XML 文档

静态 XML 文档可以基于每种技术采用的相似性类型(结构的、语义的或组合的)而被集群在一起。

基于结构相似性的集群主要是基于文档结构之间的相似性将多个 XML 文档组合在集群中。结构化 方法包括:

  • S-GRACE 算法(参见 参考资料)使用结构图(s-图)按结构来集群化 XML 文档。s-图是一个方向图,提供 XML 文档中节点和边的摘要,以及父节点和子节点之间的关系。S-GRACE 在从一组给定的文档中抽取的 s-图上应用一种层次集群算法。
  • De Francesca 和同事提出的一种通用、聚集的层次集群算法(参见 参考资料)解决了参数方式中的 XML 集群化问题。给定一个适当的距离单位,该算法找到最佳的集群代表。集群代表 是一个镜像集群结构内容的 XML 文档。因此,任务主要是通过树匹配、树合并和已合并树的剪枝来计算集群代表。

除了结构信息之外,每个节点还有一种语义含义。您既可以基于结构相似性,也可以基于语义相似性,来集群化 XML 文档。

  • Yoon 提出了一种拆散每个需要被集群化到 ePath 中的 XML 文档的方法(参见 参考资料)。ePath 是从 XML 文档根开始的完整路径,其中嵌套最深的元素只能是简单元素(包含一个值,不包含子元素)。

    然后会构建一个叫做 BitCube 的三维位图索引。维度是文档列表、从文档抽取出的 ePath 列表和从所有 ePath 的简单内容抽取出的单词列表。然后当用户按特定条件搜索时,您可以从这个多维数据集(cube)确定,哪些文档具有与条件(以及其他内容)相关的单词,并加速检索过程。

  • Shen 和 Wang 提供的一种技术(参见 参考资料)从 XML 文档抽取宏路径,这可能基于也可能不基于 XML 模式,其中每个宏路径都具有三个元素:一个路径序列、一个属性序列和一个内容序列。这些宏路径之间的类似度表明所分析的 XML 文档之间的类似度。

基于距离的集群化技术是结构化方法的扩展,因为它们集群化时也考虑给定 XML 文档集的结构和语义特性。基于距离的集群化技术具有一个特定的特征:它们使用树编辑距离 概念。

树编辑距离

给定两个表示为树的 XML 文档,它们之间的编辑距离是能够将一个文档转换成另一个文档且总成本最低的编辑操作集合。基于距离的集群化方法之间的区别在于每种方法为编辑树距离定义可接受的编辑操作的方式上。

  • Theodore Dalamagas 和同事提出的技术(参见 参考资料)将 XML 文档看作已排序的树。他们的算法减少嵌套和重复,然后计算结构性摘要的每个部分之间的树编辑距离。集群以结构性摘要之间的距离为基础。
  • Nierman 和 Jagadish 提出的方法(参见 参考资料)通过在 XML 树上使用五种不同的操作来计算两个 XML 文档之间的距离:relabelinsertdeleteinsertTreedeleteTree。最后两种操作允许 XML 文档所有部分的剪切和粘贴。允许的编辑操作序列也可由动态编程算法定义并用来计算给定文档集中 XML 文档部分之间的距离。
  • 由 Xing、Xia 和 Guo 提出的一种更新的技术(参见 参考资料),通过计算 XML 文档和其模式之间的编辑距离,来计算两个 XML 文档之间的相似性。首先从每个文档中抽取出模式,然后两个 XML 文档之间的距离被计算为每个 XML 文档和抽取自另一个 XML 文档的模式之间的距离的平均值。

表 2 总结了各种集群化静态 XML 文档的方法。

表 2. 集群化静态 XML 文档
工作计算出的距离作为一个编辑操作的集合仅评估结构相似性评估结构和语义相似性仅评估语义相似性
De Francesca 等,2003NYNN
Liang 等,2004NYNN
Yoon 等,2001NNYN
Shen 和 Wang,2003NNYN
Nierman 和 Jagadish,2002YNYN
Dalamagas 等,2004YYNN
Xing 等,2007YYNN

挖掘动态 XML 文档

挖掘动态 XML 文档为开发人员带来了新的挑战。在实际的应用程序中,XML 文档的多个连续版本之间的区别各不相同,所以用于静态 XML 文档的挖掘技术无法复制到动态 XML 文档上。

从动态 XML 文档发现关联规则

从多版本 XML 文档发现关联规则还处于早期阶段。Weighted-FPgrowth 算法(参见 参考资料)解决了这个问题。该算法用三步从 XML structural deltas(即XSD-AR)抽取关联规则:

  1. 构建结构性 deltas 数据库。
  2. 发现常用子树模式。
  3. 抽取关联规则。

XML 结构性 delta 是动态 XML 文档各个连续版本之间的结构差异。Weighted-FPgrowth 算法也定义了更改度、更改频率和常用子树模式等概念。

我提出两种不同的方式来从动态 XML 文档挖掘关联规则(参见 参考资料):

  • 有趣的知识(这里是关联规则)来自 XML 文档的历史版本集合。

    考虑在给定时间段内影响多版本 XML 文档的更改(包括结构和内容方面的更改)。您可以动态决定所涉及的 XML 文档的元素或子结构之间最当前的有效关联规则,无需在最新的 XML 文档版本上运行完整的发现算法。

  • 关联规则抽取自 XML 文档各个版本之间的实际更改。

    查看 XML 文档各个版本之间的实际更改(存储为 delta 文档或合并的 delta 文档),并找出它们之间的关联规则。

集群化动态 XML 文档

跟集群化动态 XML 文档有关的成果还不是很多。下面列出了两种方法。

  • 我和同事提出的一种技术(参见 参考资料)是在集群化的动态 XML 文档更改之后重新评估它们之间的距离,并在文档更改之前计算更改对距离的影响。
  • 另一种由 Nayak 和 Xu 提出的技术(参见 参考资料)是集群化 XML 文档系列。给定一个 XML 文档系列(或者流),使用级别结构 计算每个入站 XML 文档和现有集群之间的距离。这个距离通过将入站文档的节点映射到现有集群的节点而确定。这样,相似性是在集群级别而不是集群中成对的单个文档上确定的。

表 3 总结了挖掘动态 XML 文档的方法。

表 3. 挖掘动态 XML 文档
工作从多个版本挖掘关联规则从 delta 挖掘关联规则集群化 XML 文档系列集群化多版本(动态)XML 文档
Chen 等,2004NYNN
Nayak 和 Xu,2006NNYN
Rusu 等,2006a;YNNN
Rusu 等,2006b;NYNN
Rusu 等,2008NNNY

摘要

本文中,学习了有关 XML 数据挖掘的技术,以从 XML 文档发现关联规则或者基于结构或内容集群化 XML 文档。大部分技术只处理静态 XML 文档。但是,当今广泛可用的动态信息需要也可以处理动态(多版本)XML 文档的技术。

继续阅读本系列文章的第 2 部分,将详细介绍挖掘 XML 关联规则。

参考资料

学习

获得产品和技术

讨论

条评论

developerWorks: 登录

标有星(*)号的字段是必填字段。


需要一个 IBM ID?
忘记 IBM ID?


忘记密码?
更改您的密码

单击提交则表示您同意developerWorks 的条款和条件。 查看条款和条件

 


在您首次登录 developerWorks 时,会为您创建一份个人概要。您的个人概要中的信息(您的姓名、国家/地区,以及公司名称)是公开显示的,而且会随着您发布的任何内容一起显示,除非您选择隐藏您的公司名称。您可以随时更新您的 IBM 帐户。

所有提交的信息确保安全。

选择您的昵称



当您初次登录到 developerWorks 时,将会为您创建一份概要信息,您需要指定一个昵称。您的昵称将和您在 developerWorks 发布的内容显示在一起。

昵称长度在 3 至 31 个字符之间。 您的昵称在 developerWorks 社区中必须是唯一的,并且出于隐私保护的原因,不能是您的电子邮件地址。

标有星(*)号的字段是必填字段。

(昵称长度在 3 至 31 个字符之间)

单击提交则表示您同意developerWorks 的条款和条件。 查看条款和条件.

 


所有提交的信息确保安全。


static.content.url=http://www.ibm.com/developerworks/js/artrating/
SITE_ID=10
Zone=XML
ArticleID=783085
ArticleTitle=XML 数据挖掘,第 1 部分: 考察几种 XML 数据挖掘方法
publish-date=12272011