概述
用计算技术成功解决人文主义问题需要在几个不同阶段进行形式化。最经常讨论的阶段是最后一个阶段,在此阶段,将计算学习算法或计算机实现的统计技术应用于(人文主义)数据,从而产生紧迫问题的结果。然而,正如许多数字人文主义者所知,准备数据(即将数据转换为适合计算分析的形式)通常是工作的主要部分,并带来了许多理论上的假设和隐含的偏见。数据准备工作通常也很少处理,在我们对所描述工作的理解上存在很大差距。在这里,我试图解决自己工作中的这一不足之处,并描述一个这样的数据形式化项目,语料库的建设,以支持俄罗斯形式主义叙事结构理论的机器学习。学习目标是弗拉基米尔·普罗普(Vladimir Propp)的民间故事结构理论,即所谓的民间故事形态学(普罗普,1968年),我称该语料库为“ProppLearner”语料库。我已经在其他地方描述了学习阶段的整体成功(Finlayson,2015年),但我仅给出了项目数据准备阶段和语料库内容的缩略图。在此,我将重点转为相反:我会尽力全面了解数据准备的细节,但仅提供学习结果的概述(第1.1节)。在当前的文章中,我将提供有关注释层的关键详细信息以及为什么选择它们的原因,以及成功学习所需的新颖注释层。我将进一步详细讨论如何选择文本,注释过程本身以及由此产生的注释者间协议措施。在结束本文时,我将讨论从这一努力中学到的经验教训,以及这些经验教训如何为未来的数字人文研究寻求探究文本深层语义的方法指明前进的方向。
1学习普罗普的故事形态学
我解决的实际问题是从文本中学习普罗普的民间故事形态学。普罗普的理论从本质上讲就是我们现在将其描述为“情节语法”,它描述了可能出现在他语料库中的民间故事中的抽象情节片断的类型和顺序(普罗普称之为“功能”)。普罗普的理论还描述了故事组织的总体水平(“回合”结构),情节片之间的一组长距离依赖关系(功能对),许多例外情况和其他复杂情况(顺序倒置和三重化)以及共同角色类型(“角色行动圈”)。尽管普罗普的理论是此类理论的第一个例子,并被应用于一系列特定的俄罗斯民间故事,但后来的工作表明了普罗普的方法如何可以推广并应用于不同的文化(科尔比,1973年;邓德斯(Dundes),1964年)。正如我在其他地方所描述的(Finlayson,2015年),能够从数据中学习形态学将是许多学者和科学家的极大兴趣,其中包括民俗学家,文学理论,文化人类学家,文化心理学家,认知科学家,计算语言学家以及人工智能和机器学习。
因此,这项工作的目的是从民间故事本身中学习普罗普的理论,就像普罗普自己所做的那样-使普罗普的思想自动化。那么,普罗普分析的原始数据是什么?他用什么来生成对俄罗斯英雄故事情节潜在规律的复杂描述?当然,普罗普读过民间故事,但很明显普罗普的“数据”不仅仅是字数统计或常见单词和短语的存在。他不是在看民俗学家所谓的“基调”,还是在计算语言学家看来是“关键词”:他不只是寻找所有涉及“巫师”的故事,并将它们组合在一起,使它们与涉及所有故事的故事区分开'沙皇';他也没有将提及“老”男人的故事归为一类,而将涉及“年轻”男人的故事归为另一类。事实上,普罗普特别避免了这种方法,将其作为以前民间故事索引的主要缺点之一,并强调指出,这种方法导致了无原则且通常无信息的分类方案。相反,他坚持要求我们根据更高,更抽象的分组来寻找类别。他说:
让我们比较以下事件:
1.沙皇把鹰交给英雄。鹰将英雄带到另一个王国。
2.一位老人给苏琴科一匹马。这匹马将苏琴科带到另一个王国。
3.一名巫师给伊万放了一条小船。船将伊万带到另一个王国。[…]
常量和变量在前面的实例中都存在。戏剧人物的名称(以及每个属性的名称)都发生了变化,但是它们的动作或功能都没有变化。从中我们可以推断出一个故事通常将相同的动作归因于各个人物。……我们将不得不确定这些功能实际上在多大程度上代表了该故事的经常性常数。(普罗普,1968,第20页)
在这里,普罗普的“原始数据”(即他尝试查找模式的数据)不是主题或关键字,而是演员和动作。他正在研究我称之为故事的“表面语义”,因为它不是被深深地埋藏的那种意义,而是故事的“谁对谁做了什么”。希望小学生从阅读中带走的信息就是这种信息。从这些原始数据中,普罗普试图找到共性和更深层次的模式(与表面语义相反的“深度语义”)。因此,在构建数据以支持自动学习普罗普形态时,我的目标是生成这些“原始”数据,以反映故事的表面语义。
1.1学习结果
尽管我在本文中的重点是数据的准备,但是我将花一点时间来揭示整个研究的结果,以便读者不要怀疑我们花了这么多时间和精力准备什么?
我开发的算法称为“逻辑故事合并(ASM)”,是对称为模型合并的语法学习技术的改进(Stolcke和Omohundro,1994)。简而言之,ASM从最具体的数据语法开始,然后使用数据各部分之间的相似性来一次概括一小部分语法。ASM维护一个分数,该分数是从语法对数据的拟合中得出的,并在无法再找到可改善分数的概括时结束。ASM使用从普洛普对自己的思维过程的描述中得出的一组规则来发现故事之间的相似之处。
总的来说,该算法可以认为是成功的。我使用了三种不同的方法来分析算法的性能。第一个是经过机会调整的兰德指数,该指数用来衡量将事件聚集成普罗普功能的整体质量(Rota,1964年)。在此度量上,算法从1(与普罗普的结果完全匹配)到0(与普罗普不相关)到-1(与普罗普完全相反),得分在0.511到0.714之间,具体取决于计算方式。第二个度量是针对普罗普每个功能的单独F1-measures。这项措施最明显的成功是Propp的“奋斗与胜利”(“ H&I”),反派/缺乏(“ A”)和“奖励”(“ W”)功能,F1-measures均在0.8以上。使用与数据中发现的实例数量成比例的限定符检索其他功能。最终的指标是对实施方式在处理较少数据量时的效果的交叉验证分析,这表明算法在处理较少数据量时的性能仍然相对稳定。
2数据构成
那么,什么信息构成了数据,即故事的表面语义呢?在这里,我们已经谈到了数据准备问题的核心。所包含的信息将确定该尝试是否成功(学习普罗普的形态),可以学到多少信息以及最终结果中可能存在哪些偏见。它还明确列出了我的理论立场,可能使我在以后的批评中容易受到不准确性或不忠(对普罗普的目的而言)的指控。仔细选择此信息至关重要。
为了自动学习普罗普的形态,我们需要明确表示哪些信息?普罗普本人在他的专着的早期对此进行了讨论:
……话剧人物角色的功能是故事的基本组成部分,我们必须首先将其提取出来。为了提取功能,我们必须定义它们。定义必须从两个角度出发。首先,定义决不应该取决于执行该功能的人员。功能的定义通常以表示动作(禁止,讯问,逃跑等)的名词的形式给出。其次,除了叙述过程中的位置,不能定义一个动作。在操作过程中必须考虑给定功能的含义。例如,如果伊凡(Ivan)嫁给一个沙皇的女儿,那完全不同于父亲与两个女儿的寡妇的婚姻。第二个示例:如果在某种情况下,一位英雄从父亲那里获得了100卢布的钱,随后用这笔钱买了一只聪明的猫,而在第二种情况下,英雄就获得了一笔英勇的奖励,以表彰他的英勇行为(在这个故事中结束语),尽管这两种情况下的作用相同(货币的转移),但我们面前还是存在两个形态上不同的元素。因此,相同的行为可能具有不同的含义,反之亦然。从功能对于动作过程的重要性的角度出发,功能被理解为一种角色的行为。尽管两种情况下的作用相同(货币的转移),但我们面前还是存在两个形态上不同的元素。因此,相同的行为可能具有不同的含义,反之亦然。从功能对于动作过程的重要性的角度出发,功能被理解为一种角色的行为。尽管两种情况下的作用相同(货币的转移),但我们面前还是存在两个形态上不同的元素。因此,相同的行为可能具有不同的含义,反之亦然。从功能对于动作过程的重要性的角度出发,功能被理解为一种角色的行为。(1968年,普罗普,第21页)
在以下各小节中,我将详细概述为明确反映普罗普的注意力而明确捕获的信息层。首先,普罗普关注“发生的事情”,在这里我称之为“事件”(第2.1节)。这就是“谁对谁做什么”的“做什么”。此外,他对事件在故事时间表中的位置很敏感。其次,他也关注“谁”和“谁”:代理商和患者(第2.2节)。第三,他从行为的“表面”含义(动词使用“给予”还是“结婚”?)及其含义的意义来关注行为的“含义”。故事情节中的行为(第2.3节)。
许多此类信息无法可靠,自动,直接地从文本中提取出来;也就是说,我们的自动自然语言处理技术无法完成为上述信息层提供无错误解释的任务。因此,通常通过一定程度的人为关注和纠正,以几种不同的方式提取此信息,如表7所示。。标记为“自动”的层表示该层是由机器自动计算的,而不是手动校正或调整的。“自动,带有更正”是指该层是自动计算的,当发现错误时,注释管理器会单方面对其进行更正。“半自动”是指首先对图层自动进行注释,然后由人工注释者以双盲的裁定程序对这些注释进行手动校正。“手动”是指通过双盲,裁定程序完全手动从零开始对图层进行注释。注释过程的详细信息将在第4节中介绍。重要的是,所有用于提取此信息的技术都依赖于大量的语法预处理(第2.4节)。
表7 表示层应用于语料库
组 | 序号 | 表示 | 注释样式 | 测量 | 协议 |
---|---|---|---|---|---|
句法 | 1 | 代币 | 自动,带纠错功能。 | – | – |
2 | 词性标签 | 半自动 | 严格F1-measure | 0.98 | |
3 | 句子 | 自动,带纠错功能。 | – | – | |
4 | 引理 | 半自动 | 严格F1-measure | 0.93 | |
5 | 上下文无关语法解析 | 自动 | – | – | |
参照结构 | 6 | 引用表达式 | 手工 | 严格F1-measure | 0.91 |
7 | 共参考捆绑 | 手工 | Chance-adjusted Rand | 0.85 | |
时间线 | 8 | 时间表达式 | 手工 | 严格F1-measure | 0.59 |
9 | 大事记 | 半自动 | 严格F1-measure | 0.69 | |
10 | 时间关系 | 手工 | 严格F1-measure | 0.66 | |
语义学 | 11 | 微型企业 | 手工 | 严格F1-measure | 0.68 |
12 | 词网感官 | 半自动 | 严格F1-measure | 0.78 | |
13 | 语义角色 | 半自动 | ARG [0–5] F1-measure | 0.60 | |
14 | * 参照属性 | 手工 | 严格F1-measure | 0.72 | |
15 | * 上下文关系 | 手工 | 严格F1-measure | 0.54 | |
16 | * 事件价 | 半自动 | 严格F1-measure | 0.78 | |
道具 | 17 | * 普洛普的戏剧人物 | 手工 | 严格F1-measure | 0.70 |
18 | * 普罗普的功能 | 手工 | Region F1-measure | 0.71 |
图层分为五组。
*表示专门为支持普罗普形态提取而开发的表示形式。
最后,为了衡量自动学习算法的质量,我们需要对普罗普的实际形态进行明确表示-如果可以的话,请使用黄金标准答案(第2.5节)。
对于下面描述的每一层,都有一个随附的注释指南(请参见§4),有时长达三十页,详细描述了该层(这些指南包含在§5中描述的语料库发行版中)。
2.1活动和时间表
为了提取和表示故事的时间表,我使用了一套已建立的表示套件TimeML(Pustejovsky 等,2003;Saurí等,2006)。TimeML包含三种表示形式:事件,时间表达式和时间链接。前两个标记了填充时间轴的对象,最后一个标记了这些对象在时间轴上的顺序。
2.1.1事件
事件是普罗普形态的核心。在TimeML中,事件定义为事件或状态。它们可以像(1)中那样守时,也可以像(2)中那样持续一段时间。在大多数情况下,某些事物获得或保持正确的情况,例如(3)中的“短缺”,被认为是事件。
(1)伊凡从巨龙的身体上击打了他的头。(准时)
(2)英雄们前往遥远的土地。(扩展)
(3)整个王国食物短缺。(固定)
除了通过识别表示事件的单词在文本中标记事件的存在之外,事件还被标记为七种不同类型之一:发生,报告,感知,方面,故意行为,状态和意图状态。这些类型在原始的TimeML注释指南中定义(Saurí 等人,2006年),并且尤其影响事件应如何整合到故事的时间轴表示中。
2.1.2时间表达
除事件外,TimeML还提供时间表达式的标记,这些时间表达式指示时间点或持续时间。每个表达式都是可能不连续的单词序列,表示时间或日期,持续时间多长时间或发生频率多长时间。时间表达式可以是日历日期,一天中的时间或持续时间,例如几小时,几天甚至几个世纪。有趣的是,在这些民间故事中,时间表达极为稀疏,整个语料库中只有142个实例,平均每1,000个单词只有7.5个时间表达。实际上,大多数故事的时间表达少于十个,而两个故事只有一个。这个意外的事实可能是由于民间传说通常发生在未指定的日期,或者完全在历史之外。不管什么原因
2.1.3时间关系
除了发生的事情(事件)和时间点(时间表达)以外,普罗普还对故事中事件的顺序感兴趣。TimeML标准还以“时间链接”的形式提供了标记此信息的功能。时间链接是两个时间,两个事件或一个事件和一个时间之间的关系。它表示这两者之间存在特定的时间关系,例如,它们彼此先发生,如(4)所示。
(4)伊凡到达沙皇之前。(临时性:之前)
时间链接分为三个主要类别,每个类别都有许多子类型,如TimeML注释指南中所述(Sauríet al。,2006)。“时间”链接表示两次,两个事件或一个时间和一个事件之间的严格排序,如(4)所示。六个时间链接是其他链接的逆链接(例如,“之后”是“之前”的逆;“包含”是“包含者”的逆,依此类推)。注释者优先使用该对的一侧(例如,“Before”比“After”优先),除非在文本中将特定类型具体化为词汇。“方面”链接表示事件与其子部分之间的关系,如(5)所示。“从属”链接表示涉及带有参数的事件的关系,如(6)所示。从属链接的好例子是事件,这些事件在他们的论点上施加了一定的真理条件,或者暗示他们的论点是关于未来或可能的世界的。
(5)伊万和龙开始战斗。(视)
(6)伊万的兄弟们忘了唤醒他。(从属)
2.2参照结构
除了事件外,普罗普对演员也很敏感:故事中事件的代理人和患者。代表演员的原始信息是通过引用表达和共同引用链给出的(Hervás和Finlayson,2010年)。语义角色表示(Palmer 等,2005)用于将共指链链接到事件的语义主体和对象。
2.2.1引用表达式
引用表达层标记“引用”某物的单词集合。(7)中用两个下划线标出了两个引用表达式。在这句话中,两个指称对象都是人,即故事世界中的具体事物。
(7)沙皇吻的Tzarina。
这个简单的示例涵盖了许多情况,但是可以引用的任何内容都可能是引用表达式。重要的是,被指对象可能具有或不具有物理存在,如(8)中所述,可能根本不存在,如(9)中所述,或者甚至可能是事件或时间,如(10)中所述。
(8)伊万有一个主意。
(9)如果伊凡(Ivan)有一匹马1,那匹马1将会是白色的。
(10)伊万行进1至遥远王国。这1花了很长时间。
通常,如果使用名词短语来提及某物,则将其标记为对象。此定义具有方便的属性,使我们仅在将事件用作动词时才对其进行标记(例如,上面的“已旅行”)。
2.2.2共参照链
示例(9)和(10)还说明了一个重要的明显点,即,一个参考对象可以在文本中被多次提及。在以上每种情况下,都有一个带有两个引用表达式的引用对象。这两个引用表达式是“共同引用”,因为它们引用相同的引用对象。为了构建引用对象,将所有引用同一事物的引用表达式的集合放到一个共同引用链中。因此,共同引用链是引用同一事物的引用表达式的列表。
2.2.3语义角色
通过引用表达式和共引用关系捕获的引用对象,如果我们不知道他们参加了哪些事件,则对普罗普ian分析没有多大用处。为了将引用对象连接到事件,我使用了众所周知的语义角色标记方案PropBank(Palmer等,2005)。此注释是半自动执行的,自动部分由基本统计语义角色标记器建模,该标记器在其他地方描述的分析器上建模(Gildea和Jurafsky,2002;Pradhan等,2005)。该标签程序在文本上运行,以为每个动词创建参数边界和语义角色标签。每个动词都分配有一个PropBank“框架”,其中最多包含五个角色及其描述。每五个角色(除了两个角色类型适用于所有动词)的广义功能列表中给出表1。
表格1 PropBank框架参数的广义含义
角色标签 | 广义意义 |
---|---|
ARG0 | 主题,代理或主题 |
ARG1 | 对象或病人 |
ARG2 | 仪器 |
ARG3 | 起始状态或起始点 |
ARG4 受益人,最终状态或终点 | |
ARG5 | 方向或属性 |
ARGM | 修改参数,通常增加功能;所有动词都可以采用ARGM,而不管其框架如何 |
ARGA | 代理不是ARG0的代理参数;看例子 |
框架的身份是贴标者未自动注释的唯一信息。注释者需要添加框架,以及缺少参数和语义角色标签,并更正现有的参数边界和标签。有时,PropBank框架集中没有合适的框架,在这种情况下,注释者找到了最匹配的框架并分配了该框架。
PropBank注释方案为文本中的每个动词分配一组自变量(单词范围,可能不连续),以及每个自变量的主要类别角色。在示例(11)中显示了这种标记的简单示例,其中动词带有下划线,并且参数用方括号标记;显示角色标签。此示例还说明了ARGA的用法,这种情况在ARG0参数不是动作的代理的情况下使用,如采用使役结构的动词一样。
(11)[后卫] ARGA(经纪人)向 [Ivan] ARG0(游行者)进军 [ 绞架] ARGM-LOC(地点)。
除了标签外,每个参数都可以用第二个标签(称为“功能”)进行标记。功能将一个自变量标记为履行动词的常见角色,例如提供方向(DIR),位置(LOC),方式(MNR),否定(NEG)或情态(MOD)等。
2.3语义
事件,引用对象及其关系形成了文本表面语义的基本框架。它给了我们“谁对谁做什么”的粗略表述。但是,除此之外,我们还需要表达文本中单词的实际含义,以及事件和所指对象之间的其他关系。为此,在另外四个层次中捕获了形式化的意义表示。Wordnet感官是一种与现有本体相关的标记词义的既定方法(Fellbaum,1998)。剩下的三层是专门为这项工作开发的,旨在捕获表面语义对普罗普分析自动化至关重要的方面。
2.3.1 Wordnet感官
词义消歧(WSD)(Agirre和Edmonds,2007年)是众所周知的自然语言处理任务。在其中,每个单词都从一个意义清单中分配了一个意义。对于普罗普Learner语料库,我使用了Wordnet版本3.0,它是一个有用的有意识清单,因为它具有大量语义信息,既包含在清单本身中(以含义到意义的关系),也包含从外部数据库。
尽管某些WSD算法可以执行得很好,但是对于诸如Wordnet3.0这样的细粒度清单,大多数算法并不比默认的最常出现的基线好很多。因此,并且由于单词含义对普罗普的分析至关重要,因此单词意义的注释完全是手动完成的。虽然Wordnet的覆盖范围很广,但偶尔也缺乏适当的词义。在这些情况下,注释者找到了合理的同义词并替换了该含义。在极少数情况下,他们找不到合适的替代品,允许注释者标记“没有适当的意义”。
2.3.2引用属性
属性是描述单个引用对象的任何内容,而与其他任何内容无关(即不涉及关系)。属性可以以诸如(12)中那样的通用构造来传递,或者作为(13)中的复合名词短语的一部分来传递。重要的是,属性被定义为相关对象的“永久”属性,这意味着它们不应在故事的时间轴上发生变化。如果确实发生更改,则将它们视为TimeML状态,并进行注释。
(12)伊万很勇敢。
(13)锋利的剑。
另外为每个属性分配了13个标签之一,这些标签在表2中列出。标签允许后处理适当地扩展对对象的描述。
表2 指称属性的类别及其含义
类型 | 描述 |
---|---|
物理 | 可见或可测量的特征,例如大小,高度和重量 |
材料 | 指称对象的组成或成分或组成成分之一 |
位置 | 标识对象的空间位置,例如“他的前牙” |
个性 | 人物的非身体性格特征 |
名称/标题 | 昵称,专有名称,标题和其他地址条款 |
类 | 回答“什么样的?” |
起源 | 物体从何而来,例如“蟑螂奶” |
整个 | 所指对象是(或以前)属于 |
序数 | 指示参考对象在集合中的顺序或位置 |
定量化 | 回答问题“哪个?” |
质量量 | 回答问题“多少钱?” |
可数 | 回答“多少?”这个问题的具体数字 |
描述性 | 包含所有不属于另一类的属性 |
2.3.3上下文关系
该表示法标记了文本中指称对象之间的静态关系。像语义角色表示一样,特定的表达式被标记为锚定上下文关系,例如(14)中的“兄弟姐妹”。参与该关系的参照对象被标记有相对于锚点的角色。正如注释者所认为的那样,角色标记可以是Wordnet或PropBank角色。在(14)中,“杰克”将被Wordnet标记为“兄弟”,而吉尔将被标记为“姐妹”。也可以标记隐式关系(即没有锚),如(15)所示,其中可以通过用Wordnet含义标记“它们”来标记“它们” 等于集合{ Jack,Jill } 的事实。 “设置”,“杰克”和“吉尔”都有“成员”的意思。
(14)杰克和吉尔是兄弟姐妹。
(15)杰克和吉尔上山了。他们拿了一桶水。
允许注释者使用Wordnet含义或PropBank角色标记关系角色填充符,从而使表示不仅可以覆盖在词典中角色的特定实例化的关系,还可以覆盖更容易表示为角色的关系角色。动词。例如,在(16)中,可以将“鸡腿”(充当“站立的东西”的角色)称为“支柱”,但是小屋呢?有没有一个好的名词,意思是“东西被举起”?即使我们可以在Wordnet中找到合适的单一意义来涵盖这一特定角色,也无法保证我们能够为关系中的每个角色找到一个统一的意义。
(16)… 站在鸡腿上的小木屋…
由于此表示是专门为这项工作而开发的,因此没有自动分析器,因此该表示需要手动进行注释。
2.3.4事件价
事件价指示事件对英雄有多大的正面或负面影响。这对于普罗普的形态非常重要,因为它为我们提供了有关故事背景下该事件含义的信息。这类似于温迪·莱纳特的积极或消极的精神状态(莱纳特,1981)。化合价范围从-3到+3,包括0(中性)作为潜在化合价,而不是像Lehnert的表示那样局限于正数或负数。表3列出了每种价数在秤上的输入。
表3事件价及其含义
价 | 描述 | 例 |
---|---|---|
−3 | 立即对英雄或其盟友不利 | 公主被绑架了;英雄被放逐 |
−2 | 可能直接导致−3事件 | 英雄与龙之战 |
-1 | 有人威胁发生-2或-3事件 | 女巫威胁要杀死或追逐英雄 |
0 | 不论好坏 | |
+1 | 有人答应+2或+3事件 | 一位老人答应有一天最需要帮助 |
+2 | 可能直接导致+3事件 | 有人将英雄隐藏起来 |
+3 | 立即对英雄或其盟友有利 | 英雄嫁给公主。英雄被赋予了金子 |
对价进行了注释,以填补制图表达套件中的特定空白。在开发ASM算法的过程中,我指出了推断事件价对于发现正确函数的重要性。很多时候,发现该功能所需的信息是隐式的(即,故事文本本身未明确提及)。通常,这些信息具有常识性,例如“如果有人被谋杀,对他们有害”或“有选择地人们通常会选择快乐而不是痛苦”这样的想法。这种常识性推理是积极研究的主题,即使在这种简单的情况下,即使是最先进的推理引擎和数据库也不等于推断所需信息的任务。因此,与其尝试自动提取这些信息,不如说是
2.4语法
因为上面的许多表示层是自动或半自动计算的,所以我还添加了许多语法表示。语法表示是构建语义表示的基础。出于普罗普研究的目的,这些表示本身并不有趣,但是主要用于计算语义表示。这些层包括:令牌,部分语音标签,多词表达(MWE),句子,引语和上下文无关语法解析。
2.4.1代币
为每个文本计算的第一层是令牌表示。令牌定义为简单,连续的字符范围。遵循Penn Treebank标记化约定(Marcus 等,1993),标记标记每个单词或单词组成的位置。重要的是,该约定将诸如“ n't”和“ ve”之类的收缩标记为它们自己的标记,但是将带连字符的单词留为一个大标记。该表示由斯坦福(Stanford)分词器自动计算(Manning 等人,2014年)。尽管令牌生成器非常准确(大于99%),但仍会产生一些错误。发现这些内容后,我自己在所有文本版本中更正了它们。示例(17)显示了一个句子的标记化,其中八个标记中的每一个都带有下划线。
(17)他不会和三头龙战斗。
2.4.2多词表达式
MWE是由多个令牌组成的单词。MWE非常重要,因为许多独立出现在诸如Wordnet之类的有意识清单中,并且必须对其进行标记以将词义附加到它们上。示例(18)显示了两种类型的连续多字:复合名词(“世界纪录”)和专有名词(“吉尼斯世界纪录大全”)。
(18)世界纪录可在吉尼斯世界纪录大全中找到。
MWE可能有也可能没有不相关的插页式令牌。(19)中显示了一个非连续的MWE的示例,即动词-粒子多词“ look up”。
(19)他看着这个词了字典中。
尽管现在有用于MWE的检测器(Kulkarni和Finlayson,2011年),但是在构建语料库时没有可用的检测器。因此,注释者需要手动查找和标记MWE。这不是作为单独的注释任务执行的,而是在注释词义和语义角色的过程中执行的(请参见上文)。
2.4.3词性标签
每个标记和MWE都带有Penn Treebank语音标签的一部分(Marcus 等,1993)。该表示形式是由斯坦福大学词性标注器自动计算的(Manning 等,2014)。标记器的准确性大于98%。在注释词义和语义角色的过程中,纠正了注释者纠正的错误。词性标签是所有其他层的基础-它们对于识别用于语义角色标记的动词,识别用于引用表达式的名词,识别属性的形容词等非常重要。
2.4.4引理
尚未以根形式存在的每个令牌和MWE都用其引理或根形式进行标记。这是一个简单的注释,仅将字符串附加到令牌或MWE。该表示是使用Wordnet词干词素形态的Java实现自动计算得出的(Finlayson,2014年)。词干分析器相当准确,并且在注释词义和语义角色的过程中,注释者纠正了错误。
2.4.5句子
句子在计算语法分析树时很重要,语法分析树本身可用于计算更高级别的表示,例如语义角色。句子仅仅是连续标记的列表,它们是由Stanford CoreNLP句子检测器自动计算的(Manning 等,2014)。句子检测器非常准确,并且一些错误已手动纠正。
2.5 普罗普的形态
为了评估形态学习研究的最终结果,除了原始数据之外,我们还需要普罗普自己的答案标注在语料库上。为此,我将普罗普的形态转换为两种表示形式,一种表示“功能”,另一种表示“ dramatis personae”。
2.5.1戏剧人物
普普确定了他的民间故事中发现的七种角色。此表示由表4中列出的七个标签组成。这些中的任何数量都可以附加到文本中的特定对象。并非所有角色都扮演“戏剧人物”角色,在这种情况下,该对象没有附加标签。正如普罗普指出的那样,在其他情况下,一个角色扮演的角色不只一个。
表4 普罗普的“角色行动圈”及其含义
角色 | 描述 |
---|---|
英雄 | 故事的主角 |
恶棍 | 恶棍的肇事者;与英雄斗争 |
帮手 | 陪伴并协助英雄 |
捐赠者 | 准备并提供魔法代理给英雄 |
公主 | 被寻找的人,不一定是女性 |
调度员 | 派英雄去冒险 |
虚假英雄 | 假装自己成为英雄的人 |
标签“虚假英雄”没有出现在语料库中。
2.5.2功能
对普罗普的功能进行注释是一项微妙的任务。尽管普罗普详细描述了他的形态,但仍未以允许在文本中进行明确注解的方式进行指定。所描述的普罗普方案至少存在四个主要问题:位置不清晰,隐式函数,三重标记不一致,以及在少数情况下,普罗普自己的函数描述与故事中发现的明显不同。
关于位置不明确的问题,例如,请考虑以下Afanas'ev的摘录
故事#148。
沙皇亲自去乞讨制革商尼基塔(Nikita theTanner),使他的土地脱离邪恶的龙,并拯救了公主。那时,尼基塔正在生皮,手里拿着十二张生皮。当他看到沙皇亲自来见他时,他开始害怕地颤抖,他的手颤抖,他撕下了十二张皮革。但是,无论沙皇和沙皇如何对待他,他都拒绝与龙搏斗。于是他们聚集了五千个小孩,送他们恳求他,希望他们的眼泪能使他怜悯。小孩子们来到尼基塔,哭着求他去打龙。尼基塔(Nikita)看到他们的泪水后就开始流下眼泪。他拿起一万两千磅的大麻,用沥青将它脱焦,然后缠绕在自己身上,以免龙吞噬他,
普罗普表示功能B和C的存在。普罗普将B定义为“不幸或不足”;向英雄发送请求或命令;他被允许去或被派遣”,缩写为“调解,结缔事件”。他将C定义为“搜索者同意或决定对抗”,缩写为“开始对抗”。大致上,这两个功能是向英雄呈现任务(B)和接受任务(C)。B到底在哪里?是整个部分吗?是从沉迷的单词到乞求的单词?功能边界应该对应于句子或段落边界吗?孩子们是这个故事中的“ dramatis personae”(调度员?),还是仅仅是沙皇和沙皇的乐器?他们的恳求被视为B的一部分吗?
为了解决这个问题,注释者在识别功能时标记了两组令牌。首先,它们标记了一个区域,该区域捕获了功能的大部分含义和范围。这通常是一个句子,但在某些情况下会扩展到一个段落或更多。其次,它们为函数标记了一个定义词,通常采用单个动词的形式。
隐式函数是第二个问题。这些功能在文本中的任何地方都没有词汇化。关于前面的引用,人们可能会问:“ C到底在哪里?” 这是对付龙的决定。它似乎发生在尼基塔(Nikita)流眼泪与他通过获得大麻准备战斗之间的某个地方,但是它并没有在任何地方直接用言语表达。也就是说,该函数是隐式的。普罗普指出,隐式函数经常发生。但是,他没有办法确定它们何时发生,并不一致地对其进行标记。为了解决此问题,当注释者找不到故事中出现了捕获普罗普指示的功能的一组单词时(在附录III的“功能表”中),他们选择了逻辑上最紧密的事件并用标签标记,
对于不一致的标记三重奏(连续重复两次,三次或四次重复的功能组),或者当指示的功能似乎与故事本身不匹配时,注释者会尽力确定正确的标记。幸运的是,大多数时候,排印错误仅限于功能子类型的分歧,这不会直接影响基于语料库的学习结果。
2.6摘录自数据
为了使读者了解注释文件的实际布局,格式和内容,第一个故事(Nikita the Tanner)的摘录在图1中给出。。该图再现了与文件的第一句关联的xml标记。简而言之,xml文件的组织方式如下:有一个顶级的“ story”标记,其中包含许多“ rep”子标记,每个子标记对应一个注释层。每个标签都有零个或多个“ desc”标签,其中包含代表该层个人的数据(“ desc”是“ description”(又称为“批注”)的缩写)。我从文件中删除了几件事以提高可读性:不显示控制编辑器中文件处理方式的标记(“ factory”和“ param”标记)。还遗漏了版本属性(“ ver”),用于指示正在使用的层规范的哪个修订版。重复的条目(例如标记和词性的详尽注释)已被删除,因为读者可以通过仔细检查来推断模式。那些对细节感兴趣的人可以参考本文附带的数据集中包含的文件格式规范。
图。1
“制革商尼基塔”数据文件的摘录。 红色椭圆[。。。]表示已删除数据以提高可读性。 未显示搭配层和价层,因为它们不包含故事第一句的任何注释
在新标签页中打开下载幻灯片
“制革商尼基塔”数据文件的摘录。红色椭圆[。。。]表示已删除数据以提高可读性。未显示搭配层和价层,因为它们不包含故事第一句的任何注释
3文本选择
普罗普分析了一组特定的故事以得出他的形态。他从亚历山大·阿凡纳斯耶夫(Alexandr Afanas'ev,1957年)收集了俄罗斯经典民间故事集的前100个民间故事。普罗普(普罗普)出于故事的实际原因以故事的原始语言(俄语)进行创作时,我通过翻译对其进行了分析。人类学家对翻译中的故事进行了研究,并且一致认为,对于一阶结构分析,故事的重要语义信息会在翻译中出现。“如果将一个故事翻译成另一种语言,则故事的结构和故事图像的基本特征将保持不变[…]”(Fischer,1963年,第249页)。
普罗普在其附录III中为他分析的故事中的大约一半提供了功能标记:在普罗普的工作的英文翻译中,功能表中只有45个故事,在文本中还分布了少量其他分析。正如其他地方所解释的那样(Finlayson,2015年),我将自己局限于单一动人的故事,因此进一步减少了可能的候选人。在普罗普的几种不同翻译版本中,仅提供了带有功能分析的21个单动故事。易于获取的高质量翻译和注释预算进一步降低了我注释此集合的能力。最后,我留下了十五个单动的故事,如表5所示,总共18,862个单词。
表5 语料中的故事
故事编号 | 俄语标题 | 英文标题 | 字数 | 活动数量 |
---|---|---|---|---|
148 | Никитакожемяка | 制革商尼基塔 | 646 | 104 |
113 | Гуси-лебеди | 魔术天鹅鹅 | 696 | 132 |
145 | Семьсимеонов | 七个西缅 | 725 | 121 |
163 | БухтанБухтанович | Bukhtan Bukhtanovich | 888 | 150 |
162 | Хрустальнаягора | 水晶山 | 989 | 150 |
151 | бабарша | 劳动者沙巴莎 | 1,202 | 236 |
152 | ИванкоМедведко | 熊的儿子伊万科 | 1,210 | 223 |
149 | Змейицыган | 蛇与吉普赛人 | 1,210 | 250 |
135 | ИванПопялов | 伊凡·波波亚洛夫(Ivan Popyalov) | 1,228 | 220 |
131 | Фролка-сидень | Frolka在家 | 1,388 | 248 |
108 | Ивашкоиведьма | 伊瓦什科和女巫 | 1,448 | 276 |
154 | Беглыйсолдатичерт | 逃亡士兵与魔鬼 | 1,698 | 317 |
114 | КнязьДанила-Говорила | 达妮拉·格沃里拉王子 | 1,774 | 341 |
127 | Купеческаядочьислужанка | 商人的女儿和女仆 | 1,794 | 331 |
140 | Зорька,вечоркаиполуночка | 黎明,傍晚和午夜 | 1,934 | 339 |
平均 | 1,258 | 229 | ||
和 | 18862 | 3,438 |
4注释过程
注释由八个团队中的十二个注释者进行。每个团队都由两个注释者和一个评审员组成(有些人在一个以上的团队中工作,或者在项目中间退出),每个团队负责不同的一组注释层,如表6所示。
表6 团队及其负责的层
队号 | 层数 |
---|---|
1 | 词义,言语标签的一部分,引语,MWE |
2 | 引用表达式,共同引用包 |
3 | 时间表达,事件 |
4 | 语义角色 |
5 | 时间链接 |
6 | 引用属性,上下文关系 |
7 | 事件价 |
8 | 戏剧人物,功能 |
如果要注释已建立的表示形式,则可以从可用材料中为注释团队准备注释指南。在为这项工作重新开发制图表达的情况下,我从头开始创建了注释指南。
文本被分成大约3,000个单词的批次,并根据需要分配给团队,通常每1-3周一次。每个注释器都将注释其分配的文本,从而产生两组并行的注释。然后,他们有时会与裁决人见面,但有时会通过视频会议与他们见面。审裁员通常以前曾在相关图层上用作注释器,并且在该图层的注释和细节处理过程中经验更为丰富。然后,仲裁员将注释者文本合并为仲裁文本,在仲裁会议期间,仲裁员在与注释者协商的基础上对该文本进行了更正,以生成黄金标准合并文本。整个语料库的注释花费了大约10个月的时间,涉及超过3,000个工时。
注释是完全通过StoryWorkbench注释工具执行的(Finlayson,2008年,2011年)。StoryWorkbench是用于常规文本注释的平台。它是免费的,开源的,跨平台的,并且用户友好。它为注释多种不同类型的信息(包括本文中提到的所有信息)提供了支持,并以半自动方式进行注释,其中初始注释由自动分析器生成,并且可以由人工注释者进行纠正。重要的是,工作台包括许多简化注释过程的工具。首先,用户界面包含一个快速反馈循环,用于为注释者提供有关注释有效性的信息:当注释在语法上无效或在语义上可疑时,会向注释者显示警告或错误,并提示他们进行纠正。
工作台还包含一个工具,用于自动将来自不同文本的注释合并为一个。该工具不仅用于生成在裁决会议上更正的文本,还用于生成包含在语料库中的最终文本。工作台可以在许多不同级别上扩展,允许使用新的注释层和自动分析器。
由于某些图层的注释依赖于其他图层的完整程度,因此注释被组织为两个阶段的过程。在此过程中,团队1-4将注释和裁定文本,然后是团队5-8。然后将这些文本合并在一起,成为包含所有注释层的最终金标准文本,并且注释管理器在与裁判员协商后纠正了所有剩余的不一致之处。
4.1协议措施
注释的质量可以通过测量注释者之间的协议来评估。跨不同表示形式的最一致的一致性度量是F 1度量,它以标准方式计算(Van Rijsbergen,1979)。我使用F 1度量代替了更为常见的Kappa统计量(Carletta,1996),因为对于大多数表示而言,计算一致的机会水平很困难。F1-measures是两个注释者完成的合并注释的自然产物,对数据有清晰的解释,并允许在不同表示之间进行更直接的比较。表7总结了手动或半自动注释的不同表示形式的协议。
使用F1-measures有三个例外。
首先,我使用机会调整后的Rand指数(Hubert和Arabie,1985)在共同参考层之间达成一致,这是反映长期共同参考链上部分达成一致的较好度量。
其次,使用了一个不太严格的F1-measure来评估语义角色注释。当执行此注释时,我没有意识到原始的PropBank注释项目为注释者提供了预先标记的参数边界选项(来自Penn Treebank校正后的解析树)。这个过程使他们在论点边界方面达到了很高的注释者间协议。相反,我们对语义角色的严格F1-measures在所有文本中平均仅为0.36,这是相当低的。但是,忽略自变量辅助功能,动词句法功能以及除核心自变量之外的自变量之间的一致性,会显示出更高的一致性,这表明表示的核心目标(即捕获动作的主体和患者)是成功的。
第三,普罗普的功能需要特殊的协议措施,其中考虑到将普罗普的专着翻译成一致的注释指南的困难。普罗普的专着原本并不是要作为正式的注解,而是在1920年代提出的叙事理论,甚至还没有计算语言学(或实际上是计算机)之类的东西。普罗普的理论很难转化为精确的注释规范。他对许多职务的身份都含糊不清。他的附录III包含许多不一致之处和变化。这些问题导致严格的F1-measures一致性仅为0.22,这非常低。这个数字似乎并不能反映注解团队的直觉,那就是一旦忽略了微小的变化,协议实际上是公平的。然后,我制定了一个更为宽松的措施,而不是采取严格的措施,其中两个功能标记被认为在功能区域中是否存在实质性重叠(一半以上),以达成一致。这使协议达到了0.71,这与团队的观察结果一致,即注释者确实在宽泛的轮廓上达成了一致。
在四种情况下,一致性低于0.7。首先,时间表达式达到了0.66 F1-measure。这并不是特别令人担忧,因为时间表达式非常稀疏,通常对于时间轴的实际进度是多余的。其次,上下文关系仅达到F1-measure测量值为0.54。这有点麻烦,但是在实际的算法分析中,这种表示法主要用于用个人代替他们所属的组。没有使用其他类型的关系。此外,人工检查了最终时间表,以确保最终事件表示中的所有参与者都是个人,并且当发现一个聚集对象时,将对注解进行适当的更正。因此,这种较小的协议不太可能对结果的准确性产生重大影响。时间链接和语义角色均达到F1-措施约0.6。尽管这些数字低得令人失望,但它们也是套件中两个最复杂的表示形式。这些较低的协议编号自然反映出这样一个事实,即注释者难以牢记这些表示形式的所有复杂性。
5数据发布
本文随附一个存档,其中包含实际的带注释的文件和支持文档。可以从MIT DSpace在线图书馆资源库下载档案。1它包含几种不同类型的文件。
首先,它包含用于训练注释器的注释指南。指南的编号与表6中的团队编号相匹配。这里不仅包括规范的原始开发人员编写的某些层的详细指南,还包括我们每层的概要指南,它们用作注释者的参考和进一步的培训材料。通用注释者和裁判员培训指南也很有趣,它概述了团队进行注释时遵循的一般程序。那些组织自己的注释项目的人可能会发现此材料很有用。
其次,归档文件包含一个以Excel电子表格格式显示的综合清单,其中列出了语料库中所有文本的文件名,字数,来源,类型和标题(俄语和英语)。
最后,归档文件包含StoryWorkbench格式的实际语料库数据文件,这是一种XML编码的分隔注释方案。该方案在文件格式规范文件(也包含在归档文件中)中进行了描述。可以使用任何常规的XML阅读软件来解析这些文件,或者可以使用免费提供的Story Workbench注释工具轻松地加载和编辑这些文件。
6贡献和经验教训
我已经详细描述了俄罗斯民间故事语料库的构建。应用于语料库的注释旨在反映文本的“表面语义”,以支持自动提取普罗普的《故事形态学》。语料库包含15个文本,18,862个单词和18个不同的注释层。正如我在其他地方所展示的那样(Finlayson,2013年),这是有史以来创建的注释最深的叙事语料库。
从这项工作中学到了很多教训。首先是对理解故事所必需的那种广泛的表面语义的干净,正式的注释绝非易事。语料库的注释花费了大约10个月的时间,涉及十二位受过训练的注释者,裁决者和管理者,并且需要3,000多个工时的努力。组装这些数据的大约费用超过125,000美元。这不包括设计用于做注释的工具所花费的多年时间,以及选择注释层,编写和编辑注释指南以及培训注释者所花费的时间。创建这种语料库既昂贵,费时又困难。
毫无疑问,收集到的数据是自动学习普罗普民间故事形态的任务的关键推动力。没有数据,也没有故事语义的形式化,我们将几乎没有机会在项目上取得任何进展。但是,此处进行的过程(经过仔细的,人工校正的注释)不可扩展,并且对于大多数项目而言都不可行。尽管此语料库是同类中已被注释最深的语料库,但从绝对的角度来看,它仍然很小。如果我们要利用本研究中使用的文本语义类型在人文科学领域实现数字学术,那么很明显,我们将需要投资于更多的联合和自动化解决方案,并与机器学习,人工等领域密切合作情报,
无论如何,这项工作及其带来的学习成果表明,我们已经达到了一个点,在此之前,复杂的语义分析(以前属于人文主义专家的领域)可以开始在一定程度上由计算机复制。这预示着人文主义者与计算之间的关系进入了一个新时代的曙光,在该时代中,我们从单纯的单词统计转向推理和相关语义的推断。
参考
- 原文:http://users.cs.fiu.edu/~markaf/doc/j3.finlayson.2015.dsh.llc.fqv067_archival.pdf
- 作者:http://users.cs.fiu.edu/~markaf/