zl程序教程

您现在的位置是:首页 >  IT要闻

当前栏目

面向机器学习的自然语言标注2.1 定义目标

2023-03-09 22:18:08 时间

确定目标与选择数据

对标注目标进行清晰的定义对于任何一个以应用于机器学习为目的的工程来说都是至关重要的。在设计标签集、撰写指南、与标注人员一起工作以及训练算法时,很容易因为细节而迷失方向以至于忘记最终想要实现的目标是什么。有一个清晰的目标用于引导方向有助于标注工作,本章将讨论为目标创建一个好的定义需要做些什么,以及目标会以怎样的方式影响数据集。具体地,我们将考察:

好的标注目标是什么

 哪里可以找到相关研究

数据集如何反映标注目标

为标注人员准备数据

应该为标注人员准备多少数据

本章中你需要对以下问题给出清晰的答案:“我正在尝试做什么?”、“我正在尝试以怎样的方式去完成它?”以及“哪些资源最适合我的需要?”在沿着MATTER循环前进时,对这些问题的答案很可能会改变(语料库建设是一个迭代过程),但是拥有明确的目标将有助于防止偏离轨道。


2.1 定义目标


依据MATTER循环,当前我们正处于“M”的起点——清晰地说明你希望在语料库中进行哪些标注是建立模型的第一个步骤。对于将要进行的标注,你可能已经有好的想法,就如何形成一个好的目标定位以便帮助你在MATTER循环的后续阶段中持续聚焦,本节将给出一些线索。

我们发现可以将目标定位分成两个步骤:第一,对目标进行陈述,以便覆盖标注任务的基本要素;第二,使用这个陈述在关于目标的“怎么样”问题上进一步展开。本节的剩余部分,我们将就如何确定每一部分是否有助于标注任务给出答案。

2.1.1 目标陈述

在此假定你已经有一些想要探索的关于自然语言的问题。(如果你的头脑中还没有一个现成的计划,你可以到附录中查看现有语料库的列表,阅读相关会议的论文集以便寻找你所感兴趣的题目,或者考虑参加自然语言处理竞赛,后者我们将在本章的稍后部分

讨论。)

你能够清晰地阐述你想要做什么吗?如果你不能想出包含一两个句子的概述来描述你的研究目标,在标注任务的剩余部分你将面临许多困难。请注意我们不是在谈论“题材是有趣的”之类的句子——这是一个意见,不能作为标注任务的起点。尝试给出一个类似如下句子的陈述:

 我想用关键词来识别报纸的题材以便建立分类文本数据库。

在形成标注模型之前,这个陈述仍然需要进一步改进,但是它已经对基本问题做出了回答。具体地,它阐述了如下问题:

这个标注工作将用作何种用途(数据库)

标注工作的最终结果是什么(题材分类)

语料库的来源是什么(报纸)

通过何种途径产生标注结果(关键词)

请注意你想要进行的任务可能需要大量的标注工作。例如,假定你对研究幽默感兴趣。即使你拥有时间、金钱和人力来对幽默的各个方面进行综合研究,你仍然需要将任务分解成可以控制的多个部分以便为不同类型的幽默分别进行标注。如果你想了解讽刺和双关语的作用,你可以为每个任务使用不同的词汇表,或者愿意花时间创建一个覆盖所有标注内容的总体标注规格说明,但是我们建议,如果可能,先从小的标注任务开始,再将多个小的标注任务合并起来。

如果你的确有一个宽泛的标注任务需要分解成多个子任务,那么应该在你的概述中清楚地表述:“我想创建一个计划来生成文本和语音形式的笑话,包括双关语、讽刺和夸张。”列表中的每一项都形成一个独立的标注任务和机器学习任务。至少,在开始时将它们组合在一起将使任务变得过于复杂,以至于难以完成标注,更不用说从标注结果中进行机器学习了。

为提供更多上下文,表2-1中给出了更多的仅包含一个句子的概述,用于说明标注工程和已有语料库的多样性。

表 2-1:部分语料库及其用途

语料库 概述

命题库(PropBank) 用于标注动词性命题和命题中的论元及论元所充当的语义角色

