发明名称 基于语义距离模型的XML文档关键字搜索聚类方法
摘要 本发明属于Web数据管理技术领域,具体为一种基于语义距离模型的可扩充标记语言(XML)的关键字搜索方法,称为XKLuster。本发明提出一种新的模型,称为“XML关键字语义距离模型”。它通过更全面地考虑XML的层次结构特征来度量XML关键字搜索的语义;基于本发明提出的“XML关键字语义距离模型”,从不同的角度,设计三种聚类算法:基于图的关键字聚类算法(GKSC)、核心集驱动的关键字聚类算法(CKSC)和松弛的核心集驱动聚类算法(LCC);提出一种排序模型对所有的搜索结果进行排序,以便将搜索结果返回给用户。与已有方法相比,本发明提出的方法可得到更加合理的返回结果。本发明可用于互联网上的XML文档搜索、XML数据库的搜索等领域。
申请公布号 CN101241502A 申请公布日期 2008.08.13
申请号 CN200810034546.3 申请日期 2008.03.13
申请人 复旦大学 发明人 杨卫东;朱皓
分类号 G06F17/30(2006.01) 主分类号 G06F17/30(2006.01)
代理机构 上海正旦专利代理有限公司 代理人 陆飞;盛志范
主权项 1、一种基于语义距离模型的XML文档关键字搜索聚类方法,其特征在于具体步骤如下:(1)定义用户提交的关键字,并将XML文档的关键字搜索语义定义为关键字之间的语义距离模型,并以此来表示用户的搜索意图;(2)将关键字搜索的返回结果定义为关键字簇的最小组成树;(3)XML文档树进行预处理;(4)根据本发明提出的语义距离模型,选择使用如下三种聚类算法之一种进行XML关键字搜索:基于图的聚类算法、核心集驱动的聚类算法和松弛的核心集驱动聚类算法;(5)根据排序模型,对搜索结果进行排序。步骤(1)中将用户提交的关键字定义为一个包含t个关键字的集合L={ki|i=1,…,t},XML文档定义为一棵XML文档树,具体如下:定义1.XML文档树,将一颗XML文档树表示为一个8元组d=(V,E,X,label(id),pl(id1,id2),depth(id),dwcode(id),lca(V′)),其中:(1)V是树上所有结点的集合,并且每个结点都有唯一的标识符和Dewey编码;(2)EV×V,是树上边的集合;(3)label(id)为标签函数,用来获得标识为id的结点的标签,其中id∈V;(4)XV是树上所有关键字结点的集合,所谓关键字结点即标签中包含关键字的结点;(5)pl(id1,id2)函数,用来取得id1和id2两个结点之间的路径长度,其中id1和id2必须具有祖先后代关系,而此函数返回的结果为它们之间的路径上所包含的边的个数;(6)depth(id)函数,用来获得标识为id的结点的深度(树的根的深度为1),其中id∈V;(7)dwcode(id)函数,用来获得标识为id的结点的Dewey编码,其中id∈V;(8)lca(V′)函数,其中V′V是V的任意子集,函数返回V′中所有结点的最低公共祖先;定义2.两个关键字结点之间的最短路径,两个关键字结点xi和xj的最短路径为结点xi到lca({xi,xj})的路径加上结点xj到lca({xi,xj})的路径;同时,用函数spl(xi,xj)来表示结点xi和xj的最短路径的长度,显然spl(xi,xj)=pl(lca({xi,xj}),xi)+pl(lca({xi,xj}),xj);定义 两个关键字结点之间的语义距离,XML文档树上任意两个关键字结点之间的语义距离dis(xi,xj)被定义如下:<math><mrow><mi>dis</mi><mrow><mo>(</mo><msub><mi>x</mi><mi>i</mi></msub><mo>,</mo><msub><mi>x</mi><mi>j</mi></msub><mo>)</mo></mrow><mo>=</mo><mfrac><mrow><mi>spl</mi><mrow><mo>(</mo><msub><mi>x</mi><mi>i</mi></msub><mo>,</mo><msub><mi>x</mi><mi>j</mi></msub><mo>)</mo></mrow></mrow><mrow><mi>depth</mi><mrow><mo>(</mo><mi>lca</mi><mrow><mo>(</mo><mo>{</mo><msub><mi>x</mi><mi>i</mi></msub><mo>,</mo><msub><mi>x</mi><mi>j</mi></msub><mo>}</mo><mo>)</mo></mrow><mo>)</mo></mrow></mrow></mfrac><mo>-</mo><mo>-</mo><mo>-</mo><mrow><mo>(</mo><mn>1</mn><mo>)</mo></mrow></mrow></math> 在公式(1)中,分子和分母部分分别是两关键字结点间最短路径的长度和它们LCA的高度。步骤(2)中,定义关键字结点的簇,根据关键字语义距离模型,将关键字结点集分成一组簇,簇的集合表示为C={Ci|i=1,…,m},其中,一个簇Ci是一组关键字结点的集合,CiX,且<math><mrow><munderover><mrow><mi></mi><mo>&cup;</mo></mrow><mrow><mi>i</mi><mo>=</mo><mn>1</mn></mrow><mi>m</mi></munderover><msub><mi>C</mi><mi>i</mi></msub><mo>=</mo><mi>X</mi><mo>;</mo></mrow></math> 设定一个距离阈值ω来约束簇的大小,簇中任意两个关键字结点之间的距离小于等于ω;定义最优簇,给定一个距离阈值ω,任一个关键字集合CiX被称为最优簇,当且仅当:(1)xi,xj∈Ci满足dis(xi,xj)≤ω;(2)xa,xa∈X且xaCi,xb∈Ci满足dis(xa,xb)>ω;将返回结果定义为簇的“最小组成树”,具体如下:C中每个簇Ci的最小组成树定义为:以lca(Ci)为根,以descendants(Ci)中的所有结点为叶子的树;其中descendants(Ci)函数返回Ci中所有在Ci内不含有任何后代的关键字结点的集合,即就是Ci的最小组成树是从lca(Ci)到descendants(Ci)中所有结点的;步骤(3)中,对XML文档树进行预处理的步骤如下:(1)使用Dewey编码为整棵XML文档树进行编码;(2)为所有的关键字建立倒排索引表;(3)对于深度为h的XML文档树,建立一个包含有h个有序关键字结点列表的层次型数据结构H;其中每一个层次是将XML文档树上一组处于同一高度的多个结点按照文档访问顺序组成一个序列I,xi是其中的任一个结点;(4)先序遍历XML文档树,每遇到一个标签含有关键字的结点,将它加入相应层次的列表的尾部;步骤(5)中所述排序步骤如下:(1)首先根据每个簇含有关键字的情况进行分组,所有含有相同关键字种类个数的簇被分入一组,对组进行排序,含有越多关键字种类的组排得越靠前;(2)对于同一组内的簇,计算它们的平均距离,平均距离越小的簇在组内排得越靠前;对所有的簇排好序后,为每个簇生成一个最小组成树,并按照顺序将它们返回给用户;(3)单结点簇被排到整个结果序列的最后;其中,所述平均距离的定义如下:对于结果簇集合C中任一个簇Ci,它的平均距离dismean为它所包含的所有结点之间两两距离的平均值,假设m是Ci所包含的结点的个数,则Ci的平均距离如公式(2)所示<math><mrow><msub><mi>dis</mi><mi>mean</mi></msub><mrow><mo>(</mo><msub><mi>C</mi><mi>i</mi></msub><mo>)</mo></mrow><mo>=</mo><mfenced open='{' close=''><mtable><mtr><mtd><mfrac><mrow><munder><mi>&Sigma;</mi><mrow><msub><mi>x</mi><mi>i</mi></msub><mo>,</mo><msub><mi>x</mi><mi>j</mi></msub><mo>&Element;</mo><msub><mi>C</mi><mi>i</mi></msub><mo>;</mo><msub><mi>x</mi><mi>i</mi></msub><mo>&NotEqual;</mo><msub><mi>x</mi><mi>j</mi></msub></mrow></munder><mi>dis</mi><mrow><mo>(</mo><msub><mi>x</mi><mi>i</mi></msub><mo>,</mo><msub><mi>x</mi><mi>j</mi></msub><mo>)</mo></mrow></mrow><mrow><mn>2</mn><msubsup><mi>C</mi><mi>m</mi><mn>2</mn></msubsup></mrow></mfrac><mo>,</mo><mi>m</mi><mo>></mo><mn>1</mn></mtd></mtr><mtr><mtd><mo>&infin;</mo><mo>,</mo><mi>m</mi><mo>=</mo><mn>1</mn></mtd></mtr></mtable></mfenced><mo>-</mo><mo>-</mo><mo>-</mo><mrow><mo>(</mo><mn>2</mn><mo>)</mo></mrow><mo>.</mo></mrow></math>
地址 200433上海市邯郸路220号