admin 管理员组

文章数量: 1086019


2024年4月20日发(作者:prm30 10du2的工作原理)

维普资讯

第20卷 第1期 

2007年3月 

石油化工高等学校学报 

Vo1.2 0 No.1 

JOURNAL OF PETROCHEMICAL UNIVERSITIES 

Mar.2007 

文章编号:1006—396X(2007)01--0094—05 

基于单个XML文档结构的数据挖掘 

梅东霞 

, 

张晓明 

(1.北京化工大学,北京100029; 

2.北京石油化工学院,北京102617) 

摘要:提出了一种基于XML的结构进行数据挖掘的算法,该方法使用现有的XML解析3--具JAVA DOM 

对XML文件进行解析,形成XML文档树,把XML中的标签按照层次作为标记路径存储起来,再对标记路径进行 

关联规则挖掘,得到频繁事务。通过实验表明,只有当XML的结构呈不规则时,挖掘效率才会随最小支持度的增大 

而提高。 

关键词:XML文档;标记路径; 关联规则;数据挖掘;频繁事务 

中图分类号:TP82 文献标识码:A 

Data Mining Techniques for Structure of Single XML Document 

MEI Dong--xia 。。.ZHANG Xia0一ming 

(1.Beijing University of Chemical Technology,Beijing 100029,P.R.China; 

2.Beijing Institute of Petro—Chemical Technology,Beijing 102617,P.R.China) 

Received 17 November 2006;revised 25 December 2006;accepted 20 January 2007 

. 

Abstract: An algorithm based on structure of XML was proposed.XML was parsed using JAVA DOM in order tO get XML 

document tree.The label of XML was stored as label path.Then,frequent transactions were obtained through mining 

association rules on label paths.The results show that if only the structure of XML is anomaly,the efficiency will be improved 

when minimal support is increased. 

Key words:XML document;Path label;Association rules ̄Data mining;Frequent transaction 

Corresponding author.Te1.:+86—10—81292297;fax:+86—10—81292297;e--mail:zhangxiaoming@bipt.edu.cn 

XML文档作为一种特殊形式的数据库,对其进 

行数据挖掘成为人们研究的问题之一。面向XML 

文档的数据挖掘包括对XML结构上的挖掘和对 

的结点,可能会出现记录重复的问题,也就是数据冗 

余。通过对前人提出的算法进行改进,首先对单个 

XML文档使用DOM进行解析,形成文档树;然后, 

对每个叶子节点的路径进行收集,根据XML文档 

的各自特点,进行挖掘。 

XML内容上的挖掘两种[1 ]。对于前者,Jacky W 

w w等 探讨了将XML的查询语言与传统数据 

挖掘方法相结合来提取XML文档中的关联规则, 

也就是通过用Xquery来汇总数据集,进而实现 

Apriori算法。这种方法不需要对XML文档进行 

预处理及挖掘后处理,但是它的缺点是需要反复读 

1 挖掘方案设计 

1.1 XML文档的挖掘过程 

通过对XML文档进行分析研究发现,具有挖 

取XML数据库,因此效率很低。Qin Ding等[4 利 

用JAVA DoM把经过校验的XML进行解析生成 

掘价值的数据通常是那些出现频度较高的数据或数 

据类型,因此找出在文档中频繁出现的数据是挖掘 

的根本任务。由于XML文档可以看作是一个层次 

个对象树,然后把每个结点的子树作为记录进行 

收集并根据这些记录进行挖掘。但是在同一层次上 

收稿日期:2006—11—17 

树形结构,具体数据也就是树的叶结点,数据的存储 

必须由根结点沿着某条路径到叶结点而取得,因此, 

对XML文档的挖掘首先可以考虑通过挖掘其路径 

作者简介:梅东霞(1979一),女,河北张家口市,在读硕士。 

基金项目:北京市教育委员会科技发展计划面上项目 

(KM2005i0017006)。 

而得到;但是当每个数据的路径的都一样或者数据 

的路径的出现频率都相等的时候,就需要直接对叶 

维普资讯

第1期 梅东霞等.基于单个XML文档结构的数据挖掘 

结点数据进行挖掘。 

整个挖掘过程可分为2步:第1步首先对XML 

文档进行扫描解析,收集所有叶结点数据的路径作 

为事务,并对事务出现的频度进行统计。如果所有 

事务的出现频度都相等(在这里不考虑近似相等)就 

执行第2步;否则,直接对事务进行关联规则挖掘。 

第2步:把结构比较特殊的XML文档按照一定的 

算法映射到数据表中,再进行数据挖掘。根据参考 

文献Es]可知有关标记路径的概念。 