手工标注子语料库 用于标注句子边界、词例、词自,词性,名词以及动词语块以及命名实

(Manually Annotated 体。它是美国国家开放语料库(Open American National Corpus, Sub-Corpus, MASC) OANC)的一个子集

宾州话语树库 用于标注新闻文本中事件与命题之间的话语关系,为了学习自然语言 (Penn Discourse TreeBank) 中的话语服务

MPQA意义语料库 用于标注意见,服务于语言的情感分析

(MPQA Opinion Corpus)

时间库(TimeBank) 用于标注新闻文本中的时间、事件以及两者之间的关系,服务于时间 推理

I2b2 2008 竞赛, 任务1C 从医疗记录中判断病人抽烟状态,以便用于医疗研究

(i2b2 2008 Challenge,

 Task 1C)

2012语义评价任务7—— 提供对问题的可选答案;标注工作集中于基于推理寻找最可能的答案

COPA:合理替代的选择

(2012 SemEval Task 7—

COPA: Choice of Plausible

Alternatives)

自然,这并不是一个完整的语料库列表,但是它的确覆盖了不同类型的标注任务。这里没有提供对语料库内容的详细描述,仅回答了推进标注任务所必须面对的一些基本问题。在下一节中,我们将讨论如何将一句话转变为一个标注模型。

2.1.2 提炼目标:信息量与正确性

既然你已经有了语料库的目标陈述,你需要将它转变为任务描述,以便用于创建模型,即标注方案和指南。

在标注语料库时,需要把握好两种情况的界线,一种是进行对任务最有用的标注(信息量高度丰富),另一种是使标注工作对于标注人员来说不会太困难(使标注结果正确性更高)。

一个需要在两者之间权衡的例子是时间信息标注(temporal annotation)。假定你想将这个简单陈述中的所有时间与事件之间的关系都表示出来。

On Tuesday, Pat jogged after work, then went home and made dinner.

图2-1显示了标注所有可能关系时显示出来的样子,从中可以发现为表示时间和事件之间的所有关系需要添加大量的链接。在这些任务中,关系的数量几乎是时间和事件数量之和的二次方(这里有10个关系,因为链接是单向的——如果考虑两个方向,那么将得到20个链接:x * (x ?1),其中x是句子中时间和事件数量之和)。要求标注人员手工完成所有这些标注工作是不切实际的,这样的任务需要耗费难以想象长的时间,如此复杂的标注工作也必然存在大量的错误和遗漏——换言之,低正确率。但是,要求标注有限集合的关系则会导致较低水平的信息量,特别是如果标注指南没有非常认真撰写。我们将在第6章中进一步讨论标注指南。

 

图 2-1:事件和时间之间的所有时间关系

注意: 你可能已经意识到,在这个具体例子中没有必要由人来创建所有的链接——如果A发生在B之前,且B发生在C之前,那么计算机可以依据封闭规则(closure rule)判断出A发生在C之前这个信息,因此标注人员没有必要手工标注该信息。观察任务的哪些部分可以自动完成是一个好主意,尤其是当这样做可以使标注人员的工作变得更简单而没有必要在准确率方面做出任何牺牲时。

围绕信息量与正确性的思考与一个影响标注任务的最大因素密切相关,这个因素就是标注项目的范围。对于标注项目来说有两个角度的范围需要考虑:(1)目标多么深远(标注工作的范围);(2)计划覆盖多少领域(语料库的范围)。我们已经在前一节中稍微谈讨论了(2),并且在以后将会就此做更多的讨论,因此现在将主要考虑(1)。

标注任务的范围

现在你已经通过回答前一节中的4个问题开始处理任务范围这个问题——至少已经将问题缩小为将使用哪些类型的特征(通过回答“达到目标的途径”)和标注的整体目标是什么。但是,将标注任务归入一个一般类后,仍然有大量因素需要考虑。

注意: 一如既往,请谨记MATTER循环实际上是一个循环,因此在循环中前进时,可能会发现导致范围扩大或收缩的新的信息。

