郭丽娟,彭 雪,李正华,张 民
(苏州大学 计算机科学与技术学院,江苏 苏州 215006)
树库作为标注了词类、句法和语义等各种语言信息的资源,一方面能为汉语句法学研究提供真实、准确的语言知识;另一方面可以用于训练和测试句法分析器[1]。目前学术界成规模的树库主要包括短语结构树库和依存树库两种类型。和短语结构句法相比较,依存句法具有以下优势: ①更适合描述汉语中词间关系错综复杂的句法结构,并且通过依存关系标签可以直接表达词语之间的句法语义关系; ②形式简单,便于标注; ③句法分析结果的存储空间较小[2]。
现有汉语句法树库的文本主要来源于《人民日报》、语文课本、政府白皮书等规范文本。然而在日益发展的互联网中产生了大量的用户生成数据,例如,产品评论、聊天记录、问题答案等网络用语,极大地丰富了汉语文本。使用在现有的传统树库上训练得到的句法分析器处理网络文本时,其分析准确率急剧下降,说明对于数据驱动的分析模型而言,人工标注数据的规模、质量很大程度上影响着分析结果的准确率。这类分析模型表现出明显的领域相关性,在移植到新领域时,性能会急剧下降[3]。
为了解决这类问题,一方面,学术界有很多学者通过研究树库转换[4-5]、树库融合[6-7]等方法来提高句法分析性能,并改善领域移植效果,然而,受到树库类型和规模的限制,汉语方面还未有比较深入的研究[8];另一方面,便是构建大规模树库以解决此问题。目前在英文网络文本上的树库构建工作已经逐步展开。2012年谷歌组织面向邮件、博客、问题答案、新闻组、评论五个来源的英文网络文本,标注了小规模评测数据,命名为Google English Web Treebank[3]。汉语方面,邱立坤等[8]构建了包括新闻、医药、口语、专利、微博五个领域的汉语依存树库。但与英文相比,面向汉语网络文本的依存句法树库构建进展仍相对缓慢。
基于以上的讨论,我们为了提高汉语网络文本的依存句法分析性能,亟需对不同类型的网络文本分别标注一定规模的语料,为后续的研究工作提供支持。基于对汉语依存树库构建技术比较深入的研究,我们研制了一个新的数据标注规范作为指导,在基于浏览器的在线标注系统中,对于多领域多来源的文本进行程序化的标注,构建了一个面向多领域多来源文本的汉语依存句法树库。
表1罗列了目前公开的较大规模的汉语句法树库。Sinica汉语树库由中国台湾中央研究院构建,从现代汉语平衡语料库中抽取句子进行开发并标注[9]。宾大汉语树库(CTB)最初由美国宾夕法尼亚大学发起,目前由布兰迪斯大学薛念文教授等维护和更新,标注了新闻、评论、广播、访谈等语料[10]。北大汉语树库(PCT)由北大中文系逐步建设[11],标注了语文课本、政府白皮书、新闻等语料。清华汉语树库(TCT)由清华大学周强教授等建设[12],标注了文学、学术、新闻等语料。哈尔滨工业大学汉语依存树库(HIT-CDT)由哈工大社会计算与信息检索研究中心建设[13],标注了《人民日报》语料。北大汉语多视图依存树库(PKU-CDT)由北大计算语言学研究所构建,该树库是以依存语法为核心的多视图汉语树库标注体系,标注了新闻、医药、专利等语料[8]。
表1 目前公开的较大规模的汉语句法树库
我们的目标是面向多领域多来源文本,不断积累,构建大规模的依存句法树库。为达到这个目标,在制定依存关系标签时,我们充分借鉴HIT-CDT、PKU-CDT及通用依存树库(universal dependencies,UD)等树库构建的结果;针对规范的新闻文本,以及网络文本中的各种语言现象,例如,频繁出现的谐音字、插入语、重复、大量表情符、标点符号缺失、旧词新意等现象,结合语言学理论,在标注实践中总结规律,不断扩展,最终制定了一个面向多领域多来源文本的汉语依存句法数据标注规范(目前规范已有60多页),作为整个工作的基础。规范的标签集合如表2所示。
我们了解到,标注规范的制定一定程度上缓解了标注一致性低的问题,但依存关系标签的多样性和句法的模糊性,仍会导致在树库构建过程中不同标注者的一致性较差,给树库构建带来困难。
构建局部标注树库对此提供了一个新的解决思路。局部标注意味着标注者只需要标注句子中部分词语,增强了标注者的注意力,使得标注者可以更加将精力集中在这些词语中。通过这种方式,不同标注者之间更容易得到一致的标注结果,为了能最大程度地节省标注时间和成本,又能尽可能得到更多的对分析器有用的信息,对模型训练更有帮助,我们选取待标注数据的原则及流程如下。
1)选取句子中置信度较低的部分词语进行标注Dozat和Manning[14]提出基于图的神经网络双仿射模型,使用神经网络模型计算一个句子x中每条依存弧的分数。我们利用这个模型来得到句法树分数,即句法树分数只包括了从核心词到依存词的依存弧的分数,如式(1)所示。
(1)
其中,d表示依存句法树,w表示模型参数,Score(h→m)通过神经网络模型计算得到。
该模型使用了CRF-loss,所以每棵句法树的概率如式(2)所示。
(2)
其中,y(x)表示句子x所有可能的句法树。
因此,每条依存弧的边缘概率,就是所有包含这条依存弧的句法树的概率之和,如式(3)所示。
(3)
Li等[15]研究了句法分析任务中,基于局部标注数据的主动学习方法,取得了令人满意的结果。借鉴Li等[15]的工作,我们根据每个词语的最有可能的一个核心词h0=argmaxhp(h→i|x)的边缘概率来衡量每个单词wi的置信度,如式(4)所示。
│x)
(4)
置信度越低说明依存弧越不确定,所以在之后选取出句子时,选取置信度较低的α%的词语进行标注,并将这α%的词语的平均置信度作为句子置信度。
表2 依存关系标签集合
假设一个实际选取任务:“从一批未标注数据池U中抽取1 000句由5~25个词语构成的句子组成待标注数据池U3,U3中每个句子选取50%的词语进行标注”。
我们用上面这个例子来具体阐述选取局部标注词语的流程:
① 句法分析器分析词语的置信度。对于未标注数据池U中每一个句子,使用句法分析器进行句法分析测试,通过句法分析器分析出每个句子中各个词语的置信度,这些带有词语置信度的句子组成数据池U1。
② 选取符合句子长度的句子。从带有词语置信度的数据池U1中选取数据池U2,U2中每个句子由5~25个词语(标点不算词语)组成。
③ 选取一定比例的词语进行标注。
A. 先将数据池U2中的每个句子中的词语置信度从低到高地排序,取前50%(假设句子有6个词语,选取前3=6×50%个)的词语的置信度的平均值作为整个句子的置信度,且每个句子选出的50%词语即为该句的待标注词语;
B. 将U2中的句子按照句子置信度从低到高排序,选取前1 000个句子构成待标注数据池U3。
在选取数据时要遵循高比例优先选取原则。即我们在选取不同要求下的待标注数据时,仅考虑选取句子中待标注的词语比例,比例越高越优先选取,而与句子长度无关。因为句法分析器分析的置信度越低,意味着该词语的标注难度越高,更需要对这类词语进行高比例的选取并标注。
2)舍弃相似度过高且置信度较高的句子
我们按照1)选出一批新的待标注数据后,还要和自身数据池中其他句子,以及已标注过的数据池中所有句子进行相似度计算,确保将新数据中相似度较高且置信度较高的句子舍弃。这样可以避免重复工作,以减少人力、物力,从而使标注者集中对难度较高的句子进行标注,保证标注的数据的高质量,以及多样性。
以计算句子a和句子b的相似度为例,具体的相似度计算方法如下:
A. 为了防止句子分词出错带来的影响,将所有句子处理成以char +bichar为单位,例如:“我 是 中国人 。”处理成“我 我是 是 是中 中 中国 国 国人 人 人。 。 ”;
B. 将句子a中的char和bichar构成一个集合AS,句子b中的char和bichar构成一个集合BS;
C. 相似度计算如式(5)所示。
(5)
相似度Similarity的阈值按实际数据情况来定。
假设句子a和句子b都是待标注句子,且两者相似度超过设定阈值,则舍弃置信度较高的句子。
假设句子a是待标注句子,句子b是已标注句子,且两者相似度超过设定阈值,则舍弃句子a。
3)加入地雷
为了更好地提高数据质量,在按照1)和2)数据选取原则选取一批新数据后,我们会在新的数据批次中将以前标注过的有答案的句子作为地雷混入。我们放入地雷有两大作用:
① 自动评价标注者的标注情况;
② 进一步检查之前的标注结果,以便提高标注质量。
通过以上3个步骤顺序选取出待标注数据,放入标注系统中进行人工标注。
从提高数据质量的目标出发,同时又能最大化减少数据标注管理者的工作,实现大规模数据标注。我们在一个基于浏览器的在线标注系统中进行程序化标注。图1给出了标注系统的标注界面。标注前,所有待标注的词语都用方框标记;当一个方框中的词语用弧和标签标注出它的核心词后,该词语的方框会消失;标注者必须标注完所有方框中的词语,才能单击“提交”按钮。这种标注界面的设计主要是为了支持局部标注(同样也适用于完整标注)。
图1 标注界面
图2给出了一个句子的整个处理流程:
① 标注系统将一个句子随机分配给两个标注者标注。标注完成后,如果两个标注结果完全一致,将答案入库,流程结束。否则进入步骤②。
② 两个标注结果至少有一条弧不一致,就会触发审核机制,系统会将这个句子随机分配给一位专家进行审核,确定唯一答案。进而,标注系统将审核过的答案,反馈给出错的标注者进行学习。学习过程中,如果没有出现投诉,那么就将确定的答案入库,流程结束;否则进入步骤③。
③ 标注人员对答案不认可,提出投诉(若有投诉,我们鼓励标注者多提供投诉理由,以便实现异步沟通,提高数据质量)。系统会将投诉句子随机分配给一位权威专家,确定唯一答案并入库,流程结束。
图2 标注流程图
基于以上的树库构建实践工作,我们目前标注了各1万句左右的三个不同领域的依存句法树库,具体数据来源如表3所示。哈工大CDT分为cdt_v1和cdt_v2两批数据批次;淘宝头条 分为content_v1和content_v2两批数据批次;PCTB7数据为一个数据批次pctb7。对于这些数据,我们按标注时间先后顺序(cdt_v1,content_v1,content_v2,cdt_v2,pctb7)分批次放入系统中标注,分批标注的数据详细信息如表4所示。
表3 数据来源说明表
表4 数据批次信息说明表
标注系统会将一个句子随机分配给两个标注者标注,所以,我们从以下几个方面对每个数据批次进行分析: ①所有标注者标注的依存弧平均准确率、一致性及句子一致性; ②单个标注者标注依存弧的准确率; ③树库标签的分布情况。
其中对于准确率和一致性的计算方法如下:
A. 依存弧的准确率:假设一个句子有5条依存弧需要标注,某个标注者提交的答案中有3条依存弧与最终系统给出的答案相同,则准确率=3/5;
B. 依存弧的一致性:假设一个句子有5条依存弧需要标注,随机分配给a和b两个人标注,两人最终提交的答案(不受他人影响)中一致的依存弧为2条,则一致性=2/5;
C. 句子一致性:假设一个数据批次有10个句子,其中有1个句子被不同的两个标注者标注为完全一致,即需要标注的这个句子中所有依存弧都一致,则句子一致性=1/10。
在计算每个数据批次依存弧的准确率、一致性及句子一致性时,需要注意的两个点是:
① 计算依存弧准确率的分母是计算依存弧一致性的分母的两倍,因为一个句子我们会分配给两个人标注,在计算准确率时,标注者对同一个句子的不同标注结果算作两个不同句子;
② 对于两个人标注一致的依存弧,我们不考虑其正确性,只考虑两人对于一条依存弧的标注理解是否一致。
对于每个数据批次中所有标注者标注的依存弧,对平均准确率、一致性及句子一致性进行了统计分析,如图3所示。结合图3和表4,可以得到以下信息。
图3 各批次整体评价指标
(1) 随着标注工作的推进,标注者的标注水平在逐步上升,整体准确率、一致性及句子一致性都有所提高;整体依存弧准确率都在83%以上,一致性都在70%以上。说明我们为标注工作制定的规范具有一定的科学性、系统性及完整性,可以充分指导标注者标注。
(2) 单从某个数据批次来看,有以下两点。
① content_v2中依存弧准确率和一致性都相对较低。原因是:一方面,和前面两批数据相比,content_v2的句子长度更长,且都是对一定比例置信度较低的词语进行人工标注,一定程度上导致准确率和一致性相对较低;另一方面,和后面两批数据相比,content_v2的句子长度较短,但其准确率、一致性却依旧较低,充分说明了网络文本数据的标注难度要远大于规范文本数据。另外,content_v2中句子一致性比前两个数据批次要高,且多是长度较短的句子,说明标注者更容易理解短句子。
② pctb7中依存弧的准确率、一致性及句子一致性相比cdt_v2都有所下降。原因是:一方面,相较于cdt_v2,pctb7中的句子长度增加,使得标注难度增大;另一方面,pctb7中不仅存在需要标注20%比例词语的句子,而且存在需要标注50%和30%比例词语的句子。说明一个句子中需要标注的词语(且这些都是模型分析出置信度较低的词语)增多也会增加标注难度。因此,在之后的数据选取中,尽量不选过长的句子,且一个句子中按比例选取的需要标注的词语个数不得超过某个设定的参数,超出的词语,我们不作为标注任务,以防标注难度过高,从而影响数据质量。
另外,我们对整个树库中标注不一致的标签进行了统计,计算方法为:如果对于某条弧两人标注不一致,则将该弧对应正确的标签数加1;假设整个数据批次中某个标签正确答案个数为A,被标为不一致的个数为B,则不一致性=B/A,发现标签不一致性较高的几个为:dfsubj(45.14%),cmp(37.97%),sasubj(32.65%),pobj(30.56%),coo(29.67%)。
除了以上对新树库数据的弧、标签进行统计分析外,我们也将新标注的树库和原树库进行了比较。但由于新标注树库与原树库是根据不同标注规范进行的标注,标签不易于比较,所以选择对无标签的弧一致性进行统计分析发现:cdt和原树库CDT的无标签弧一致性为81.58%;pctb7和原树库PCTB7的无标签弧一致性为66.29%。
由于标注者过多,我们选取的分析对象的标准是: ①在5个数据批次中至少标注了3个数据批次; ②标注者在每批数据中标注的依存弧的数目至少达到1 000条。根据以上标准,我们选取了11位标注者并对他们标准的依存弧准确率进行了统计,如图4所示。
图4 单个标注者准确率
从图4中我们可以得到以下信息:
① 11位标注者随着参与标注工作时间的递增,虽然有所波动,但其依存弧准确率整体呈上升趋势。
② 通过观察发现,前5位参与了所有数据批次标注的标注者的依存弧准确率普遍较高,然而后面只参加了3批数据批次的6位标注者标注的依存弧准确率波动很大并且参差不齐。说明标注工作需要长期坚持,中途一段时间不标注,会对规范有所遗忘,对标注质量有所影响。所以在选取标注者时,应该侧重选择可以长期稳定的标注者,以保证标注质量。
③ 通过分析单个标注者在不同数据批次中标注的依存弧准确率,检验标注者是否能以认真的态度去胜任标注工作。比如标注者J,他的标注数量很少,标注的依存弧准确率低于整体准确率,并且他标注的依存弧准确率随着时间的推移并没有提高,反而有所下降,那么针对这样的标注者,我们会考虑对其重新培训或者辞退,以确保标注数据的质量。
由于较多标签的出现频率很低,所以我们对只有在一个数据批次中数量大于100个的标签进行统计分析。在数据中都分别抽取1 000句全标注数据及局部标注数据(20%),由于pctb7这批数据我们没有进行全标注,所以只抽取了局部标注(20%)数据,标签的分布统计如表5所示。
表5 树库标签分布情况表(%)
根据表4和表5分析得到以下信息:
① 无论是在全标注还是局部标注的数据中,用来标注汉语句子中主干(subj(主语)、obj(动宾)、att(定语)、adv(状语)、cmp(补语))关系的标签占比较大。说明汉语句子中这些主干关系对应的词语置信度整体上都较低,体现了人工标注的重要性。
② 用于标注谓语的root(根节点)、sasubj(同主语)和dfsubj(不同主语)这三个标签的占比较大,说明谓词关系在句子中是比较常见的;也能说明从句法角度来看谓词是句子中最重要的词。同时我们可以发现: a)sasubj和dfsubj这两个标签在局部标注数据中的占比远大于在全标注数据中的占比,说明选取局部数据时,这两个标签所对应的词语置信度普遍较低,被大量地选取并标注; b)在content_v2的局部标注数据中sasubj和dfsubj的占比是最大的,说明在长句子的网络文本中谓语句更多。
③ pobj(介宾)和adjct(附加成分)这两个标签的数量占比较大,原因是:对于pobj来说,汉语中的动词和介词理解歧义较大,所以标注者在选择是obj还是pobj时可能会有一些歧义;对于adjct来说,汉语是一种结构化语言,其中有许多只为句子结构完整的助词、叹词等无意义的词语,目前我们都用adjct来进行标注,那么在之后的规范更新中都可以将这些着重考虑。另外,pobj在规范文本中的占比较大,而在网络文本中,助词、叹词等非常常见,所以在content_v1的全部标注数据中adjct这个标签的占比是最大的。
本文介绍了目前我们在面向多领域多来源文本的汉语依存句法树库构建方面所做的一些工作。我们基于前期研制的数据标注规范和在线标注系统,聘请了15位标注者,标注了约3万句的高质量汉语依存句法数据。本文重点介绍了数据选取、标注流程等问题,对标注数据的质量及标注过程中的一些现象进行了统计分析。
通过这些工作,我们在汉语依存句法树库的人工标注方面积累了一定经验。首先,由于句法标注工作的困难性,我们需要在数据以及标注方面都进行严格的流程控制,以确保标注数据质量;其次,通过统计与分析发现,整体数据的标注弧一致性及句子的一致性都较低,需要审核专家进行进一步的检查,体现了双人标注的重要性。目前我们标注的树库规模还很小,未来我们在现有的树库基础上会进一步构建大规模的面向不同领域不同来源的汉语依存句法树库。