一种基于关联矩阵的不确定数据连接合并算法的制作方法

文档序号:12733955阅读:来源:国知局

技术特征:

1.一种基于关联矩阵的不确定数据连接合并算法,其特征在于:该方法包括以下步骤:

步骤1:引入属性重要度,数据表中数据对象的某一属性的重要度越高则表示该属性对该类数据对象的区分度越大;计算数据表中各属性的重要度,找出数据表所有属性重要度的最大值;

步骤2:确定数据表之间的关联度,并建立关联矩阵;

步骤3:根据关联矩阵,按表关联度从大到小选取未连接的数据表在关联属性上连接合并,同时综合属性重要度、属性值相似度计算记录相似度合并关联记录进而合并关联表。

2.根据权利要求1所述的一种基于关联矩阵的不确定数据连接合并算法,其特征在于:步骤1具体如下:

针对数据表T={P1,P2,...,Pn},Pi的取值为统计Pi中每个不同属性值的出现次数,如表1所列:

表1 属性Pi的取值分布

由于同一数据表中存在同一对象的概率很小,因此在大数据表中可以认为每一条记录代表一个不同的对象,基于该假设,其值相等的概率为由于可得则属性Pi的重要度为:

<mrow> <msub> <mi>W</mi> <msub> <mi>P</mi> <mi>i</mi> </msub> </msub> <mo>=</mo> <mi>m</mi> <mrow> <mo>(</mo> <mi>m</mi> <mo>-</mo> <mn>1</mn> <mo>)</mo> </mrow> <mo>/</mo> <mrow> <mo>(</mo> <munderover> <mo>&Sigma;</mo> <mrow> <mi>j</mi> <mo>=</mo> <mn>1</mn> </mrow> <mi>k</mi> </munderover> <msubsup> <mi>n</mi> <msub> <mi>i</mi> <mi>j</mi> </msub> <mn>2</mn> </msubsup> <mo>-</mo> <mi>m</mi> <mo>)</mo> </mrow> <mo>.</mo> </mrow>

3.根据权利要求2所述的一种基于关联矩阵的不确定数据连接合并算法,其特征在于:由于步骤1计算得到的属性重要度的范围较大不利于后期记录相似度的计算,因此对属性重要度进行平滑处理和归一化处理,得到:

<mrow> <msub> <mi>W</mi> <msub> <mi>p</mi> <mi>i</mi> </msub> </msub> <mo>=</mo> <msub> <mi>log</mi> <mn>2</mn> </msub> <mrow> <mo>(</mo> <mi>m</mi> <mo>(</mo> <mrow> <mi>m</mi> <mo>-</mo> <mn>1</mn> </mrow> <mo>)</mo> <mo>/</mo> <mo>(</mo> <mrow> <munderover> <mo>&Sigma;</mo> <mrow> <mi>j</mi> <mo>=</mo> <mn>1</mn> </mrow> <mi>k</mi> </munderover> <msubsup> <mi>n</mi> <msub> <mi>i</mi> <mi>j</mi> </msub> <mn>2</mn> </msubsup> <mo>-</mo> <mi>m</mi> <mo>+</mo> <mn>1</mn> </mrow> <mo>)</mo> <mo>+</mo> <mn>1</mn> <mo>)</mo> </mrow> <mo>/</mo> <msub> <mi>W</mi> <mrow> <mi>p</mi> <mi>m</mi> <mi>a</mi> <mi>x</mi> </mrow> </msub> </mrow>

其中Wpmax表示数据表T所有属性重要度的最大值。

4.根据权利要求3所述的一种基于关联矩阵的不确定数据连接合并算法,其特征在于:步骤2具体包括以下子步骤:

步骤201,采用杰卡德相似系数来计算属性相似度,并以此确定表间关联属性

杰卡德相似系数是衡量两个集合相似度的一种指标,设表Ti、Tj在某个属性上取值集合分别为PVia和PVjb,它们的交集元素在并集中所占的比例,称为两个集合的杰卡德相似系数,即为属性值集合PVia和PVjb的相似度:

SP(PVia,PVjb)=|PVia∩PVjb|/|PVia∪PVjb|

SP(PVia,PVjb)取值范围为[0,1],当两个属性越相似,该值越接近1;反之,接近0;因此可以认为当SP(PVia,PVjb)>CP时,CP为关联属性阈值,Pia和Pjb即为关联属性,记为J(Pia,Pjb);

步骤202,确定表间关联度

对于表Ti与表Tj,其表关联度计算公式为:

其中t为表Ti与表Tj关联属性对数目,表示关联属性Pia、Pjb在Ti和Tj的属性重要度平均值;

步骤203,确定关联矩阵

根据步骤201和步骤202得到的表间关联属性及表间关联度,建立如下关联矩阵Mnn

