本发明涉及一种快速抽取剧本的角色网络(角色为节点,关系为连接,即剧本的虚拟社交网络)的方法,从而方便文学评论家对海量电子剧本进行在线比较与实时理解。
背景技术:
从剧本的格式化文本中抽取网络的挑战主要集中在角色间关系的发现、认定与度量上。目前来讲,主要有两类方法,即基于同现的(co-occurrence)和基于对白的(line)。
同现类方法的思想是,如果发现两个角色在某个场景(或舞台、段落、章节等)中同时出现,那么就将彼此用无向边相连接,其权重(往往表示亲密度)可以是他们协同出现的次数,也可以是他们间相隔文字(或行数)的倒数。
对白类方法是建立在同现类基础上的,并以角色间的台词为直接考察对象。对于角色间有连接的判定,具体方法较多。有研究认为,两角色同在某场景内出现并均有发言即可;另有研究指出,两角色的发声如果先后再现,那么他们之间就是关系;更有研究通过台词间的距离来判定两角色间亲疏(反比);尚有研究利用了一个指数,即角色X台词中提及角色Y与否次数,作为X Y的权重(零代表无关)。再则就是利用自然语言处理(Natural Language Processing,NLP)技术,来辨析角色台词的针对性,并做出较准确的角色有向连接。
对于同现类方法,所抽取出的虚拟社交网络精确度较难保障,其原因在于该类方法无法保证以下三点:1)两角色是否确实有面对面的机会,特别是通过行距与阈值来划分的场景;2)他们之间存在是否真实存在某种直接联系,即使直面对方;3)所抽取的角色关系没有指向。
由于多数剧本的主体是角色对话,因此对白类方法相对更常用,但依然存在着一些需要改善的地方。对于非语义式,无法相对精准地挖掘角色间的直接联系是硬伤;对于自然语言处理式,通过训练,可能对部分剧本较准确,但是对于不同时代、不同风格、不同题材的海量剧本库来讲,其挖掘效果就会大打折扣,同时其复杂度也比其他算法要高,不利于扩展。
技术实现要素:
本发明的目的是通过舞台指示的解析来快速抽取剧本的角色网络。
为了达到上述目的,本发明的技术方案是提供了一种面向剧本的非语义式社交网络抽取方法,其特征在于,包括以下步骤:
步骤1、对剧本中的角色、对白与舞台指示进行重新排版,形成剧本元素格式统一的规格化文档,其中,关于角色及舞台指示中出现的不定代词或连接词利用动态舞台来进行解析,从而用具体的角色名来替代:
对于no行时刻而言,其动态舞台Sno由所有在舞台上的角色组成,即Sno={p|对于no行时刻而言,p在舞台上},p表示角色,舞台或舞台上的角色随着情节的推进而动态变化,通过舞台指示中角色上下场提示信息来跟踪;
步骤2、对步骤1得到的规格化文档进行全本扫描,收集剧本中出现的不同角色;
步骤3、建立角色间的有向连接;
步骤4、计算各有向连接的权重。
优选地,若建立角色X至角色Y的有向连接X→Y,则所述步骤3包括:
步骤3.1、设定角色X的某段对白能促成有向连接X→Y的两个条件,b,e表示剧本的b行及e行,为该段对白的起止行:
条件一:且
条件二:至少存在以下两种情况之一:情况一、对白前存在前驱舞台指示且指示内含“X指示性介词Y”;情况二、剧本b行及e行间存在舞台指示且指示内含“指示性介词Y”;
步骤3.2、将条件一设置为较高优先级后,利用步骤3.1设定的两个条件来计算有向连接X→Y。
优选地,在所述步骤4中,对于角色X的某段对白若能促成角色X至角色Y的有向连接X→Y,那么其权重的最大值Max为e-b,其实际权重根据以下两种情况分别计算:
情况一:对于“X指示性介词Y”:实际权重从b行开始计数,直到发现第一个非“指示性介词Y”舞台指示为止,设该舞台指示的首行为s行,此时有向连接X→Y的实际权重为s-b,如果未发现非“指示性介词Y”舞台指示,则有向连接X→Y的实际权重为Max;
情况二、对于“指示性介词Y”:实际权重从含有“指示性介词Y”的舞台指示开始计数,直到发现第一个非“指示性介词Y”舞台指示为止,此时有向连接X→Y的实际权重为s′-t,s′为第一个非“指示性介词Y”舞台指示的首行,t为含有“指示性介词Y”的舞台指示的末行;如果“指示性介词Y”出现多次,则计算累积值作为有向连接X→Y的实际权重;如果未发现非“指示性介词Y”舞台指示,有向连接X→Y的实际权重为e-t。
本发明面对海量戏剧剧本能够即时起用,无视它们间的异构特征(如时代、题材、作者、流派等)而给出较准确的虚拟社交网络表达,是亮点。能够协助文学鉴赏家与戏剧评论家,在短时间内对海量电子剧本进行初步理解与粗细条比对,特别是面向社交网络的分析,并有利于后续的分类、评判,甚至是剧本的自适应构建。
附图说明
图1为按照本发明提供的方法生成的Hamlet中的角色网络。
具体实施方式
为使本发明更明显易懂,兹以优选实施例作详细说明如下。
本发明提供了一种面向剧本的非语义式社交网络抽取方法,包括以下步骤:
步骤1、预处理:由于电子剧本的格式差异较大,因此在网络构建之前有必要进行预处理。预处理的首要目标是形成剧本元素格式统一的规格化文档(如XML文件)。
一般来讲,剧本由多种元素组成,本发明主要关注角色(protagonist)、对白(line)与舞台指示(directive),所有角色构成全集U。具体到剧本元素格式,可以在易辨别的前提下,进行自由设置。举例如下:对于角色,可以排版为“单独成行,冒号结尾”;对于对白段落,可以排版为“单独成段,引号包围”;而对于舞台指示,可以排版为“方括号包围”。
值得注意的是,剧本重新排版后,关于角色行与舞台指示,可能出现不定代词(如they,both,all)或连接词(如and,but),因此需要将他们解析为具体角色名。这一需求是通过“动态舞台”这一概念来解决的。
对于no行时刻而言,其动态舞台Sno由所有在舞台上的角色组成,即Sno={p|对于no行时刻而言,p在舞台上},p表示角色,舞台或舞台上的角色随着情节的推进而动态变化,通过舞台指示中角色上下场提示信息来跟踪。
有了动态舞台后,角色与舞台指示中的间接词汇就可以得到准确解析。为了方便后续的网络抽取,需要用角色名将这些间接词汇全部替换掉。之后,如果角色行中的角色数多于一人,那么需要设置分隔标记(如逗号),以方便后续连接的有效生成。
步骤2、角色发现:经过预处理后,剧本中的角色列表就可以通过全本扫描角色行来收集了。由于角色行经过了特殊的规格化,因此较易识别。
特别地,有时在剧情展开之前(如在剧本设定中),作者会主动地将角色列出,而这一列表可以作为方案的备选与补充。当然,不对全文扫描直接利用此列表作为网络节点是危险的,原因有二:1)此列表可能并未将所有角色列出;2)列表所罗列的部分角色可能并没有对白。因本发明是基于角色对自来构建网络的,没有对白的角色并不是本发明的研究对象,他们也不会出现在最后的虚拟社交网络中。
步骤3、建立角色间的有向连接
若建立角色X至角色Y的有向连接X→Y,则步骤3包括:
步骤3.1、设定角色X的某段对白能促成有向连接X→Y的两个条件,b,e表示剧本的b行及e行,为该段对白的起止行:
条件一:且
条件二:至少存在以下两种情况之一:情况一、对白前存在前驱舞台指示且指示内含“X to Y”;情况二、剧本b行及e行间存在舞台指示且指示内含“to Y”;
步骤3.2、将条件一设置为较高优先级后,利用步骤3.1设定的两个条件来计算有向连接X→Y。
当然其中的指示性介词to可以被toward(s),address,tell,order等近义词替代。
步骤4、计算各有向连接的权重
在步骤4中,对于角色X的某段对白若能促成角色X至角色Y的有向连接X→Y,那么其权重的最大值Max为e-b,其实际权重根据以下两种情况分别计算:
情况一:对于“X to Y”:实际权重从b行开始计数,直到发现第一个非“to Y”舞台指示为止,设该舞台指示的首行为s行,此时有向连接X→Y的实际权重为s-b,如果未发现非“to Y”舞台指示,则有向连接X→Y的实际权重为Max;
情况二、对于“to Y”:实际权重从含有“to Y”的舞台指示开始计数,直到发现第一个非“to Y”舞台指示为止,此时有向连接X→Y的实际权重为s′-t,s′为第一个非“to Y”舞台指示的首行,t为含有“to Y”的舞台指示的末行;如果“to Y”出现多次,则计算累积值作为有向连接X→Y的实际权重;如果未发现非“to Y”舞台指示,有向连接X→Y的实际权重为e-t。
有向连接X→Y的最终权值,是完成对角色X所有对白扫描后的累积值。
采用上述方法生成的Hamlet中的角色网络的示意图如图1所示。
本发明放弃了小数据集上效果更好、复杂度更高的语义类技术路线,在轻量、易扩展框架下,选取了与角色对白有紧密联系的舞台指示,从侧面来发现角色间的直接关联。一般来讲,与更精准的自然语言处理式方法相比,此举所抽取出的角色网络会更稀疏(有可能遗漏一些重要信息);但他无需指导,无需训练集与测试集,无需参数调优与校准,无需高昂的时空代价,同时还具备优良的可扩展性、即时可用的特性。