代数模型(AlgebraicModel)

尽管一个ER处理流程的实现存在着一定的复杂性,譬如在Fellegi-Sunter模型和Swoosh算法中所描述的,它的结果可以简单的用术语等价关系来描述,该术语是抽象代数中的基本概念(Rotman,2005)。代数模型首次提出作为一个方法来为实体解析实现信息质量指标(Talburt,Wang,Hess,Kuo,2007),并已经被扩展成第四章所提到的包括ER描述和基于实体的数据集成(EBDI)。

等价关系

等价关系是一个非常强大的代数结构,它可以将相等的概念概括成更宽广的等价性概念。相等意味着两个事物是完全一样的,任何方面都完全相同,然而等价的意义是两个事物不一定是完全相同的,但是它们在某些方面或特征上的本质是相同的。几何学中的一个简单例子,考虑全等三角形的情况——顶点的角度完全相同的三角形。全等三角形并不都是完全相同的,因为它们可以有不同的大小,但是它们都是相同的形状。所以,在形状方面,全等三角形被认为是等价的,尽管它们不完全一样——也就是,它们在形状上是相等的。

定义3.1:集合S上的等价关系是,任何S的子集都需要满足下面的条件(Rotman,2005):

1) a ∈S ⇒(a, a) ∈ R                                                         自反性

2)(a, b) ∈ R ⇒ (b, a) ∈ R                                                                对称性

3)(a, b) ∈ R and (b, c) ∈ R ⇒ (a, c) ∈ R                     传递性

以上三种条件是相等和等价关系的一个直观要求。一个事物与自身完全相同,并且如果两个事物完全相同,那么表达它们的恒等性的顺序并没有区别,也就是说第一个事物等同于第二个事物和第二个事物等同于第一个事物,这两种说法是相同的。最后,如果第一个事物等同于第二个事物,第二个事物等同于第三个事物,那么必须遵循第一个事物与第三个事物也同样是相等的。

另一个关于等价关系的例子,集合S={a,b, c},那么

S X S = {(a, a), (a, b), (a, c), (b, a), (b, b), (b,c), (c, a), (c, b), (c, c)}

现在取S X S的子集R,由以下五对组成:

R = {(a,a), (a, c), (b, b), (c, a), (c, c)}

S X S的任何子集都与S有联系,但是上面这些关系只有满足定义3.1中的自反性、对称性和传递性,才是在S中的等价关系。这三个条件中的每一个都必须通过测试来决定R是否真正在集合S中是等价关系。

自反性,就是测试是不是S中的每个元素x都能够在R中找到有序对偶(x,x)。这个例子的答案是能够找到,因为S中的三个元素a,b, c,确实能够在R中找到(a,a),(b, b),(c, c)。

对称性是只需要看R中的所有关系对(x,y),x和y是不同的。上面的情况下,只有两个关系对(a,c)和(c,a),很明显这个条件是满足的,因为R中的每个关系对(x,y),都能在R中找到颠倒对(y,x)。

传递性有点难发现,它要求在R中找到关系对(x,y)和(y,z),第一对的第二个元素与第二对的第一个元素是相同的。发现这种情况时,就必须满足由第一对中的第一个元素和第二对中的第二个元素组成的关系对(x,z)也能够在R中找到。不管是x=y还是y=z,该条件都是满足的。在这个例子中,只有两种情况是有效的,一个是(a,c)和(c,a)的情况,问题是(a,a)是否在R中,答案是在。另一种情况是(c,a)和(a,c),问题是(c,c)是否在R中,答案当然也是在的。因此R满足定义3.1中的三个条件,所以它是S上的等价关系。

注意到只有自反性条件要求R必须包含所有元素对,如果集合S有N个元素,那么R必须也至少有N个元素,如(a,a), (b, b),….等等。R中所以关系对必须满足定义3.1中的自反性条件。作为一个必要条件,仅包含形如(x,x)的关系对是等价关系的一个充要条件,因为在这种关系下对称性和传递性是绝对满足的。因此,对于任何有N个元素的集合S,最简单的等价关系是只有N个形如(x,x)的有序对偶组成的集合。

等价类和分区

定义3.2:假设一个集合R,R是集合S上的等价关系,那么

被叫做a的等价类,

代表R中所以等价类的集合。

一个元素的等价类简单来说就是通过等价关系与S相关的所有其他元素。用之前的例子来说,

那么

