实体引用抽取: ERA1
许多与数据处理相关的系统设计,都会基于这样一个假设:即它所处理的数据源所包含的是结构化的数据。所谓结构化数据,是指该数据源中的实体信息以一种一致的,可被预测的形式组织起来的。举例来说,关系型数据库系统中的行-列格式,其中每一行代表了一个实体引用,而实体引用的属性值也总是在任意一行以相同的顺序出现。因此数据库可以被认为是结构化的数据源。
只有当获取实体引用的数据源中,存储的是非结构化的数据时,实体引用抽取(ERA1)才是必须的步骤。
最常见的两个结构化数据格式,分别是定长字段格式以及字符分隔格式。
在定长字段格式的数据源中,每条记录的属性值在该记录中总是有着相同的起始位置和结束位置。
在字符分隔格式的数据源中,实体引用的属性按照一定的顺序排列,并被称作字段分隔符的特殊字符分开。常见的字段分隔符包括逗号和Tab字符。也正因为如此,字符分隔格式的文件也常常被称为csv(comma-separated value)文件。
字符分隔符有时也会出现在属性的值里。为了避免产生歧义,会使用文本修饰符来加以区分。将属性值用文本修饰符注释起来,可以避免属性值中出现的字符分隔符被错误识别。常见的文本修饰符有引号或是省略号。
扩展标识语言(XML)是另一种结构化的数据格式,它将所有的属性值标记在互相嵌套的标签之中。XML是一种灵活,但十分昂贵的数据结构。它在许多场景中都有着广泛的应用,并已经被W3C(World Wide Web Consortium)组织认定为标准的数据格式。
用HTML语言编写的网页内容更像是一种半结构化的数据。对网页内容的处理要比处理自由的结构文本(Hashemi, Ford, Vanprooyan, Talburt, 2002; Bahrami, 2010)要相对容易得多。
表1.1展示了三种不同的结构化数据的表现形式。其中,SMITH与JR之间的逗号乃是第二个属性值的一部分。
表1.1 JOHN SMITH,JR的三种结构化形式
在定长格式中,英文名字(例中的单词JOHN)始终会出现在位置1到9,而英文姓(例中的SMITH,JR)则始终出现在位置10到19。
而在分隔符格式中,姓和名分别被文本修饰符双引号包围,并用字段分隔符逗号分开。
不论是定长格式还是分隔符格式,字段在该格式中出现的顺序都是预定义好,不可改变的。而在XML格式中,由于不同字段会由不同的标签包含,因此出现的顺序无关紧要。
在非结构化的数据中,实体的属性并没有固定的格式或是显式的标记来加以区别。举例来说,假定我们的数据源是一张人脸的照片,而要收集的实体属性则是关于人的面部特征的信息。如果想要对面部特征信息加以分析和比较,则首先必须首先要从照片中将有关面部特征的信息抽取出来。在图片处理领域,这个过程被称为特征抽取,在本文中,我们用实体引用抽取(ERA1)这样一个更宽泛的术语来概括这一过程。
图1.4展示了在Email消息这一非结构化的文本中出现人名“JOHN SMITH”的情况。
图1.4 John Smith,JR 的非结构化数据形式
Inmon and Nesavich(2008) 指出,现今的组织机构中,绝大多数的重要的组织信息,都存在于非结构化的文档中,这些非结构化的文档也常常被称为非结构化文本信息(UTI)。
有趣的是,人类本身对于非结构化数据,诸如描述性文本,声音以及图片的认知,基本上没有任何困难。举例来说,每一篇结婚通告的内容格式都不一样。然而任何一个识字的人,都能轻易地从报纸上的一篇结婚通告中,识别出新郎新娘的姓名,婚礼的时间和地点,以及其它的与该事件相关的信息。尽管人类可以毫无障碍的处理这些数据,可对于计算机来说,则需要应用非常复杂的相关语言的语法规则,才能将它们找出来(Chiang, Talburt, Wu, et al., 2008; Wu, Talburt, Pipenger, et al., 2007)。第七章我们会介绍与数据密集型计算以及数据驱动模型,这些新的发展趋势有望降低处理非结果化数据时的复杂性。