<mrow> <msub> <mi>M</mi> <mrow> <mi>n</mi> <mi>n</mi> </mrow> </msub> <mo>=</mo> <mfenced open = "[" close = "]"> <mtable> <mtr> <mtd> <mn>0</mn> </mtd> <mtd> <mrow> <mo>(</mo> <msub> <mi>C</mi> <mn>12</mn> </msub> <mo>,</mo> <msub> <mi>S</mi> <mn>12</mn> </msub> <mo>)</mo> </mrow> </mtd> <mtd> <mrow> <mo>(</mo> <msub> <mi>C</mi> <mn>13</mn> </msub> <mo>,</mo> <msub> <mi>S</mi> <mn>13</mn> </msub> <mo>)</mo> </mrow> </mtd> <mtd> <mo>...</mo> </mtd> <mtd> <mrow> <mo>(</mo> <msub> <mi>C</mi> <mrow> <mn>1</mn> <mi>n</mi> </mrow> </msub> <mo>,</mo> <msub> <mi>S</mi> <mrow> <mn>1</mn> <mi>n</mi> </mrow> </msub> <mo>)</mo> </mrow> </mtd> </mtr> <mtr> <mtd> <mn>0</mn> </mtd> <mtd> <mn>0</mn> </mtd> <mtd> <mrow> <mo>(</mo> <msub> <mi>C</mi> <mn>23</mn> </msub> <mo>,</mo> <msub> <mi>S</mi> <mn>23</mn> </msub> <mo>)</mo> </mrow> </mtd> <mtd> <mo>...</mo> </mtd> <mtd> <mrow> <mo>(</mo> <msub> <mi>C</mi> <mrow> <mn>2</mn> <mi>n</mi> </mrow> </msub> <mo>,</mo> <msub> <mi>S</mi> <mrow> <mn>2</mn> <mi>n</mi> </mrow> </msub> <mo>)</mo> </mrow> </mtd> </mtr> <mtr> <mtd> <mo>...</mo> </mtd> <mtd> <mo>...</mo> </mtd> <mtd> <mo>...</mo> </mtd> <mtd> <mo>...</mo> </mtd> <mtd> <mo>...</mo> </mtd> </mtr> <mtr> <mtd> <mn>0</mn> </mtd> <mtd> <mn>0</mn> </mtd> <mtd> <mn>0</mn> </mtd> <mtd> <mo>...</mo> </mtd> <mtd> <mrow> <mo>(</mo> <msub> <mi>C</mi> <mrow> <mo>(</mo> <mi>n</mi> <mo>-</mo> <mn>1</mn> <mo>)</mo> <mi>n</mi> </mrow> </msub> <mo>,</mo> <msub> <mi>S</mi> <mrow> <mo>(</mo> <mi>n</mi> <mo>-</mo> <mn>1</mn> <mo>)</mo> <mi>n</mi> </mrow> </msub> <mo>)</mo> </mrow> </mtd> </mtr> <mtr> <mtd> <mn>0</mn> </mtd> <mtd> <mn>0</mn> </mtd> <mtd> <mn>0</mn> </mtd> <mtd> <mo>...</mo> </mtd> <mtd> <mn>0</mn> </mtd> </mtr> </mtable> </mfenced> </mrow>

其中:Cij(i,j∈{1,...,n}且i<j)表示集合;J(Pia,Pjb)表示关联属性Pia和Pjb

5.根据权利要求4所述的一种基于关联矩阵的不确定数据连接合并算法,其特征在于:步骤3具体包括以下子步骤:

步骤301,按数据表之间的关联度Sij从大到小排序,依次取关联度最大且未进行连接合并的两个表Ti和Tj进行连接合并,合并两表中的关联记录过程如步骤302;

步骤302,确定关联记录

对于记录ri{pi1,pi2,...,pia,...,pim}∈Ti和rj{pj1,pj2,...,pjb,...,pjn}∈Tj,判断ri和rj是否为关联记录,在关联属性上根据属性值相似度以及属性重要度计算ri和rj的相似度:

<mrow> <mi>S</mi> <mi>R</mi> <mrow> <mo>(</mo> <msub> <mi>r</mi> <mi>i</mi> </msub> <mo>,</mo> <msub> <mi>r</mi> <mi>j</mi> </msub> <mo>)</mo> </mrow> <mo>=</mo> <munderover> <mo>&Sigma;</mo> <mrow> <mi>k</mi> <mo>=</mo> <mn>1</mn> </mrow> <mi>t</mi> </munderover> <mi>S</mi> <mi>P</mi> <mrow> <mo>(</mo> <msub> <mi>p</mi> <mrow> <mi>i</mi> <mi>a</mi> </mrow> </msub> <mo>,</mo> <msub> <mi>p</mi> <mrow> <mi>j</mi> <mi>b</mi> </mrow> </msub> <mo>)</mo> </mrow> <mo>&times;</mo> <mover> <msub> <mi>W</mi> <mrow> <msub> <mi>p</mi> <mrow> <mi>i</mi> <mi>a</mi> </mrow> </msub> <mo>,</mo> <msub> <mi>p</mi> <mrow> <mi>j</mi> <mi>b</mi> </mrow> </msub> </mrow> </msub> <mo>&OverBar;</mo> </mover> <mo>,</mo> </mrow>

其中t为Ti和Tj关联属性对数量,SP(pia,pjb)=1-d(pia,pjb)/n即关联属性值p1i和p2j的相似度,d(pia,pjb)为属性值p1i和p2j的编辑距离,n为p1i和p2j中较长字符串的长度;若SR(ri,rj)>CR,CR为关联记录阈值,则ri和rj为关联记录,可以合并,根据计算结果,合并表Ti和Tj中所有的关联记录;;

步骤303,若所有表均参与连接合并,或者剩余一张表,则第一轮连接合并结束。若第一轮有m对数据表参与连接合并,则一轮合并之后还有(n-m)个表。根据之前的关联矩阵Tnn,重新构建这(n-m)个表的关联矩阵T(n-m)(n-m)

步骤304,根据重构的关联矩阵T(n-m)(n-m),重复步骤301至步骤303操作,直到最终所有数据表合并为一张表,则整个连接合并完成得到最终的连接合并结果集。

当前第2页1 2 3 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1