使用一般术语来讨论范围是比较困难的,所以让我们来考察一些具体的例子以便了解这些原理如何能够应用于其他的标注项目。在前面讨论的时间信息标注任务中,标注项目的范围与哪些关系对标注工作更重要密切相关。每个句子中的主要事件及其关系更重要吗?只描写句子内部的关系,还是同时描写句子之间的关系?或许你仅仅对具有清晰时间点的事件感兴趣,例如“Jay ran on Sunday”。你认为有必要区分不同类型的链接呢?

在报纸题材分类这个例子中,同样存在类似的问题。在这个任务中,相关的问题是“你希望类型具体到何种程度?”将文章分到较宽的类型(比如“新闻”、“体育”)够吗,还是需要更细致的分类系统,具体到“新闻:全球”和“体育:垒球”(或者甚至“体育:垒球:扬基队”)这样的类型?

注意: 如果这是你首次从事标注和语料库构建工作,你可以从更宽泛的类或者更简单的任务开始——当你熟悉了数据集的复杂细节和标签集时,能够以更有意义和有用的方式对标注项目做进一步的提炼。

如你所见,关于这两个例子的问题现在本质上都变成了关于分类的问题——在报纸分类这个例子中这种相关关系更为明显,但即使在时间关系这个例子中也触及这一主题。通过定义不同的可能关系类型(句间和句内、主动词和其他动词),更容易识别哪些部分与标注任务更相关。

本书是关于标注的,因此如果你有一个标注项目,那么分类就是它的一个部分。这可能涉及文档级的标签,如报纸分类;或者给每个词(或者部分词语)关联一个标签,如词性标注任务;或者在已有的标签之间标注关系。如果你能够将标注任务作为一个分类任务来思考,那么你已经有一个稳固的框架来开始考虑标注任务的范围。在确定哪些特征与数据和标注任务相关时,你可能已经有一些直觉,因此使用这些(起码在初始时)来决定标注任务的范围。这种直觉也能帮助你决定哪个层次的信息量是好的分类结果所需要的,以及你期望标注人员达到何种准确率。

警告: 在开始思考一个主题时,语言直觉是一个特别有效的方式,但它也可能造成误导甚至错误。当你已经开始收集文本并进行一些标注时,如果你发现这些数据并不能契合你的预期,请毫不犹豫地重新评估你的方法。

让我们重新回到前一节的4个问题,看看信息量和正确性如何对在详细说明标注任务的这些方面产生影响。既然你对标注任务的范围已经有了更好的想法,那么就更容易明白在回答这些问题时应该考虑哪些事情。(请注意我们并没有说这些问题易于回答——在信息量和正确性之间权衡是所有层面都需要考虑的问题,在标注工作中往往很难判断到底如何进行取舍。)

标注工作的用途

基于目前已经进行的讨论,这一问题的回答并没有真正地改变过——标注、训练和测试的最终产品是你进行这项标注任务最重要的原因,也是最终对其余问题给出回答的关键。但是,在开始为其他问题给出答案前,时刻提醒自己正在尽力做什么将会对整个工作有所帮助。

如果你对将要使用的机器学习技术有所了解,那么此时也可以将它考虑进来,但这并不是必需的,特别是当你正处在MATTER循环的第一轮中时。

标注工作的最终结果是什么

从分类问题的角度来思考标注工作的范围,现在可以开始描述最终结果所涉及的具体类型。我们不说“将报纸文章分为不同的题材”,而是尝试决定覆盖你感兴趣的所有文章类型需要的题材数量。

警告: 标注任务使用的类型越多,训练高准确度的机器学习算法就可能会越困难。这并不一定意味着一开始就需要对标注工作进行限制,但是在以后的MATTER循环的迭代中,你可能发现需要将某些类型合并。

由于前述原因(可参考图2-1来了解这个任务可能复杂到什么程度),精度与信息量的平衡对于时序关系标注来说是一个需要考虑的重要问题。在这个例子,以及其他相同复杂度的任务中,标注方案的详细程度可能需要经过多轮标注和评价的迭代才能最终得出结论。

