1.一种基于属性间依赖关系的网络表格的实体列检测方法,其特征在于,包括:
针对一个网络表格,根据列值间的函数依赖关系计算任意两列间的近似函数依赖概率,根据所述近似函数依赖概率获取候选函数依赖集;
根据网络表格的特点,删减候选函数依赖集中的噪声函数依赖得到近似函数依赖集;
对近似函数依赖集进行3NF规范化,将3NF规范化后产生的主键集合作为网络表格的实体列。
2.根据权利要求1所述的方法,其特征在于,所述的针对一个网络表格,根据列值间的函数依赖关系计算任意两列间的近似函数依赖概率,根据所述近似函数依赖概率获取候选函数依赖集,包括:
设X是网络表格T中的某个属性,A是T中不同于X的属性,当T中存在部分元组的(X,A)属性值对,使得X→A成立,则称X近似函数确定A或A近似函数依赖于X,记作表示X→A在T上成立的近似函数依赖概率,(X,A)属性值对中使得X→A成立的数据称为一致性数据,其余称为不一致性数据;
在网络表格T中,对于X属性值为vx的元组,其A属性列中可能存在不同的值,假设该不同值的集合为VA;
如果集合VA中个数最多的值唯一,则将该值作为一致性数据,如果个数最多的值不唯一,则将这些个数最多的值分别作为类中心,计算其他值和类中心值相似度的和,选择和最大时的类中心值va作为一致性数据。具体计算方法如公式(1)所示;
对于任意类中心值vj;
X中值为vx的所有元组,其中的一致性数据va对X→A成立的支持度Sc(X→A,VX,VA')由公式(2)计算;
其中:
VX={X.r|X.r=vx}
VA'={A.r|X.r=vx&A.r=va}
|VX,VA'|=|{<X.r,A.r>|X.r=vx&A.r=va}|
VA'就是当X列取vx时,所对应A列中一致性数据的集合,X.r为X列r行单元格的值,A.r为A列r行单元格的值;
不一致性数据对X→A成立的支持度Snc(X→A,VX,VA*)的计算公式由公式(3)计算;
集合VX对X→A成立的支持度通过一致性数据和不一致性数据对X→A成立的支持度的加权平均和表示,由公式(5)计算:
其中ω1+ω2=1;
取X中所有不同元组的支持度,它们的平均值作为网络表格T中X→A成立的概率,由公式(6)计算:
其中|DX|表示X中有区别的VX的个数;
表示网络表格T中的一种近似函数依赖成立的概率,候选函数依赖集中包含网络表格T中所有可能的近似函数依赖。
3.根据权利要求2所述的方法,其特征在于,所述的根据网络表格的特点,删减候选函数依赖集中的噪声函数依赖得到近似函数依赖集,包括:
如果候选函数依赖集中的近似函数依赖关系满足以下3条规则中的任一条,则将从候选近似函数依赖集中删去:
规则1:若X列的属性值的类型为日期类型、浮点类型或者布尔类型:
规则2:若在网络表格T中存在属性列Y,使得成立;
规则3:若在候选近似函数依赖集中,存在这样的属性列X和A,使得且
4.根据权利要求3所述的方法,其特征在于,所述的对近似函数依赖集进行3NF规范化,将3NF规范化后产生的主键集合作为网络表格的实体列,包括:
将近似函数依赖集中的近似函数依赖关系映射到关系矩阵FD[m][n]中,将决定属性间的近似函数依赖关系映射到关系矩阵KK[m][m]中,其中m是位于近似函数依赖蕴含左边的属性数目,即决定属性数,n为网络表格中所有属性列的数目:
(1)FD[m][n]的元素产生如下:
设α∈{决定属性集},β∈{所有列属性集}
1)如果α=β,则FD[α][β]:=2;
2)如果则FD[α][β]:=1;
3)其他情况,则FD[α][β]:=0;
(2)KK[m][m]的元素产生如下:
设α,γ∈{决定属性集}
1)如果α=γ或者则KK[α][γ]:=1;
2)其他情况,则KK[α][γ]:=-1;
定义在网络表格T中,如果则称Z对X近似传递函数依赖,记为其中Y为近似传递函数依赖的中介键;
根据所述关系矩阵FD[m][n]、关系矩阵KK[m][m]确定近似函数依赖集闭包DC[m][n],根据所述近似函数依赖集闭包DC[m][n]确定只存在直接近似函数依赖中的决定属性和中介键,将所述只存在直接近似函数依赖中的决定属性和所述中介键作为网络表格的实体列输出。
5.根据权利要求4所述的方法,其特征在于,所述的根据所述关系矩阵FD[m][n]、关系矩阵KK[m][m]确定近似函数依赖集闭包DC[m][n],包括:
步骤1、将FD[m][n]中的元素复制到DC[m][n];i:=0;i表示KK[m][m]中第i个近似函数依赖;
步骤2、i:=1;
步骤3:判断是否在KK[m][m]中存在,且在DC[m][n]中存在,如果是,则DC[m][n]:=βi并且执行步骤4;否则,直接执行步骤4;
步骤4:判断KK[m][m]中是否存在第i+1个近似函数依赖,如果存在,则执行步骤5;否则,直接执行步骤6;
步骤5:i:=i+1,返回步骤3;
步骤6:判断DC[m][n]是否发生变化,如果发生变化,则返回步骤2;否则,输出DC[m][n],流程结束。
6.根据权利要求5所述的方法,其特征在于,所述的根据所述近似函数依赖集闭包DC[m][n]确定只存在直接近似函数依赖中的决定属性和中介键,包括:
步骤1:输入DC[m][n],FD[m][n];
步骤2:i:=0,j:=0;i,j表示DC[m][n]的行号和列号;
步骤3:判断DC[i][j]!={0,1,2}&&FD[i][j]=1&&FD[j][i]=1是否成立,如果成立,则DC[i][j]:=1,并且执行步骤4;否则,执行步骤4;
步骤4:判断是否已全部遍历结束,如果已经全部遍历,则设置i:=0,j:=0,并且执行步骤5;否则,取下一个DC[i][j],并且执行步骤3;
步骤5:判断DC[i][j]!={0,1,2}是否成立,如果成立,则Entity{}:=DC[i][j],并且执行步骤7;否则,执行步骤6;
步骤6:判断DC[i][j]=1&&i!=j是否成立,如果成立,将i行的决定属性赋值给Entity集合,并且执行步骤7;否则,直接执行步骤7;
步骤7:判断是否已全部遍历结束,如果全部遍历结束,则输出Entity集合,流程结束;否则,取下一个DC[i][j],继续执行步骤5。