[发明专利]基于语义距离模型的XML文档关键字搜索聚类方法无效
| 申请号: | 200810034546.3 | 申请日: | 2008-03-13 |
| 公开(公告)号: | CN101241502A | 公开(公告)日: | 2008-08-13 |
| 发明(设计)人: | 杨卫东;朱皓 | 申请(专利权)人: | 复旦大学 |
| 主分类号: | G06F17/30 | 分类号: | G06F17/30 |
| 代理公司: | 上海正旦专利代理有限公司 | 代理人: | 陆飞;盛志范 |
| 地址: | 20043*** | 国省代码: | 上海;31 |
| 权利要求书: | 查看更多 | 说明书: | 查看更多 |
| 摘要: | |||
| 搜索关键词: | 基于 语义 距离 模型 xml 文档 关键字 搜索 方法 | ||
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)EV×V,是树上边的集合;
(3)label(id)为标签函数,用来获得标识为id的结点的标签,其中id∈V;
(4)XV是树上所有关键字结点的集合,所谓关键字结点即标签中包含关键字的结点;
(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)被定义如下:
在公式(1)中,分子和分母部分分别是两关键字结点间最短路径的长度和它们LCA的高度。
步骤(2)中,定义关键字结点的簇,根据关键字语义距离模型,将关键字结点集分成一组簇,簇的集合表示为C={Ci|i=1,…,m},其中,一个簇Ci是一组关键字结点的集合,CiX,且
设定一个距离阈值ω来约束簇的大小,簇中任意两个关键字结点之间的距离小于等于ω;
定义最优簇,给定一个距离阈值ω,任一个关键字集合CiX被称为最优簇,当且仅当:(1)xi,xj∈Ci满足dis(xi,xj)≤ω;(2)xa,xa∈X且xaCi,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)所示
2、根据权利要求1所述的基于语义距离模型的XML文档关键字搜索聚类方法,其特征在于所述步骤(4)中,三种聚类算法具体步骤如下:
(一)基于图的关键字搜索聚类算法的具体步骤如下:
(1)从上到下按层次访问H中的结点,在每一层的列表中,从左到右遍历,对于当前访问结点,计算它和同层右边以及下面的某些邻居的距离;
(2)对于更低层次的结点,首先确定有多少层次的结点需要被考虑;给定一个ω,距离公式必须满足
(3)计算出所需要考虑的层次数目后,对于xi下方floor(depth(xi)·ω)层中的每一层,首先找到xi的后代在该层中的位置,再从该位置向左遍历直至距离超出阈值,在这一层中,其它结点都不需要参与考虑;当xi是所属层中的第一个结点时,使用二分法去寻找它在floor(depth(xi)·ω)个低层次列表中后代结点的位置,并且用指针记录下这些位置;而当xi不是第一个结点时,只从那些记录的位置开始向右寻找后代结点的位置,之后再修改指针到当前位置;
(4)每次计算两个结点的距离时,如果小于或等于距离阈值,则将该两个结点用边连接起来,并且记录下距离作为该边的权;
(5)上一步结束后,可以得到一个加权的无向图,然后再将图分解得到所有的最大完全字图,从而得到结果簇;
(二)核心集驱动的聚类算法的步骤如下:
定义核心集,对于距离阈值ω来说,任一个关键字集合CoX,如果它所包含的关键字结点中任意两者之间的距离都小于或等于ω,则Co被称为一个核心集(core);
定义原始核心集,H中的一个结点集合Co’被称为一个原始核心集(core origin),当且仅当:(1)Co’是一个核心集;(2)Co’中的结点都处于H的同一层次;(3)在该层次中不存在一个核心集Co使得Co’Co;
(1)首先遍历H,将H中的结点分成一些核心集,对于H的每一层,具体的做法是:创建一个空集,将该层第一个结点加入,从第二个结点开始往后遍历,计算第一个结点与遍历当前结点之间的距离;如果小于等于ω则将之加入集合;当遇到距离超出ω的第一个结点时,再创建一个空集,以该结点为集合中第一个结点继续遍历,直至该层中所有结点都已遍历完;一个原始核心集所包含的是H上同一层次中相邻的一组结点,所以,{xl,…,xr}是一个原始核心集;
(2)再寻找原始核心集周围的核心集,求出包含这些原始核心集的最优簇,当找出{xl,…,xr}在所有层次上需要考虑的核心集后,在每一层取一个核心集组成一个核心集的集合,在该集合内寻找包含{xl,…,xr}的最优簇;
(三)松驰的核心集驱动聚类算法的具体步骤如下:
(1)首先遍历层次型数据结构H,得到一组原始核心集;
(2)对于H中的每一层建立两个列表:头结点列表HNL和尾结点列表TNL;其中,HNL和TNL分别按顺序存放该行中所有原始核心集的第一个和最后一个结点;
(3)对于每个原始核心集Co’,寻找其它所有层次中的一些原始核心集,这些原始核心集中存在结点到所有Co’中结点的距离都小于等于ω;
(4)找到这些原始核心集后,将它们合并到Co’中形成一个结果集。
该专利技术资料仅供研究查看技术是否侵权等信息,商用须获得专利权人授权。该专利全部权利属于复旦大学,未经复旦大学许可,擅自商用是侵权行为。如果您想购买此专利、获得商业授权和技术合作,请联系【客服】
本文链接:http://www.vipzhuanli.com/pat/books/200810034546.3/1.html,转载请声明来源钻瓜专利网。
- 上一篇:浮动式无菌型饮用水存储装置
- 下一篇:农村屋顶储水装置