对于这两个任务,考虑期望实现的标注结果将有助于回答这个问题。在题材标注任务中,数据库的使用是主要的考虑要点——谁会使用它,为什么使用它?时间标注可用于许多场合,例如文本摘要、时间线(timeline)创建、自动问答等。任务粒度(granularity of the task)也会告诉我们在标注中应该揭示哪些信息。例如,如果你对文本中的主要事件的自动摘要感兴趣,那么你只标注句子中的主要事件之间的关系可能就足够了。

语料库的来源是哪里

既然你已经考虑了标注任务的范围,那么关于语料库范围的具体问题就容易回答了。具体地,可以开始思考来源的分布。换言之,你的数据将来自哪里,怎样对不同的方面进行平衡。

回到报纸分类的例子,考虑是否不同的新闻发表媒介风格差异足够大,使得我们需要训练一个算法来对它们进行区分,或者如果某个来源与其他来源足够相似,那么我们的算法可以将它们识别为一类。《纽约时报》的文章和主题与《华尔街日报》的足够相似,使得我们不需要分别从中选择例子。报纸与那些在线出版的杂志之间呢?你将博客视为新闻来源吗?你将只收录书面文章,还是同时考虑广播录音文本?

对于时间标注,我们的经验是不同的出版物类型和题材对时间在文本中的使用有巨大的影响。如果把儿童故事与报纸文章进行比较,两者中的叙事将表现出什么样的差异?如果你想让你的最终产品覆盖所有类型的来源,这可能是你任务的又一个分裂点——对于不同的叙事题材,你可能需要不同的标注指南,所以应该考虑到底希望使标注任务覆盖多大的范围。

显而易见,这些考虑与任务范围密切相联——范围越大,为使信息量最大化就需要将越多的来源包括到标注任务中。然而,所包括的来源差异越大,就越有可能需要为每个来源设置略有不同的标注任务,如果没有仔细地为每个类型设定任务,就可能导致正确性降低。

查看可能适合你的标注任务的现有语料库的文本也是一个好主意。使用已整理好的语料库(或者一个子集)的明显好处是可以减少你自己需要进行的工作,但是也意味着你还需要使用已经在这些文件上进行的其他类型的标注。参看2.2节中关于语言资源的更多信息。

警告: 不要在一开始就陷入建立完美语料库的理想之中——请记住标注过程是循环的,如果你发现遗漏了一些信息,可以在以后再返回到前面的步骤中时将这些信息补充上。

通过何种途径产生标注结果

在第1章中,我们讨论了语言学层次(音系学、句法学、语义学等),并且为每个层次给出了一些标注任务作为例子。此时,可以开始考虑标注任务应该归入哪个层次,如果你还没有这么做。但是,不要试图使标注任务仅仅处理单一的语言学层次。标注工作与语料库并不总是能够很好地归入一个或者另一个层次,你自己的标注任务很可能也是

如此。

例如,我们在前面用作例子的时间信息标注任务可以很好地归入话语和文本结构层次,但是它还需要依赖于已经标注好的事件和时间。但什么是事件呢?事件通常是动词(“He ran down the street.”),但也可以是名词(“The election was fiercely contested”),或者甚至是形容词,取决于它们是否能表现变化的状态(“The volcano was dormant for centuries before the eruption”)。但是标注事件不是一个纯粹的句法任务,因为(1)不是所有的名词、动词和形容词都是事件,而且(2)单词的上下文决定它是否表示事件。考虑“The party lasted until 10”和“The political party solicited funds for the campaign”这两个句子。这些例子向事件标注中增加了语义成分。

很可能,你自己的标注任务也会受益于融合不同层次的语言学信息。词性标注是一个明显的可以作为附加信息在自然语言处理算法中带来巨大影响的例子:已知单词的词性能帮助进行词义消歧(“call the police”与“police the neighborhood”),判断词语如何发音(思考动词“present”和名词“present”的发音差异——这是美式英语的常见模式),等等。

当然,通常能找到一种折中方案:标注任务所包含的层次(或者层次的一部分——没有必要为所有数据添加词性标签,只需在对判断其他信息有用时加上即可)越多,它所能提供的信息就越丰富。另一方面,任务越复杂,标注人员就越可能感到困惑,进而导致准确率降低。此外,请谨记MATTER是一个循环,因此需要通过试验来判断哪种方案最适合你的标注任务。