标记路径(1abel path)是一个结点序列(V。,V , 

V。,…,V ),是指从树的根到元素结点之间的有次 

序的结点的集合,V。为根结点,V 是V 的父结 

点,V 是V 的子结点,i一0,1,2…., 一1。当采 

用不包含通配符(*)、“//”及函数操作的Xpath简 

单路径表达式(simple path expression)来表示标记 

路径时,每个路径都从“/”开始,并以“/”分隔表示层 

次。XML文档及其对应的标记路径见图1。 

/Pe0ple/Pers0n/ID 

/Pe0ple/Pers0n/age 

/People/Person/income 

/People/Person/ID 

/Pe0ple/Pers0n/age 

/Pe0ple/Pers0n/income 

/Pe0ple/Pers0n/ID 

/Pe0ple/Pers【】n/age 

/Pe0ple/Pers【】n/educati【】n 

/People/Person/hours--per—week 

/Pe0ple/Pers0n/race 

Fig.1 XML document and label path 

图1 XML文档及其对应的标记路径 

在图1中,路径People/person/ID和People/ 

Person/age出现了3次,People/Person/income出 

现了2次,其余路径各出现了1次。如果频度阈值 

为2,People/Person/ID和People/Person/age的 

出现次数都大于频度阈值,则Peop1e/Person ID和 

Peop1e/Person/age为频繁路径。 

显然,XML文档可以被解析为由若干条事务组 

成。通过统计这些事务的出现次数,就可以得到超 

过指定频度阈值的数据,从而可以进行下一步的挖 

掘。 

1.2 收集XML文档的频繁路径 

为了实现这一目的,首先对XMI 文档使用 

JAVA DOM进行解析,利用递归的方法,依次得到 

每一笔事务。这时,要根据XML文档的组织方式 

来决定使用标记路径还是叶子数据进行下一步操 

作,这是因为XML文档标记开放性的特点所决定 

的,有可能出现通过标记路径无法判断哪些是频繁 

的,如图2所示。 

NO 

●_—— 

1 /transactl0ns/transactl0n/lterns/Itern 

2 

/transactions/transaction/items/item 

3 

/transactl0ns/transactl0n/ltems/item 

4 

/transactions/transaction/items/item 

5 

/transactl0ns/transactl0n/items/item 

Fig.2 Special XML and label path 

图2特殊的XMI 文档及其对应的标记路径 

在对XML文档的研究过程中,为简便起见首 

先忽略这些特殊情况,只讨论标记路径,为了便于后 

面对频繁路径的查找,采用哈希表的方式对路径进 

行存储,同时采用链地址法对地址冲突进行处理。 

在每个链表数据项中包含3个值,分别为路径名、路 

径的count值及哈希链指针(Hash Chain Pointer), 

如图3所示。 

当得到一个数据的路径时,如果该路径已经在 

哈希表中存在,则只需将其对应的路径count值加 

1,否则,将该路径加入哈希表,并设count值为1 

依次执行以上步骤,直到所有事务的路径都存储到 

哈希表中。 

