《实体解析与信息质量》 - 3.1.3 Algebraic模型
代数模型(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 自反性
3)(a, b) ∈ R and (b, c) ∈ R ⇒ (a, c) ∈ R 传递性
S X S = {(a, a), (a, b), (a, c), (b, a), (b, b), (b,c), (c, a), (c, b), (c, c)}
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)。
等价类和分区
一个元素的等价类简单来说就是通过等价关系与S相关的所有其他元素。用之前的例子来说,
注意不是每个S中的元素都可以生成不同的等价类。在上面的例子中,元素a和c都生成了相同的等价类。事实上,满足下面的条件这种情况时很容易发生的。
集合S的一个分区简单来说就是就是S的非空子集的集合(条件1),该集合不重复(条件2),并且足够覆盖S中的所有值(条件3)。一个集合S上的等价关系R的所有等价类的集合总是由S的分区组成的。
定理3.3:假设R是集合S上的等价关系,那么R在S上的一组等价类是S的一个分区,也就是:
有趣的是,这个处理过程可以使反向的。下面的定理表明了一个集合的一个分区可以用来定义一个等价关系。
ER作为一个等价关系
第一章介绍了术语等价实体引用——也就是,如果两个引用指向相同实体,那么它们就是等价引用。等价引用并不一定是完全相同的,但是从ER视角来说它们被认为是一样的。
定理3.5:如果E是作用于一组实体引用S上的一个ER流程,那么下面的关系
这个理论简单陈述了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场景
定义3.4:一个ER场景是triple(E, S, ω),E为一个实体解析流程,S为通过E处理的一个实体引用的集合,ω表示一个引用的处理序列。
定义3.5:相同引用集上的两个ER场景(E1,S, ω1) 和(E2, S, ω2) 是等价的,当且仅当它们生成S上相同的分区。
一个简单的例子,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相似度定义如下:
定理3.5:如果A和B都是集合S的分区,并且V为A和B所重叠部分的集合,那么
定理3.7: 如果A和B都是S的分区,那么当且仅当A=B时,TWI=1。
定理3.6和3.7表明TWI有一个好的相似度指数的特征,它的指数值为0~1,并且只有当值为1时,两个分区是相等的。
Rand Index 和Adjusted Rand Index
Rand Index和AdjustedRand Index的计算可以用值x,y,z,和w表示,定义如下:
注意到这种情况下Talburt-Wang Index得出了一个与Rand非常相似的结果,但是计算过程就非常简单。
其他的ER产出算法
成对比较算法(pF)以Pair Precision和Pair Recall算法的调和中项来定义,如下:
集群级别比较(cF)有着与之相似的计算,除了在真实分区的交集中计算精度和回调分区类,也就是:
集群级别比较结果TWI和RandIndex的值0.816和0.800非常的接近。
ER度量
除了分区相似度,还有一些其他的用于比较ER场景的有效的度量方法,例如:
ER一致性
ER精确性
合成数据实验
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模型相关推荐
- 《实体解析与信息质量》 - 3.1.2 SERF模型
斯坦福实体解析框架(SERF)是由HectorGarcia-Molina领导的研究小组(Benjelloun, Garcia-Molina, Kawai, Larson, Menestrina,Su, ...
- 时间约束的实体解析中记录对排序研究
时间约束的实体解析中记录对排序研究 人工智能技术与咨询 来源:<软件学报> ,作者孙琛琛等 摘 要:实体解析是数据集成和数据清洗的重要组成部分,也是大数据分析与挖掘的必要预处理步骤.传统的 ...
- 通过xml可以直观的解析GPU信息与进程信息
Linux中运行nvidia-smi命令直接输出xml格式文本,通过xml可以直观的解析GPU信息与进程信息. <?xml version="1.0" ?> <! ...
- LeetCode5382. HTML 实体解析器
LeetCode5382. HTML 实体解析器 文章目录 LeetCode5382. HTML 实体解析器 题目描述 解题思路 AC代码 题目描述 「HTML 实体解析器」 是一种特殊的解析器,它将 ...
- LeetCode 1410. HTML 实体解析器(哈希map)
1. 题目 「HTML 实体解析器」 是一种特殊的解析器,它将 HTML 代码作为输入,并用字符本身替换掉所有这些特殊的字符实体. HTML 里这些特殊字符和它们对应的字符实体包括: 双引号:字符实体 ...
- LeetCode 5382. HTML 实体解析器
5382. HTML 实体解析器 class Solution:def entityParser(self, text: str) -> str:text = text.replace('&qu ...
- dbc文件c语言解析标准,DBC文件解析CAN信息
<DBC文件解析CAN信息>由会员分享,可在线阅读,更多相关<DBC文件解析CAN信息(15页珍藏版)>请在人人文库网上搜索. 1.DBCCAN数据包-基于CANAPE,打开C ...
- Android 开源1:获取并解析网页信息(Jsoup)
Android 开源1:获取并解析网页信息(Jsoup) Android 开源1获取并解析网页信息Jsoup 一程序功能 二程序界面 三程序知识点与创新点 四 总结 一.程序功能 本款APP主要是通过 ...
- BugReport:前端不能成功解析后端信息造成消息阻塞问题
文章目录 1 前端不能成功解析后端信息造成消息阻塞问题 1.1 问题记录 1.1.1 问题场景复现 1.1.2 问题业务开发情况 1.2 问题剖析 1.2.1 WebSocket协议 1.2.1.1 ...
最新文章
- 精心推荐10个高质量的网站,打开新世界的大门
- 关闭Delphi的RTTI
- 毕业设计:基于Springboot实现求职招聘,校园招聘系统
- java同步方法完成案例_Java同步代码块和同步方法原理与应用案例详解
- SoftPool算法详解
- 怎么样把Java的字符串转化为字节数组?
- python的argparse模块
- 【英语学习】【Level 08】U03 My Choice L5 The star that shines the brightest
- mysql 统计存在加1_mysql 假设存在id则设数据自添加1 ,不存在则加入。java月份计算比較...
- centos5编译内核
- 深入理解MyBatis缓存
- (简历来自拉勾)H5前端工程师:
- 解决黑苹果核显HD4400开机卡在“io console user: gio screen lock state 3”问题/HD4400核显只有7M问题
- C#调用QQ邮箱简单代码(网络摘抄笔记)
- Android组件化开发实践和案例分享 1
- 满分室间质评之GATK Somatic SNV+Indel+CNV+SV(下)性能优化
- 欧美相关出口企业要注意了!
- 驾考一点通维语版_2021驾考宝典维语版
- PCB设计相关经验分享【From EDN China】
- 二十八、JDBC基础编程练习
热门文章
- (转)写给找工作的朋友们
- 金融结算系统的基础业务之账户体系结构分析
- 论追热点,我不是针对谁,我是说在座的各位......
- 使用windows必备的185个技巧
- c#中的命名空间、类
- C++ 线程里面延时1秒的技巧
- 基于javaweb+mysql的学生在线选课系统(管理员、教师、学生)
- ORers‘ Bling Chat | 【高光聊天记录集锦-03】:运小筹读者群里那些热烈的讨论
- 2017便利蜂前端一面
- java 鱼眼照片的矫正_使用OpenCV校准鱼眼镜头