注意不是每个S中的元素都可以生成不同的等价类。在上面的例子中,元素a和c都生成了相同的等价类。事实上,满足下面的条件这种情况时很容易发生的。

定理3.1: 假设一个集合R,R为集合S上的等价关系,那么

换句话说,如果S中的两个元素是等价的,它们将会生成相同的等价类,同样的,如果S中的两个元素生成了相同的等价类,那么它们也是有关联的。所有论证都直接证实了定义3.1和定义3.2。等价类的另一个属性是这两个元素要么是等价的,要么是互斥的。

理论3.2:给定一个集合S上的等价关系R,那么

这个理论简单陈述了S中的两个元素可以生成相同的等价类或者他们的等价类是互斥的。这个理论很简单。假设等价类是由a和b生成的并且不是互斥的,那么它们肯定有一个相同的元素——比如说,元素c。这必须遵循a和b都必须与c等价。根据传递性,a必须与b等价,由定理3.1可知,两个等价类必须是相等的。当集合S子集的集合有以上三个属性时,就被称为集合S的分区。定义3.3对这些属性给出了一个更为正式的称述。

定义3.3:集合S的分区可以是任何一个如下定义的集合P:

1.

2.

3.

集合S的一个分区简单来说就是就是S的非空子集的集合(条件1),该集合不重复(条件2),并且足够覆盖S中的所有值(条件3)。一个集合S上的等价关系R的所有等价类的集合总是由S的分区组成的。

定理3.3:假设R是集合S上的等价关系,那么R在S上的一组等价类是S的一个分区,也就是:

由定义可知,每个等价类都是S的子集。当然,一个等价类不可能是空的。等价关系的自反属性要求每个元素都与自身相匹配,因此每个等价类都必须至少包含生成该类的元素。同样的原因,所有等价类的并集也都必须是整个集合S,因为S中的每个元素都会在它生成的等价类中。由定理3.2可知,不同的等价类不会重叠。因此,一个集合上等价关系中所有等价类的集合是由该集合的分区得来的。

有趣的是,这个处理过程可以使反向的。下面的定理表明了一个集合的一个分区可以用来定义一个等价关系。

定理3.4:假设P为集合S的一个分区,那么集合R

R是S上的等价关系,此外

这个定理可以通过分区和等价关系的定义来证明。该定理的重要性是它们生成的等价关系和分区是可以互换的。换句话说,S上的等价类和分区之间有个一对一的关系,S上的每个等价类都唯一定义了S的一个分区,S的每个分区也都唯一定义了S的等价关系。

ER作为一个等价关系

第一章介绍了术语等价实体引用——也就是,如果两个引用指向相同实体,那么它们就是等价引用。等价引用并不一定是完全相同的,但是从ER视角来说它们被认为是一样的。

定理3.5:如果E是作用于一组实体引用S上的一个ER流程,那么下面的关系

定义了S上的一个等价关系。