在参考文献[63中,XML文档元素结点的名称 

维普资讯

96 石油化工高等学校学报 第2O卷 

通常为由英文字符及数字等组成的字符串,该算法 

0 1 2 3 4 5 6 

对之进行了改进,使用JAVA中的散列表进行处 

理,可以处理各种字符(包括汉字)组成元素结点的 

XML文档。图2中XML文档的散列结果如图3 

所示。 

Fig.3 Hash table storing label path 

图3存放路径的哈希表 

当所有的数据路径都被加入到哈希表中后,需 

要指定频度阈值,并重新对XML文档进行遍历,读 

人每一数据的标记路径,并在哈希表中寻找其所对 

应的count值。当某一路径count值大于预设的频 

度阈值时,则认为该路径是频繁的,否则为不频繁。 

1.3特殊结构的XML文档 

如图3所示,可以使用以上的哈希函数对图2 

中的XML文档采用哈希表的方式对路径进行存 

储,这个时候对于所有的叶子节点数据只有一条存 

储路径“/transactions/transaction/items/item”。 

所以,通过标记路径是无法判断哪些是频繁的。当 

出现这种情况,必须把哈希表中的每一个路径名作 

为一个属性名称映射到数据表中,然后再把叶子结 

点数据作为属性值写入对应的位置。这时就把基于 

XML文档的挖掘转换为一般的数据挖掘问题。 

2 算法设计 

2.1算法流程 

基于单个XML文档结构的数据挖掘,首先要 

从XML文档中读取出标记路径,并使用哈希表这 

种特殊的数据结构来统计标记路径出现的次数。哈 

希表的每一个记录包含两个属性,一个是标记路径, 

另一个是标记路径出现的次数。从XML文档中每 

读取一个标记路径首先要判断哈希表中是否存在以 

此为标记路径的一项,如果存在就直接给对应的次 

数加1,如果不存在就加入一个新项,以此为标记路 

径,并且对应的次数置为1。读完XML文档中所有 

的标记路径,就判断哈希表中的项数是否为1,如果 

为1说明这个XML文档从结构上不适合做基于结 

构的数据挖掘;如果不为1,根据频度阈值从哈希表 

中提取频繁路径,如图4所示。 

是 

Fig.4 Algorithm flow 

图4算法流程 

2.2算法描述 

功能:对XML文档D进行关联规则挖掘得到 

频繁事务集T。 

输入:XML文档D。 

输出:频繁事务集T。 

步骤描述: 

①extract(D,Tp);//把XML文档D的标记 

路径提取出来,形成标记路径表Tp 

②put(Tp,HT);//把标记路径表Tp中的数 

据存储到哈希表HT中 

③if(HT.GetltemNm()一一1)//如果哈希 

表中只含有一项 

④extl(D,Td)//把XML文档的数据存储成 

二维数据表形式Td,便于进行进一步处理 

⑤else 

⑥T—get(HT,0)//根据预设的频度阈值0, 

从哈希表HT中得到频繁事务集T 

算法extract(D,Tp) 

输入:XML文档D。 

输出:生成的标记路径表Tp(Tp为XML文档 

树中离根节点最远的非叶子节点组成的路径表)。 

步骤描述: 

T—parse(D)//用解析器DOM把XML文档 

D生成一棵树T 

TraverseTr(root,elementname,Tp)//对以 

root为根节点的树进行递归遍历,在遍历过程中生 

成Tp(Tp中包含T中所有非叶子节点组成的标记 

路径);element—name为根节点名称。第一次调 

用,root为T的根节点。 

{ 

for each childnode of root//对root的每个子 

节点进行遍历 

维普资讯

第1期 梅东霞等.基于单个XML文档结构的数据挖掘 97 

if childnode instance of element如果childnode 

是非叶子结点,也就是它还有子节点,调用递归函数 

{ 

childname—elementname+”/”+childname: 

∥childname为childnode节点的名称 

writeTo(childname,Tp)∥把每个非叶子节 

点的路径名写入Tp 

TraverseTr(childnode,childname,Tp) 

} 

} 

算法put(Tp.HT) 

输入:标记路径表Tp,哈希表HT。 

输出:填充了频繁路径统计表的哈希表HT。 

步骤描述: 

for each transaction i in Tp do 

if i.path in HT then∥如果标记路径已经在哈 

希表中存在 

i.count—i.count+1;//对应路径的数值 

count加1 

add i.count in HT 

else 

add i.path in HT 

i.count一1; 

end if 

Pnd for 

3 实验设计与结果分析 

3.1实验方案设计 

为了验证该算法的有效性,使用JAVA语言编 

程实现了该算法。XML文档使用JAVA DOM进 

行快速解析,生成文档树。实验中采用了3种类型 

的测试数据。实验的测试环境是:P4 CPU 2.66 

GHz,256 Mb内存,Windows Server2003平台。 

dataset I(大小561 kb),datasetⅡ(大小1 090 kb), 

datasetⅢ(大小1 634 kb)是数据挖掘中常用的数据 

库census转换而成的,共有14个属性值,可解析记 

录数最大达到20 000条;tom—err(大小134 kb),all 

well(大小205 kb),hamlet(大小274 kb)是莎士比 

亚的全集改变成的XML文档;haixia2(大小20 

kb),haixia(大小31 kb),sports(大小46 kb)是RSS 

的网页生成的XML文档。 

3.2实验结果及其分析 

以上3种类型的XML文档是目前比较常见的 

XML文档。图5和图6是以上各文件在不同支持 

度下的执行效率。图5上边3条线是对由关系数据 

表census转换而成的XML进行结构挖掘的效率 

图,考察了3个不同大小的XML在5个不同的最 

小支持度下的运行结果,3条线几乎是平行的。图5 

下边3条线是对由莎士比亚全集改编而成的XML 

中的3个片断进行考察,它们结构相似,大小不同, 

由图示可知,3条线已经不再有平行的趋势,而分别 

稍显向下的趋势。 

{ 

重 

蕾 

蚪 

最小支持度.% 

Fig.5 Efficency on census and Shakespeare 

图5莎士比亚文档和census的执行效率 

图6是对通过RSS下载的XML,它们是直接 

用来转换成html网页的,所以结构最不规律,最具 

代表意义。同样考察了3个XML分别在5个最小 

支持度下的执行效率,这时已经有明显的下降趋势。 

{ 

冒 

蕾 

、 

} 

0 2O 40 60 8I1 1【10 

最小支持度,% 

Fig.6 Efficency on XML downing through RSS 

图6使用RSS下载的XML文档执行效率 

从图5,6分析得到只有RSS网页得到的XML 

文档,随着支持度的减小执行效率有明显提高的趋 

势;而其它两种类型受最小支持度的影响qt ̄4,;3个 

实验唯一的共同点是执行效率只受文档本身大小的 

影响。由此可见,对一个XML文档进行数据挖掘, 

首先要考虑挖掘的目的:如果要在XMI 中发现关 

联规则,那么必须要考虑它的结构特点是否适于进 

行基于结构的数据挖掘。因为对于由关系数据表和 

人工改编而成的XML文档,它们的一个共同特点 

就是结构过于规则和对称,而这样的数据是不利于 

挖掘出高于某个最小支持度的频繁集的,因为它受 

支持度的影响很小。假设是要考察XML文档的结 

构,那么这种不受支持度影响的特点正好有利于考 

察两个XML文件结构的相似度[7 ]。因此,基于 

XML结构的数据挖掘可以适用于多个领域。 

维普资讯

98 石油化工高等学校学报 第2O卷 

参 考 文 献 

[1] 潘有能,邓三鸿.基于XMI 和关联规则的Web挖掘研究[J].现代图书情报技术,2004,112(7):30—34、 

chi N,Rebecca W

E2] 

Ri,Anton T.Data mining and XMI documents:proceedings of the international conference on internet 

computing[C].USA:Is.n.],2002:660—666. 

