专利名称:∑的制作方法
信息检索是当前信息科学领域研究的一个重要课题。在信息检索中,出于查全和查准的考虑,人们普遍倾向于全文检索。而全文检索的一个主要问题就是全文数据库模型(在本文中也称为文本数据库模型),也就是如何表达全文数据库并提供方便、高效的全文数据库查询操作([1]W.B.Frakes,R.B.Yates.Information RetrievalData Structures &Algorithms.Prentice Hall PTR,Upper Saddle River,New Jersey.1992)。已经提出的全文数据库模型有倒排文件([1])和PAT树以及PAT数组等模型([1];[2]G.Gonnet.PAT3.1An Efficient Text Searching System.User’s Mannual.UW Centre for the New OED.University of Waterloo.1987;[3]U.Manber,and G.Myers.Suffix arraysA New Methodfor Online String Searches.in 1stACM-SIAM Symposium on Discrete Algorithms.pp.319-27,San Francisco.1990)。尽管这些模型都得到应用,但都存在各自的局限性。为此,发明人提出了一种基于∑2邻接矩阵的新全文数据库模型([4]胡运发等,基于∑2邻接矩阵全文数据库的表达和操作方法,专利申请号99109122.1)。新模型继承了已有全文数据库模型的主要优点,同时避免了这些模型中存在的一些缺点。在领域独立性、时间无关性、查询完备性、空间复杂性、响应能力、可操作性、可维护性等方面均显示明显的优势。然而,[4]只给出了∑2邻接矩阵全文数据库模型的基本概念和查询操作,并将新模型与其它模型进行了初步的比较。这些操作和查询方法还是比较基础的工作,查询效率还不高。
本发明的目的在于提出一种基于∑2邻接矩阵全文数据库的高效率的优化查询方法。
由于全文数据库的海量性,查询效率是衡量一个全文检索系统的重要指标。在([4])工作的基础上,本发明提出了∑2邻接矩阵全文数据库的查询优化问题,并通过分析∑2邻接矩阵元素间的关系,发现查询路径的特性,最后实现只根据查询路上的少量∑2邻接矩阵元素的操作来计算查询结果。
为了便于说明问题,本发明先引进有关概念。定义1∑2邻接矩阵A(见[4])假定有文本库TB,它是一个无环句串的序列。文本库存在一个对应的以文本库中所有基本文字符为节点,以所有邻接基本文字符有序对为有向边而构成的有向图。∑2邻接矩阵A即为文本库有向图对应的邻接矩阵,但矩阵元素被赋予了独特的含义。在∑2邻接矩阵A中,每一矩阵元素不是简单的0/1值,仅仅表示节点间的连通性和方向性;而是一个集合,该集合为文本库有向图中对应的有向边所在的无环句串标号的集合,表示的是文本有向图中节点间的多通路特性。形式化地表示为A=[aij], ……………………………………………(1)aij=I<l′,l′>={k|skliljsk,}。……………………………………………(2)其中,sk为文本数据库中的无环句串,li和lj为构成文本的基本文字符单元。定义2∑2邻接矩阵元素的基(Cardinality)
∑2邻接矩阵元素aij包含的无环句串标号的个数称为aij的基(Cardinality),简记为cij。因此,有cij=|aij|。………………………(3)cij愈大,说明<li,lj>在更多的无环句串中出现。文本库有向图上的任意两条邻接的有向边对应的∑2邻接矩阵元素之间存在着一定关系。我们将这种关系归纳为两类,即包含与交叉。定义3∑2邻接矩阵元素间的包含关系(α型关系)aij和ajk为文本有向图中两条邻接有向边对应的∑2邻接矩阵元素,若它们之间存在如下关系1)aijajk或者2)aijajk,则称aij和ajk满足包含关系,或者α型关系。其中,若仅满足1),为递增包含关系,或者α+型关系仅满足2),则为递减包含关系,或者α-型关系。定义4∑2邻接矩阵元素间的交叉关系(β型关系)aij和ajk为文本有向图中两条邻接有向边对应的∑2邻接矩阵元素,若它们之间存在如下关系1)aij∩ajk≠Φ;2)aij∩ajk≠aij;3)aij∩ajk≠ajk。
则称aij和ajk满足交叉包含关系,或者β型关系。
在文本库有向图中,若干条邻接的有向边构成一条路。根据路上各有向边对应的∑2邻接矩阵元素之间的关系,下面定义几种不同特性的路。定义5α路若文本库有向图中某一条路上各有向边对应的∑2邻接矩阵元素之间均满足α型关系,则称这条路为α路。进一步地,若满足α+型关系,则称为α+路;类似地,若满足α-型关系,则称为α-路。定义6β路若文本库有向图中某一条路上至少有两条邻接的有向边所对应的∑2邻接矩阵元素之间满足β型关系,则称这条路为β路。定义7孤立有向边文本库有向图中,与它的邻接有向边构不成α路的有向边称为孤立有向边。可以把孤立有向边看作退化的α路,即只包含一条有向边的α路。
根据上述给出的定义,有如下结论结论1任意一条α路可以分解为一系列的头尾有向边重叠的交替出现的α+路和α-路。
特殊情况下α路为α+路或α-路。而一般情况下,α路将同时包含α+和α-子路。当首先出现的是α+子路时,则接下来出现的应是α-子路。否则,整条路就是α+路了。而且,作为连接前后两条子路的有向边既是前面的α+子路的尾,又是后面的α-子路的头。同样的道理,当先出现α-子路时,则接下来必定是α+子路,而且它们之间也存在一条公共的有向边。结论2一条β路可以分解为一系列的头尾相连的α路和孤立有向边为了更形象地描述路路,下面给出路的基图概念。定义8路的基图文本有向图中路的基图对应于一个二维平面图,路上的每一有向边对应于基图上的一个坐标点。点的纵坐标为有向边的基;点的横坐标为有向边的编号。这里的编号和文本库中句串的编号不同。我们将路的第1条有向边编号为1,以后沿路的方向给后续的有向边依次编号为2,3,…,直到路的最后一条有向边。然后,用线段将构成α关系的邻接有向边对应的坐标点连接起来,这样构成的图称为路的基图。定义9基图中的孤立点和极小点查询路中,孤立有向边在基图中对应的点称为孤立点;α+路的起始有向边和α-路的终止有向边在在基图中对应的点称为极小点。
根据结论1、结论2和定义8、定义9,很显然,在基图中,α+路表现为一条递增的折线;α-路表现为一条递减的折线;而一般的α路则表现为一段段交替递减递减的相连折线;对于β路,由于满足β型关系的坐标点在基图中将不连接,可以想象,β路的基图是由被一些孤立点分隔的α路构成。下面给出一个具体例子进行说明。
实例1给定如图1所示路,绘出对应的基图。
显然,图1所示的查询路为α路。这条路上对应有向边的基分别为3、4、7、4、5、6、8、6、5。它的基见图2所示。
在全文检索中,用户往往要确定一个文字串是否存在于文本库中和存在于文本库中的哪些文本中。用户的查询请求一般可形式化地表示为q(li1li2…lik)。在文本库有向图中,查询串li1li2..lik对应于一条路,我们称这条路为查询路。如果在文本库有向图中至少存在一条这样的查询路,则表明查询是成功的;否则,查询失败。下面我们先引入查询路的最大可能流通量概念,并将它作为查询有解的必要条件;然后,给出几个关于优化查询的结论。定义10查询路的最大可能流通量Fmax若有查询q(li1li2…lik),与该查询对应的查询路的最大可能流通量Fmax(li1li2...lik)=min(|ai1i2|,|ai2i3|,...,|aik-1ik|)。.....................................(4)显然,在查询路的基图中,最大可能流通量表现为基图上所有坐标点的最小纵坐标值。根据上述定义,有如下结论结论3当查询路的最大可能流通量不为0,查询有解。这是因为若查询路的最大可能流通量为0,说明查询路上至少有一条有向边对应的∑2邻接矩阵元素为空(这里为空是真正意义上的空,而不是因为矩阵约减而引起的假空),则q(li1li2…lik)=I(ai1ai2)∩I(ai2ai3)…∩I(aik-1aik)=Φ(I(aik-1ik)等的含义参见[4])。
在基图中,查询路的最大可能流通量不为0,说明基图中没有点在横坐标上。结论4若查询q(li1li2…lik)的查询路为α+路,且它的最大可能流通量不为0,则查询解为查询路的第一条有向边对应的∑2邻接矩阵元素值。
理由是由于查询q(li1li2..lik)的查询路为α+路,因此有ai1i2ai2i3…aik-2ik-1aik-1ik。这样,q(li1li2…lik)=I(ai1i2)∩I(ai2i3)…∩I(aik-1ik)=ai1i2∩ai2i3…∩aik-1ik=ai1i2。结论5若查询q(li1li2…lik)的查询路为α-路,且它的最大可能流通量不为0,则查询解为查询路的最后一条有向边对应的∑2邻接矩阵元素值。
理由是由于查询q(li1li2…lik)的查询路为α-路,因此有ai1i2ai2i3…aik-2ik-1aik-1ik。这样,q(li1li2…lik=I(ai1i2)∩I(ai2i3)…∩I(aik-1ik)=ai1i2∩ai2i3…∩aik-1ik=aik-1ik。
从基图上来看,结论4和5意味着查询路为α+路或α-路的查询解分别是查询路对应的基图的最低点(或极小点)对应的∑2邻接矩阵元素值。进一步,有如下结论6和结论7,它们具有更普遍的实际操作意义。结论6若查询q(li1li2…lik)的查询路为α路,且它的最大可能流通量不为0,则查询解为查询路的基图中所有极小点对应的∑2邻接矩阵元素的交集。结论7对一查询q(li1li2…lik),且它的查询路的最大可能流通量不为0,则查询解为查询路的基图中所有极小点和孤立点对应的∑2邻接矩阵元素值的交集。实例2对如图1所示查询路进行查询。
由图2所示的基图可以看出,这是一条α查询路,最大可能流通量为3,因此可能有解。基图上存在3个极小点,分别是{1,2,4}、{2,4,5,6}和{1,4,5,7,9}。根据定理4,查询结果为{1,2,4}∩{2,4,5,6}∩{1,4,5,7,9)={4}。
根据前面给出的概念、分析与结论,本发明提出按如下步骤对基于∑2邻接矩阵的全文数据库进行文字串的查询1)根据用户提交的查询请求,分析查询路径。包括求解查询路上每条有向边的基、相邻有向边的关系(包含或交叉关系),并判断该查询路的类型(α路或β路)。
2)求解查询路的最大可能流通量Fmax。若Fmax为0,终止查询操作,返回空值;否则,继续往下进行。
3)找出查询路对应基图中的极小点和孤立点。对于α路只找极小点;对β路应找所有极小点和孤立点。
4)求所有极小点和孤立点对应的∑2邻接矩阵元素的交集。
本发明提出的查询方法,查询过程比较简单,能够快速进行查询路的分析,求解查询路的最大可能流通量,并找出查询路的基图中的所有极小点和孤立点,最后获得查询结果。
在上述查询方法中,可先对已经建立∑2邻接矩阵进行统计分析,获取如下信息
1)∑2邻接矩阵元素的基cij;2)∑2邻接矩阵元素与其扇出有向边对应的矩阵元素之间的关系,即包含关系(α+、α-关系)和交叉关系(β关系)。用2bits信息即可表示这三种关系。
上述分析结果将保留在内存中,供查询操作时使用,从而可以大大提高查询的效率。
优化查询方法的查询效率的贡献主要表现在1) 对无解查询的判断,不需要进行繁琐的计算,仅仅由算法的1)、2)步就可完成。进行的操作只是(Iq-1)(为Iq查询串的长度)次的整数比较运算,不要读盘操作,因此效率很高;2) 对具有α+和α-型查询路的查询,仅需1次读盘操作;3) 对具有α型查询路的查询,至少需要读1次盘,至多需要读(Iq+1)/2次盘,平均读(Iq+3)/4次盘;4) 对具有β型查询路的查询,至少需要读2次盘,至多需要读Iq次盘,平均读(Iq+2)/2次盘。
本发明通过引入关于∑2邻接矩阵元素的基、矩阵元素间的关系、查询路类型和基图、路的最大可能流通量等概念,提出基于∑2邻接矩阵的全文优化查询方法。优化方法能够很快确定查询无解,在一些情况下能大幅度减少读盘操作和集合交运算,从而提高查询效率。付出的代价是需要增加一些额外的信息。这些信息将保留在内存中,因此内存开销也将增加。但是,这种增加的信息不会随文本数据库的增大而线形增加。当数据库到了一定的规模后,增量信息将趋于稳定。
图1一条假想的文本查询路;图2图1所示的查询路的基图。
权利要求
1.一种∑2邻接矩阵全文数据库查询方法,以文本库对应的∑2邻接矩阵表达全文数据库,其特征在于(1)根据用户提出的查询请求,分析查询路求解查询路上每条有向边的基、相邻有向边的包含或交叉关系,判断该查询路的类型α路或β路;(2)求解查询路的最大可能流通量Fmax。若Fmax=0,则查询终止,返回空值;若Fmax≠0,则继续下一步;(3)找出查询路对应基图中的极小点和孤立点;(4)求所有极小点和孤立点对应的∑2邻接矩阵元素的交集。
2.根据权利要求1所述的∑2邻接矩阵全文数据库查询方法,其特征还在于先对已经建立的∑2邻接矩阵进行统计分析,求出如下信息(1)∑2邻接矩阵元素的基cij(2)∑2邻接矩阵元素与其扇出有向边对应的矩阵元素之间的关系,即α+型关系、α-型关系、β型关系。
全文摘要
本发明属信息技术领域,是一种基于Σ
文档编号G06F17/30GK1248750SQ9911394
公开日2000年3月29日 申请日期1999年7月30日 优先权日1999年7月30日
发明者胡运发, 周水庚 申请人:复旦大学