这个理论简单陈述了ER等价实体引用定义的一组引用上的一个关系就是一个等价关系。即,ER等价也是一个代数等价。证明该理论是否成立并不难。假设A,B和C都是S上的引用,由第一章中的唯一引用假设可知,A唯一指向实体X,那么(A,A)∈R。所以ER等价是自反的。若(A,B)∈R,那么A和B都指向相同的实体X。很明显,A和B都指向X,由于引用的顺序是不重要的,那么(B,A)∈R。因此ER等价是对称的。最后,假设(A,B∈R,并且它们都指向实体X,再假设(B,C)∈R,它们都指向实体Y。为了满足第一章中的唯一引用假设,必须遵循如果B指向实体X和实体Y,那么X和Y必须是同一个实体,所以A和C都指向了同一个实体X,因此(A,C)∈R,ER等价是传递的。由上可知ER等价满足定义3.1,即E定义了一个代数等价关系。

同样的,区分ER作为链接等价引用和两两链接的真实机制也及其重要的。根据上一节中R-Swoosh例子中所指出的,匹配方法M使r1和r3匹配,r3和r5匹配,但是r1和r5并不匹配。这意味着匹配函数M是不传递的,且自身并没有定义一个R上的等价关系。然而,M与合并方法μ,加上R-Swoosh算法的应用解决了R合并成两个不同的记录或身份。最后一条记录MaryJones是合并引用r2和r4所生成的,Edgar/Eddie是由引用r1,r3和r5合并所生成的。即使M本身并没有定义R上的等价关系,最终的结果根据R-Swoosh算法应用R和μ到R上生成了一个R上的等价关系和两个等价类{r1,r3,r5}和{r2,r4},这两个等价类相当于算法的最后输出结果。

不要将ER流程的输出和真实情况相混淆也同等重要。事实上ER流程定义了一个等价关系只是ER流程操作一个工件的方式。很明显,一个ER流程将一组引用划分成一些不相交的子集(有时成为集群),该子集中的所有记录通过流程被断定为指向相同的实体。划分机制是为每个引用单独分配一个链接标识符,划分的子集是那些有着相同标识符的引用。链接标识符可以被认为是代表一个实体引用的子集。实际上ER流程也许是(通常是)在引用的分区上是错误的。外部的观察者可能会观察到两个有着相同链接标识符的引用实际上是指向了不同的实体(falsepositive),或者两个有不同连接标识符的引用指向了相同的实体(falsenegative)。然而,这确实改变ER流程通过将相同标识符的引用划分成非空不相交的子集,从而创建一个引用集合的等价关系的事实。

虽然ER流程作为定义一个基于一组实体引用上的等价关系是比较精确的,但是仍然有一些实际的问题需要考虑。首先,也是最重要的是在现实中,一些实体引用是很可能产生歧义的。这种歧义通常是由一组不完整的身份属性或一组不完整的属性值所造成的。例如,在一个比较大的学校,姓氏和名字属性对于唯一识别一个学生是不够的,因此需要加入更多的属性。即使有了充足的属性,如果属性的值不存在或不完整也是可能产生歧义的,比如说,名字首字母用来代表名字而不是使用全名的情况。但是,由第一章中所称述的唯一性引用假设可知,我们应该假设它最初是被创建了用来指向一个唯一的实体,也就是,实体引用并不是有意产生歧义的。

ER场景

ER流程的另一个可操作特性是它必须按照引用的时间顺序和序列进行操作。不是所有的引用都可以同时得到解决,如果流程存在依赖关系,在不同序列中处理相同的引用集可能会产生不同的解决结果,也就是,可能会生成一个不同的等价关系和引用的分区。下面的一个ER场景的定义就考虑到了这个问题。

定义3.4:一个ER场景是triple(E, S, ω),E为一个实体解析流程,S为通过E处理的一个实体引用的集合,ω表示一个引用的处理序列。

定义3.5:相同引用集上的两个ER场景(E1,S, ω1) 和(E2, S, ω2) 是等价的,当且仅当它们生成S上相同的分区。

由定理3.5可知,S上的分区和等价关系是可互换的,因此定义3.5也说明了当且仅当ER场景生成S上相同的等价关系,那么它们也是等价的。定义3.5要求场景必须定义相同的引用集上。然而,不同的ER流程和不同事务处理序列组成的不同场景,也未必就不是等价的。

一个简单的例子,S由前面一章中用来说明R-Swoosh算法的五个学生登记记录组成的。表3.11展示了这些引用,并且由引用的顺序即表中的行(行顺序)定义了处理序列(ω1)。

S, ω1

First

Last

DOB

SCode

r1

Edgar

Jones

20001104

G34

r2

Mary

Smith

19990921

G55

r3

Eddie

Jones

20001104

G34

r4

Mary

Smith

19990921

H17

r5

Eddie

Jones

20001104

H15

表 3.11 使用行顺序序列(ω1)的学生登记记录

在这个例子中,假设匹配方法M和之前的相同,也就是,如果x和y代表两个引用,只有当下面的一个或两个条件满足时,匹配方法M(x,y)返回结果为真。

1.       (x.First= y.First) and (x.Last=y.Last) and (x.DOB = y.DOB)

2.       (x.Last= y.Last) and (x.DOB = y.DOB) and (x.SCode = y.SCode)

然而,与R-Swoosh算法不同的是,解决S的ER流程E定义如下:

1.       取S中的第一个引用x,给它分配标识符1,并将x添加到输出;

2.       取S中的下一个引用以及输出中的第一个引用;

3.       求值M(x,y)

a.       如果M(x,y)为True

i.                    为x分配与y相同的标识符

ii.                  将x添加到输出

iii.                重复步骤2

b.       否则继续处理输出中的下一个值y

4.       如果M(x,y)对于输出中的任何一个值y结果都不为真,那么

a.       新增一个值为已经分配的最高的标识符值增1的标识符

b.       分配给x这个新增的标识符值

c.       将x添加到输出

d.       如果输出中有其他的引用需要处理,那么重复步骤2,否则该流程结束

ω1代表表3.10中显示的由S的行顺序所定义的处理序列。引用集S,表3.10中S的行顺序ω1,以及之前定义的ER流程E就创建了一个ER场景(E,S, ω1)。

执行(E,S, ω1)时,第一个引用r1被移到了输出中,并且被赋了值1。下一个引用r2与输出中的r1比较的结果是它们并不匹配,所以标识符值增长为2,并且被赋给了r2,同样的r2也被添加到了输出中。处理r3时,由匹配方法M可知,它与输出中的第一个引用是匹配的,因此r3被赋的标识符值也为1,同样的它也会被添加到输出中。类似的,r4与r2匹配,因此被赋标识符值为2。S的最后一个引用r5,与r1不匹配,但是它与r3匹配,所以它也获得了值为1的标识符并且被添加到了输出中。表3.12显示了执行(E,S, ω1)的最后结果。

S, ω1

Output (E, S, ω1)

First

Last

DOB

SCode

Ident

First

Last

DOB

SCode

r1

Edgar

Jones

20001104

G34

1

Edgar

Jones

20001104

G34

r2

Mary

Smith

19990921

G55

2

Mary

Smith

19990921

G55

r3

Eddie

Jones

20001104

G34

1

Eddie

Jones

20001104

G34

r4

Mary

Smith

19990921

H17

2

Mary

Smith

19990921

H17

r5

Eddie

Jones

20001104

H15

1

Eddie

Jones

20001104

H15

表3.12  执行ER场景(E,S, ω1)的结果

表3.11的结果也可以代表S的分区,分区类是由分组所有引用共享相同的标识符所形成的:

(E, S, ω1)={{r1, r3, r5}, {r2, r4}}

对于这个ER场景,因为它是R-Swoosh算法,所以结果都是一样的,除了E流程的每个等价类对应于R-Swoosh所生成的ER(R)中的单合并记录。

现在考虑一个新的ER场景(E,S, ω2)使用与之前相同的引用集S和相同的ER流程E,但是ω2代表了表3.13中所定义行顺序的不同的处理S的序列。

S, ω2

First

Last

DOB

SCode

r1

Edgar

Jones

20001104

G34

r2

Mary

Smith

19990921

G55

r5

Eddie

Jones

20001104

H15

r4

Mary

Smith

19990921

H17

r3

Eddie

Jones

20001104

G34

表3.13 顺序为ω2的学生登记记录

在执行(E,S, ω2)时,第一个引用r1从输出中移出并且被赋标识符值1.下一个引用r2与输出中的r1比较之后发现并不匹配,所以标识符值增为2并且被赋给r2,r2被添加到输出中。当处理下一个引用r5时(根据顺序ω2),情况跟之前不同,因为r5与输出中的r1和r2都不匹配。因此r5在被添加到输出之前被赋标识符值3。而r4与r2匹配,被赋值2。表3.12中最后一个引用是r3,因为r3与r1匹配,所以r3被赋标识符值1.表3.14显示了执行完(E,S, ω2)后的最后结果。

S, ω1

Output (E, S, ω1)

First

Last

DOB

SCode

Ident

First

Last

DOB

SCode

r1

Edgar

Jones

20001104

G34

1

Edgar

Jones

20001104

G34

r2

Mary

Smith

19990921

G55

2

Mary

Smith

19990921

G55

r5

Eddie

Jones

20001104

H15

3

Eddie

Jones

20001104

H15

r4

Mary

Smith

19990921

H17

2

Mary

Smith

19990921

H17

r3

Eddie

Jones

20001104

G34

1

Eddie

Jones

20001104

G34

表3.14  ER场景(E,S, ω2)的结果

表3.14显示的结果代表S输出的一个分区

在上面的例子中,ER场景(E,S, ω1)和(E,S, ω2)并不是等价的,因为它们没有生成相同的分区。生成不同分区的原因是ER流程E对引用处理的顺序是敏感的。

定义3.5:如果不管引用处理顺序如何,ER流程分区的一组引用都是相同的,那么可以认为该ER流程是序列中立的。

R-Swoosh算法就是序列中立的ER流程的一个例子。如果W代表R-Swoosh的ER流程,那么可以根据该例子给出:

分区相似度

正如ASM提供了一种方法来量化两个字符串特征的相似程度,ER场景在分区方面也提供了一种方法来衡量相似度,也就是,如果两个ER场景的分区是相似的,那么这两个ER场景也是相似的。几个衡量两个分区间相似度的算法已经通过统计与聚类分析被研发出来了。典型的相似度测量用索引来表示,值为0~1。主要考虑选择用索引是因为它在特定的应用程序中很大程度上提供了足够的辨别能力(灵敏度)。两个常用的指标统计聚类分析是RandIndex和AdjustedRand Index。然而,在聚类分析中,样本大小通常比ER流程相对要小,ER流程通常处理数以百万计的引用。不幸的是,Rand, Adjusted Rand,还有其他统计索引指标的计算做的并不是很好。也因为这个原因,虽然计算密集型性较差但仍然有用的相似度算法,包括Talburt-WangIndex(Talburt, Wang, Hess, Kuo, 2007),也被开发出来了。

定义3.6: 如果A和B是集合S的两个分区,A和B的分区重叠部分是集合V,即A分区类和B分区类的所有的非空相交的集合,也就是:

分区重叠的部分最好可以以可视化的表格的形式形成一个相交矩阵,矩阵的每一行代表单一分区类的第一个分区,每一列代表单一分区类的第二个分区,行和列交叉的值为两个类相交的元素个数。例如,表3.15就是之前讨论的ER场景(E,S, ω1)和(E,S, ω2)所生成的两个分区的相交矩阵。

A\B

{r1, r3}

{r2, r4}

{r5}

{r1, r3, r5}

2

0

1

3

{r2, r4}

0

2

0

2

2

2

1

5

表3.15 (E,S, ω1)和(E,S, ω2)的相交矩阵

表3.15中,只有三个单元格相交元素个数不为零,也就是这两个分区间有三个重叠部分。该相交矩阵所表达的信息对于计算这三个分区相似度算法(Talburt-WangIndex, Rand Index, 和AdjustedRand Index)来说是非常有用的。

Talburt-Wang Index

Talburt-Wang索引(TWI)是三种计算中最简单的。它并没有使用到重叠的大小,只用到了重叠的数量。如何S代表一个集合,那么|S|就代表了S的大小,也就是S中元素的个数。

定义3.7: 如果A和B为集合S的两个分区,那么A和B的TWI相似度定义如下:

V由定义3.6所生成的A和B所重叠的集合。

表3.14的例子中:

定理3.5:如果A和B都是集合S的分区,并且V为A和B所重叠部分的集合,那么

证明: 因为分区类不为空,并且从A中给出的分区类X必须至少包含S中的一个元素。由于分区B必须覆盖所有的S元素,所有X必须至少与B中的一个分区类重叠。因此对于A中的每个分区类至少有一个重叠,这就证明了定理3.5中的第一个不等式。相同的论证同样适用于B可证明第二个不等式。

定理3.6:如果A和B都是集合S的分区,那么

证明:只要集合S不为空,那么A和B就都不为空。因此,

由定理3.5可知

因此

仍然使用定理3.5

定理3.7: 如果A和B都是S的分区,那么当且仅当A=B时,TWI=1。

证明:如果A=B,那么

现在假设A≠B,那么肯定存在一个A的分区类X和一个B的分区类Y使X≠Y。这意味着X中一定存在着一个元素不在Y中,或者Y中一定存在着一个元素不在X中。所以X必须至少与B中的另一个分区类重叠,也就是X与B中至少两个分区类重叠。因此,

由定理3.5可知

结合两个不等式可知:

定理3.6和3.7表明TWI有一个好的相似度指数的特征,它的指数值为0~1,并且只有当值为1时,两个分区是相等的。

Rand Index 和Adjusted Rand Index

Rand Index(Rand,1971) 和Adjusted Rand Index(Yeung,Ruzzo,2001)通常使用索引来比较基于外部标准(Hubert,1985)的聚类结果。计算这些索引比TWI要复杂的多,而且涉及到计算成对结合的公式,也就是,给定N个事物,由N个事物组成的成对的总数(忽略顺序)可以用C(N,2)表示,计算公式如下

注意到C(1,2) = 0 ,C(0, 2) = 0。

在交叉矩阵中,Vij代表A的分区类Ai和B的分区类Bj的交集的元素的个数。当Vij>0时,代表了分区之间有重叠。每一行的和Si*等于分区类Ai的元素的个数,每一列的和S*j等于每个分区类Bj中元素的个数。和Smn等于集合S中元素的个数。

Rand Index和AdjustedRand Index的计算可以用值x,y,z,和w表示,定义如下:

将这些公式应用到表3.14的交叉矩阵的数量中如下所示:

注意到这种情况下Talburt-Wang Index得出了一个与Rand非常相似的结果,但是计算过程就非常简单。

其他的ER产出算法

Menestrina, Whang, 和Garcia-Molina(2010)讨论了“成对”比较和“集群级别”比较策略并且提出了一个新的策略叫做合并距离。成对算法与RandIndex算法在计算分区类(集群)的对上非常相似。然而,在成对算法的情况下,只有不同的对被计算了。使用这个分区

如表3.14中所示,分区A生成了一个集合包含四个不同的对:

B生成了包含两个对的集合:

Pair  Precision 可定义如下:

Pair Recall定义如下:

成对比较算法(pF)以Pair  Precision和Pair Recall算法的调和中项来定义,如下:

集群级别比较(cF)有着与之相似的计算,除了在真实分区的交集中计算精度和回调分区类,也就是:

集群级别比较结果TWI和RandIndex的值0.816和0.800非常的接近。

Brizan和Tanzel(2006)定义了一个ER流程效率的算法。该效率算法假定对于一个M引用的集合,它们指向的真实的实体的个数用N表示。对于每个实体,ER流程P的精度和回调与实体相关的可以计算出来。对于一个给定的实体E,精度Pw.r.t. E为被P指派给E的正确的引用的数目,除以P指派给E的所有引用的数目。相似的,回调Pw.r.t E为被P指派给E的正确的引用数目,除以在引用集合中所有正确的引用数目。ER流程P的效率为每个实体的精度和回调的调和平均数。

效率算在特征解析的情况下是非常有用的,这种情况下有着引用可以被关联的特征的固定集合。问题是大多数情况下特征的集合是位置的,所以值N是未知的。以表3.14中的两个分区A和B为例,每个分区代表了ER流程的产出,一个表明了有两个实体,另一个表面了有三个实体。

ER度量

除了分区相似度,还有一些其他的用于比较ER场景的有效的度量方法,例如:

·        引用数量

·        分区类的数量

·        类的平均大小

·        单个元素类的数量

·        最大类的大小

再次使用两个ER场景,

表3.16表明了这两个场景使用上面的方法的比较结果

ER一致性

尽管表3.16中的度量并没有给出任何迹象表明哪个场景更加精确,但是它们提供了两个场景的一个一致性的方法。这在很多情形下是非常有用的,一种情况下可以使用于比较两个不同的ER系统作用于相同引用集的相对性能上,也许作为购买决定的一部分。为了防止引用被两个不同的系统分类,会有一些引用对因为这两个系统而产生不同的链接决策。如果其中一些引用对可以确定哪个链接决策是正确的,那么一些一般性的评价就可以确定那个系统可以提供更好的链接。

另一种相对有效的情况是对系统的修改。再一次,通过比较修改之前和修改之后的结果,该差异分析可以得出这些修改是否可以或多或少生成更精确的结果。这也是一个好的安全检查,以确保程序的更改不会产生副作用或失控错误。

第三种情况是引用集修改了但是ER流程确是固定的。特别有趣的是数据清洗的过程应用于引用上的情况。例如,地址标准化的作用是什么?是它汇集了更多的引用(即增加了平均引用类的大小)?这些新链接是 true positive还是false positive?在执行ER流程之前的其他一些ETL操作也可以提出同样的问题。这也包括将引用集排列成不同情况下的序列,这些情况下ER流程都不是序列中立的。

ER精确性

在已知正确分区的情况下,ER场景的相似度和正确的分区提供了一个度量的精确性。当然,就像数据质量的精确性,如果所有情况都是已知的,数据清洗和ER流程就不是必要的了。在一些特定场景下,真正的链接只在某些引用集的子集中是已知的。这种情况下,真确分区的相似度索引与由ER流程产生的分区相比代表了流程精确性的一个评估。

合成数据实验

正如第一章中所讨论的,大多数ER流程只能访问外部视图的实体。当他们试图从这些引用中组装一个正确的内部视图时,因为内部视图是未知的,所以他们很难评估结果的正确性。然而,在学术环境中,通过创建视图来了解它的内部结构是可能的。这使得流程逆转了,从综合生成一组实体的内部视图开始,然后创建这些实体的各种外部视图。当一个ER流程用于组装外部视图时,那么将ER结果与真正的内部视图作比较来判断其有效性是可能实现的。

2009年,作为教学项目的一部分,一个称之为SOG(Talburt, Zhou, Shivaiah, 2009)的系统设计出来旨在为20067个个体创建一个综合入住历史的集合。每个个体都创建了一个姓名,出生日期,性别还有身份证号。从公开可用的数据中使用真实的地址,合成的身份被随机分配给了一组1到9的地址,为每个个体创建了一个地址(入住)历史。在有些情况行啊,一个男性和一个女性身份共享相同序列的地址。在共享地址的序列中,女性身份的姓氏改用为男性身份的姓氏。每个入住记录创建了一个完整的街道地址和10个数字的电话号码,有些记录还有邮政信箱地址。总共生成了84,515条入住记录。

这个过程的第二步是,从入住记录中创建四个不同格式的文件。每个文件只保留完整记录的某些方面。例如,创建的一个文件包含第一个和中间的名字在一个字段中,姓氏在另一个字段中,一个地址(街道地址或邮箱地址),还有电话号码。另一个文件包含其他一些信息比如说名字,生日,电话号码。在这种情况下,两个文件共享姓名和电话两个共同的属性,这就可能使它们链接到一起。

除了从入住率记录的信息重新格式化,数据质量问题可以在这些文件中体现。包括确实值,损坏的值,各种变化的拼写和缩写(ST,St, Str, Street, STR等等)。每个入住记录复制到至少两个文件,甚至在一些情况下复制到了三个或四个文件。总的来说,这四个文件组成的20,067个实体的外部视图包含了271,142条记录。记录生成了四个文件,它们也给出了记录标识符。记录标识符连同在第五个交叉引用的文件中的正确的实体标识符正确链接了四个文件中的每个记录与它真实指向的实体。

作为练习,这四个文件给被要求创建ER流程的学生用来链接等价引用。学生返回结果是一个不重复的271,142条记录标识符和第二个实体标识符列表显示了哪个记录应该被组合在一起作为分区类标识符引用——本质上是一个分区类标识符。使用交叉引用文件,正确实体标识符可以被添加到每个记录中,允许学生分区与正确分区比较。表3.17中显示了五组对该问题的处理结果,结果根据TWI排列,但是也显示了其他的指标。

TRUE

Team 6

Team 4

Team 3

Team 1

Team 2

Team 5

TWI

1.00000

0.52853

0.49305

0.41863

0.41692

0.38091

0.36875

Class cnt

20,067

54,905

78,880

114,313

111,502

138,027

147,531

Overlap cnt

20,067

62,803

80,693

114,409

113,456

138,166

147,553

Avg. class size

13.5

4.9

3.4

2.4

2.4

2.0

1.8

Class Distribution

1

158

31,485

41,721

79,919

42,263

98,162

85,526

2

397

5,069

9,803

8,403

32,301

12,080

30,377

3

594

5,218

10,404

11,156

17,390

14,016

20,315

4

759

1,594

2,497

2,272

6,603

2,734

3,031

5

913

903

1,180

1,680

4,666

2,076

2,071

6

969

1,020

2,534

1,835

3,031

2,068

4,522

7

984

695

1,058

1,187

2,080

1,322

149

8

969

583

865

1,001

1,325

1,087

597

9

948

1,023

1,676

1,029

800

959

943

10

1,049

694

1,005

860

432

771

0

10+

12,327

6,621

6,137

4,971

611

2,752

0

Max. size

52

2,260

542

41

33

31

9

Rank

1

2

3

4

5

6

表3.17 使用合成数据作为学生ER结果的度量

结果展示了典型的趋势是在错误的falsenegatives方面小心谨慎,而不是falsepositives(超固结性),尽管第6组确实为相同实体创建了一个单独的2,260个引用的类。任何一组的最大平均类的大小只有5,真实平均数与之相比超出了13。

《实体解析与信息质量》 - 3.1.3 Algebraic模型相关推荐

  1. 《实体解析与信息质量》 - 3.1.2 SERF模型

    斯坦福实体解析框架(SERF)是由HectorGarcia-Molina领导的研究小组(Benjelloun, Garcia-Molina, Kawai, Larson, Menestrina,Su, ...

  2. 时间约束的实体解析中记录对排序研究

    时间约束的实体解析中记录对排序研究 人工智能技术与咨询 来源:<软件学报> ,作者孙琛琛等 摘 要:实体解析是数据集成和数据清洗的重要组成部分,也是大数据分析与挖掘的必要预处理步骤.传统的 ...

  3. 通过xml可以直观的解析GPU信息与进程信息

    Linux中运行nvidia-smi命令直接输出xml格式文本,通过xml可以直观的解析GPU信息与进程信息. <?xml version="1.0" ?> <! ...

  4. LeetCode5382. HTML 实体解析器

    LeetCode5382. HTML 实体解析器 文章目录 LeetCode5382. HTML 实体解析器 题目描述 解题思路 AC代码 题目描述 「HTML 实体解析器」 是一种特殊的解析器,它将 ...

  5. LeetCode 1410. HTML 实体解析器(哈希map)

    1. 题目 「HTML 实体解析器」 是一种特殊的解析器,它将 HTML 代码作为输入,并用字符本身替换掉所有这些特殊的字符实体. HTML 里这些特殊字符和它们对应的字符实体包括: 双引号:字符实体 ...

  6. LeetCode 5382. HTML 实体解析器

    5382. HTML 实体解析器 class Solution:def entityParser(self, text: str) -> str:text = text.replace('&qu ...

  7. dbc文件c语言解析标准,DBC文件解析CAN信息

    <DBC文件解析CAN信息>由会员分享,可在线阅读,更多相关<DBC文件解析CAN信息(15页珍藏版)>请在人人文库网上搜索. 1.DBCCAN数据包-基于CANAPE,打开C ...

  8. Android 开源1:获取并解析网页信息(Jsoup)

    Android 开源1:获取并解析网页信息(Jsoup) Android 开源1获取并解析网页信息Jsoup 一程序功能 二程序界面 三程序知识点与创新点 四 总结 一.程序功能 本款APP主要是通过 ...

  9. BugReport:前端不能成功解析后端信息造成消息阻塞问题

    文章目录 1 前端不能成功解析后端信息造成消息阻塞问题 1.1 问题记录 1.1.1 问题场景复现 1.1.2 问题业务开发情况 1.2 问题剖析 1.2.1 WebSocket协议 1.2.1.1 ...

最新文章

  1. 精心推荐10个高质量的网站,打开新世界的大门
  2. 关闭Delphi的RTTI
  3. 毕业设计:基于Springboot实现求职招聘,校园招聘系统
  4. java同步方法完成案例_Java同步代码块和同步方法原理与应用案例详解
  5. SoftPool算法详解
  6. 怎么样把Java的字符串转化为字节数组?
  7. python的argparse模块
  8. 【英语学习】【Level 08】U03 My Choice L5 The star that shines the brightest
  9. mysql 统计存在加1_mysql 假设存在id则设数据自添加1 ,不存在则加入。java月份计算比較...
  10. centos5编译内核
  11. 深入理解MyBatis缓存
  12. (简历来自拉勾)H5前端工程师:
  13. 解决黑苹果核显HD4400开机卡在“io console user: gio screen lock state 3”问题/HD4400核显只有7M问题
  14. C#调用QQ邮箱简单代码(网络摘抄笔记)
  15. Android组件化开发实践和案例分享 1
  16. 满分室间质评之GATK Somatic SNV+Indel+CNV+SV(下)性能优化
  17. 欧美相关出口企业要注意了!
  18. 驾考一点通维语版_2021驾考宝典维语版
  19. PCB设计相关经验分享【From EDN China】
  20. 二十八、JDBC基础编程练习

热门文章

  1. (转)写给找工作的朋友们
  2. 金融结算系统的基础业务之账户体系结构分析
  3. 论追热点,我不是针对谁,我是说在座的各位......
  4. 使用windows必备的185个技巧
  5. c#中的命名空间、类
  6. C++ 线程里面延时1秒的技巧
  7. 基于javaweb+mysql的学生在线选课系统(管理员、教师、学生)
  8. ORers‘ Bling Chat | 【高光聊天记录集锦-03】:运小筹读者群里那些热烈的讨论
  9. 2017便利蜂前端一面
  10. java 鱼眼照片的矫正_使用OpenCV校准鱼眼镜头