llian D.Mining association rules from XMI data using xquery:proceedings of the second workshop on 

[3] 

Jacky W W W,Gi

Australian information security,Data mining and web intelligence.and software internationa1ization[c].USA:Es.n.], 

2004,32:169—1 74. 

n Ding,Kevin Ricords.Deriving general association rules from XMI data:proceedings of the ACIS fourth 

[4] 

Qi

international conference on software engineering,Artificial intelligence,Networking and para11e1/distributed computing 

(SNPD03)[c].Germany:Is.n.],2003:348—352. 

概念与技术[M].坎伯.范明译.北京:机械工业出版社,2001. 

[5] 

韩家炜.数据挖掘:

[6] 李晓明,凤旺森.两种时URL的散列效果很好的函数[J].软件学报,2004,15(2):179—184. 

2003,26(9):111 6—1122. 

[7] 

郑仕辉,周傲英,张龙.XML文档的相似测度和结构索引研究[J].计算机学报,

[8] 赵妍.逢玉俊,文东丽.从样本数据中提取模糊规则的算法研究[J].石油化工高等学校学报,2004,17(3):83—88. 

(Ed.:WYX,Z) 

(上接第76页) 

[3]Rifffat S B,Gan G,Smith S.Computational fluid dynamics applied tO ejector heat pumps[J].App1.therm.engng. 

1996.16(4):291—297. 

 a1.Ejector CFD modeling with real gas mode1.In:Mechanical engineering network of 

[4] 

Rusly E,Lu A,Charters W W,et

thailand the 16th conference[C].Is.1.]:Is.n.]2002:15O一155. 

9(4): 

[5] 

吴双应,王彬,张培杰,等.雾化角时造粒塔内颗粒飞行及换热影响的数值模拟[J].石油化工高等学校学报,2006,1

8O一84. 

等.蒸汽喷射器流动参数与性能的数值分析[J].热科学与技术,2005,4(1):52—57. 

[6] 

李海军,沈胜强,张博,

 

[7] 

邢桂菊,李文忠.固定结构的气体喷射器效率研究[J].热能动力工程,2000,15(5):467—469.

558—561. 

[8] 

沈胜强,李素芬,夏远景.喷射式热泵的设计计算与性能分析[J].大连理工大学学报,1998,38(5):

(Ed.:WYX,Z) 


本文标签: 路径 文档 进行 标记 挖掘