3.1 引言
研究XML信息检索系统一方面应当保留简单的查询表达式以满足大多数用户对XML搜索引擎的使用要求;另一方面,XML文档不同于结构严格的文档,不同的XML文档相差很多,例如,DBLP数据的XML文档是以数据为中心的,而莎士比亚剧的XML文档则是以文本为中心的,XML信息检索系统必须考虑XML文档的嵌套结构以及由标签限定的数据值的语义、文档的多样性、结构的复杂性,以及返回结果的力度。
3.2 XML文档及其结构语义
3.2.1 XML 文档树模型
对于一棵XML文档树的操作主要是遍历。遍历是按照某种搜索路径访问树中的每个节点,使得树中的每个节点均被访问一次且仅被访问一次。树的遍历算法主要有两种:先根遍历(或称深度优先遍历)、和后根遍历(或称广度优先遍历)。
3.2.2 文档结构语义概念
XML文档树,树中的一个节点代表现实世界中的一个实体,处于同一层的具有相同标签的两个不同节点对应于具有相同类型的两个不同实体。
定义1:两个节点互连关系及语义相关概念
令T为一棵XML文档树,n和
n0
为T中的两个节点。n和
n0
间的最短无向路径由n和
n0
的最底层(离根节点最远的)公共祖先分别到n和
n0
的路径组成。把这两条路径组成的书表示为关系树
T|n,n0
。当n和
n0
满足以下两条件之一时,称n和
n0
是互连的:
1)
T|n,n0
不包含两个具有相同标签的不同节点;
2)
T|n,n0
中唯一具有相同标签的两个不同节点为n和
n0
本身。
定义2:语义相关的一组节点
全相关:R中的任意节点对是语义相关的。
星型相关:N中的任意节点对都有
(n1,n2)∈R
星节点:对所有节点n∈N,有一个节点
n∗∈N使节点对(n∗,n)∈R
。
定义3:扩展两个节点互连关系及语义相关概念
令T为一棵XML文档树,n和
n0
为T中的两个节点。n和
n0
间的最短无向路径由n和
n0
的最底层(离根节点最远的)公共祖先分别到n和
n0
的路径组成。把这两条路径组成的书表示为关系树
T|n,n0
。当n和
n0
满足以下两条件之一时,称n和
n0
是互连的:
1)
T|n,n0
不包含两个具有相同标签的不同节点;
2)
T|n,n0
中唯一具有相同标签或相似类型的两个不同节点为n和
n0
本身。
定义4:定义清晰的XML文档
任何一个节点的标签都不与其祖先节点的标签重名,标签相同的不同节点代表的实体类型相同,如果它们有不同的祖先节点,则层次相同的祖先节点视为同类型的或相似类型的。
3.3 XML语义检索
3.3.1 查询表达式形式
XML语义检索系统的查询式是对关键词列表的扩展,除了包含特定关键词外,还允许用户输入标签或关键词-标签组合,这里的标签以及关键词-标签组合是可能出现在匹配文档中的标签或关键词-标签组合。
3.3.2 查询语义
为了满足用户的查询请求表达式Q,首先查询表达式Q中的每个查询项必须满足,其次,满足查询表达式Q中各查询次的XML元素之间必须是语义相关的。
1.满足查询项
设n为一棵XML文档树T中的节点,如果节点n的标签为1且其后裔节点的值包含关键词k,称节点n满足查询项1:k;如果节点n的标签为1,称节点n满足查询项1:;如果节点n为叶子节点且其值包含关键词k,称节点n满足查询项:k。
2.语义相关的查询结果
定义5 语义相关结果
如果节点序列
N=n1,…,nm
中的节点为星型相关结果或全相关结果,则称N为查询Q的星型相关结果或全相关结果,此时N即为Q的一个语义相关结果。
定义6 限定星型相关
给定一组节点,在该节点集中层次最高(离根节点近)的节点为一个星节点时,称该节点集满足限定的星型相关。满足限定星型相关的节点集也是语义相关的。
3.查询结果范围的确定及显示
设
(n1,n2,n3,…,nk)
为一个语义相关的节点集,其对应的查询结果范围为以这些节点的最底层公共祖先节点为根节点的字数所代表的XML片段。
4.查询推荐
对于只包括关键词的查询项,即形为:k的查询项,由于用户提供的信息太少而影响检索准确率和检索效率,因此利用查询请求推荐技术对其进行扩展,将符合该查询项的叶子节点和标签列出,供用户选择确认。
3.4 XML语义搜索理论基础——多节点间予以相关的判断规律
命题1:如果n_^*∈N(t_i),而且
n∗1,n∗2
是兄弟关系,n∈N(
tj
)且n不为
n∗1
的子孙,则如果
(n∗1,n)∈R
,则有
(n∗2,n)∈R
,如果
(n∗1,n)∉R
,则有
(n∗2,n)∉R
。
命题2:设N (ti) 为匹配节点集中层次最高的,即N( ti )为可能的星节点集。已知节点 n∗1、n∗@∈N(ti) ,且 n∗1、n∗2 不为兄弟关系;节点n∈N (tj) ,R为节点相连关系。如果 (n∗1,n)∈R ,则 n∗2和n 的相连关系或者不需要判断或者有 (n∗2,n)∉R .
3.5 XML语义检索的索引结构
3.5.1 倒排序索引技术
在传统的倒排序技术中,索引表要保存的最重要的信息就是文档中关键词项的信息,即某一个关键词项在哪篇文档中出现,出现了几次,以及出现的位置。当用户提出查询请求的时候,搜索引擎在索引文件中找到根据用户要求形成的关键词,并根据此关键词的指针表把此关键词所存在的文档返回给用户。
3.5.2 新的XML索引结构
在已有XML索引结构基础上重点研究了XML结构信息的索引,提出了适用于基于“标签-关键词”的语义检索系统的索引结构,主要包括倒排元素标签索引(ETI),倒排元素值索引(ECI)及节点层次路径索引(NLPI)。
3.6 XML快速语义搜索算法
XML语义搜索包括两步,一是对各查询项从索引表ETI和ECI中搜索匹配节点,二是对各匹配节点进行语义相关的判断。
下面是语义搜索的算法:
输入:Q(c1……ck),ETI,ECI,NLPI //与c1匹配的节点为星节点
输出:answer //语义相关结果
算法:
answer=Selected node from ETI,ECI,NLPI that satisfying c1order by docID,nodeID;
For each term ci in Q(c2,…,ck){
Group=Selected nodes from ETI,ECI,NLPI that satisfying ci order by docID,nodeID;
pos=0;
Candanswer=null;
find=false;
for each element ej in answer{
nj=(ej); //answer中第j个元组的星几点
if(match=false) and (the end of GROUP) Set the current position of GROUP to pos;
match-false;
while(not to the end of GROUP)
{
n=GROUP(pos);//当前位置的节点
if(intercon(nj,n)=true)
{
e=ej join n;
Add e into Candanswer;
find=true;
match=true;
pos++;
break;
}
pos++
if(match=false)
pos=0;//本次没有与nj满足相连关系的节点,令pos重新指向GROUP的开始
}
if(find=true)
answer=Candanswer;
else
return NULL;
}
}
3.8 检索结果排序
传统信息检索研究的相关度的计算有两个不同角度:一是系统角度,系统输出结果,用户是信息的接受者,基于这种理解,研究的重心落在系统本身。主题相关性:检索系统检出的文档的主题即核心内容与用户的信息需求相匹配。系统 角度相关并不和用户脱节。系统角度定义的相关简单可以计算;二是用户角度,观察用户对检索结果的反应,是系统输出向用户需求的投射。
3.8.1 XML检索结果排序
在传统向量空间模型中,查询和文档都被看成是由若干特征词组成的向量,文档与查询的相似性问题就被描述成了向量空间中的两个向量之间的相似度。向量中关键词(特征词)的权重值采用TFIDF算法计算,TFIDF算法由三个部分组成,一位关键词在文档(或查询条件)中出现的频率;二为IDF值,表示关键词在其他文档中出现频率信息;第三部分为归一化银子。当用户查询时,针对特定的查询向量,比较它与所有文档向量的相似度,并按相似度大小将文档排序后提交给用户。
3.9 XML语义检索系统的查询扩展技术
如果运用查询扩展技术,根据用户输入的查询项,从XML文档集中挖掘出与该查询项关联程度高的一个或几个查询项(标签-关键词)形式,供用户选择,然后进行语义查询,则会得到较精确的检索结果,从而提高用户的满意度。
3.9.1 查询扩展相关技术
1、相关反馈、伪反馈和隐式反馈。
2、基于相关反馈的“内容+结构”的查询扩展方法。
3.9.2 关联规则挖掘
关联规则可以分为布尔型(二值型)和数值型关联规则两种。
3.9.1 关联规则挖掘的基本概念
1)关联规则
定义7 设I是全体数据项(简称项)的集合。数据项集(简称项集)是由数据项构成的非空集合。设D伪全体事务集,每个事务T有唯一的TID标识,且T
⊆
I。对项集X
⊆
I,称T包含X当且仅当X
⊆
T。
定义8 关联规则是描述数据库中数据项之间存在的潜在关系的规则,形式为X ⇒ Y,其中X ⊆ I,Y ⊆ I,且X ∩ Y= ∅ ,X成为规则头,Y称为规则尾。项集之间的关联表示:如果X出现在一条交易中,那么Y在这条交易中同时出现的可能性比较高。
定义9 项集X在事务集合D中的支持数是D中包含X的事务数,记作X.sup 或者support(X)。X在D中的支持度就是X的支持数与D的总事务数之比,从统计的角度看,X在D中的支持度就是X的最大支持数与D的总事务之比,从统计的角度看,X的支持度就是X在D中出现的概率,用符号Pr(X)表示。支持阙值表示项集在统计意义上的最低重要性,用符号s表示。
定义10 规则X ⇒ Y的支持度定义为Pr(X ∪ Y),表示X和Y同时出现的可能性。规则X ⇒ Y的置信度定义为Pr(X ∪ Y)/Pr(X)=support(X ∪ Y)/support(X),表示D中包含X的事务同时也包含Y的可能性记为conf(X ⇒ Y)。由于这个数值等于在X出现的条件下Y也出现的概率,因此规则的置信度也可以用条件概率符号Pr(X|Y)表示。置信阙值表示规则在统计意义上应该满足的最低置信度,用符号minconf表示。
3.9.2.2 关联规则挖掘的基本算法Apriori
该算法利用上次循环产生的大项集构造新的候选项集,然后扫描数据库,计算候选项集的支持数,扫描结束时得到大项集。
算法的描述过程:
L1={large1-itemsets}
For(k=2;
Lk−1
≠NULL;k=k++) do
Ck=Apriori_gen(
Lk−1
);
For all transactions t∈D do
Ct=subset(
C(k,t)
);
For all C∈Ct do C.sup=C.sup+1;
end for
end for
L={C∈Ck|C.sup>=minsup}
end for
L=
UkLk
性质1 如果一个项集是大项集,那么它所有子集都是大项集。反之,如果一个项集的某个子集不是大项集,那么这个项集也不可能是大项集。
3.9.3 基于关联规则挖掘的XML语义检索的查询推荐
3.9.3.1 概述
XML关联挖掘主要有三个方向:第一个方向是挖掘XML标签之间存在的关联规则,挖掘得到的规则隐含了标签之间的语义关系。第二个方向是从XML元素中挖掘关联规则。通过判断项的文本内容是否包含于事务的文本内容来决定事务(XML片段)和项(XML片段)的包含关系。计算费时。第三个方向是从XML文档集中发现相似的结构。从XML文档集中挖掘出频繁子结构后,下一步将执行内容关联规则挖掘或文档聚类。该方法适用于对未知结构的XML文档集的挖掘。
3.9.3.2 XML关联规则定义
一条XML关联规则定义为X
⇒
Y,其中X
⊆
I,Y
⊆
I,且X≠Y。这里I是XML终端元素集。支持度和置信区间定义如下
T是数据库中的XML片段集,|T|表示所有XML片段集的数目。
Txy=frag|∀I∈(X∪Y)(IINfrag)
Tx=frag|∀I∈X(IINfrag)
3.9.3.3 XML关联规则挖掘
挖掘过程包括:1)从索引表中抽取XML事务;2)从索引表中抽取XML事务中包含的项;3)生成事务和项构成的关系表;4)用Apriori算法挖掘XML关联规则。
1)判断事务和项之间的关系。
引理1 判断一个XML事务包含一个项的条件是当且仅当该项对应的节点(简称项节点)的编码以该事务对应的节点(简称事务节点)的编码加上一个“.”为前缀,而且事务节点和项节点属于同一个XML文档。
2)抽取XML事务和项。
有了事务集合项集后,按照以下方法构造关系表R:
1)行由XML事务构成,列由XML项构成。
2)如果第i个事务包含第j个项,那么有R(i,j)=1,否则R(i,j)=0.
引理2 在按深度优先遍历顺序遍历XML文档树生成的索引表(本章提出的索引表)中,凡包含于一个XML事务中的所有节点总是跟随在该事务节点的后面出现。
3.9.4 基于XML关联规则的查询推荐
假设用户在XML语义检索系统界面中只输入了一个查询项,根据该查询项的形式,有两种不同的预处理方法:第一,如果该查询项是关键词,即形为:k的查询项,则首先利用3.3.2节所述方法对其进行扩展,使查询项具有“标签-关键词”的相识,由于扩展的“标签”属于XML文档集中的叶子节点对应的标签,所以我们需要从索引表中查询进一步找到其父节点对应的标签,假设大多数父节点的标签均为“
l1
”,则记下该标签作为事务标签的输入值(给定值);第二,如果该查询项是形为“l:k”或形为“l:”的查询项,则首先从索引表中查找标签“l”对应的节点,如果该节点时叶子节点,也需要从索引表中查询进一步找到其父节点对应的标签,并记下该标签作为事务标签的输入值(给定值);否则,该节点不是叶子节点,则直接把该标签作为事务标签的输入值(给定值)。接下来根据前面确定的标签给定值调用3.9.2节的关联规则挖掘算法,从XML文档中挖掘出与该查询项关联程度高的一个或几个查询项,用以扩展查询项,然后进行XML语义检索。在推荐查询项时,也可以只扩展推荐标签,以扩大查询范围。