A Neural-Network-Based Approach to Identifying Speakers in Novels

Abstract

在小说中识别说话者的目的是通过文本分析来确定谁在特定的语境中引用了一句话。这项任务对于语音合成系统来说,在制作有声读物时,为引用分配适当的声音是很重要的。然而,现有的方法坚持使用手工特征和传统的机器学习分类器,这限制了说话人识别的准确性。在本文中,我们提出了一种方法来解决这一具有挑战性的问题。我们将说话者识别定义为一个评分任务,并建立了一个基于BERT的候选评分网络(CSN)。特定的候选段用来消除冗余的上下文信息。此外,还利用对话中的双方说话人交替模式,设计了一种修正算法。利用基于中国小说《平凡的世界》数据集进行了实验。结果表明,我们提出的方法达到了最先进的性能,识别准确率为82.5%,比使用手工特征的基线高出12%。

1. Introduction

对于许多下游应用程序来说,识别小说中的说话者是一项重要的任务,比如在制作有声读物时为话语分配适当的声音,以及基于小说创建脚本。由于对话是文献中塑造人物的一种重要手段,因此对说话者的自动识别也可以用于提取人物的社交网络等文本挖掘任务。

现有的说话人识别方法可分为基于规则的方法和基于机器学习的方法。

  • 基于规则的方法专注于设计语言规则,以便在发言人候选人之间做出决策。这些方法严重依赖于开发人员的知识,通常导致精度低,泛化能力差。
  • 基于机器学习的方法利用手动标记的训练数据来构建分类器,如支持向量机(SVM)和多层感知器(MLP),来确定引用的说话者。

然而,所有这些研究仍然采用了手工制作的语言特征,这是启发式设计的,并不能全面地描述输入的文本。

近年来,自然语言处理(NLP)的大量研究表明,基于神经网络的特征提取比人工特征工程有效得多,因为它可以联合优化特征提取器和分类器,从而学习全局最优特征。循环神经网络(RNN)和卷积神经网络(CNN)等深度神经结构已被广泛应用于各种NLP任务,并优于传统的机器学习模型。最近,预训练的语言模型,如BERT和GPT,已经在许多共享任务上取得了最先进的性能,因为它们基于注意力的架构和从大量的训练前数据中获得的知识。

因此,本文提出了一种基于神经网络的方法来解决在小说中识别说话者的任务。我们将这个任务定义为一个评分问题,并建立一个候选评分网络(CSN)来计算每个候选演讲者的分数。考虑到注释数据的规模有限,我们采用了自然语言理解的预训练架构BERT作为CSN的基础。为了减少冗余的上下文信息,从引号和上下文句子中提取候选特定的片段,并发送到BERT,分别获得候选语、上下文和引用的表示。然后,这些表示被连接并输入一个MLP评分者,以获得每个候选说话者的分数。得分最高的候选人被确定为引语的说话者。为了进一步提高模型的性能,利用双方对话中的说话者交替模式(SAP),设计了一种基于CSN给出的置信度度量的修正算法。实验结果表明,该方法在《平凡的世界》数据集上的准确率为82.5%,比基于机器学习的基线方法高出12%。

本文的主要贡献有两个。首先,我们建立了一个基于BERT的候选评分网络(CSN)来解决小说中的说话者识别问题。其次,我们利用CSN给出的置信度度量和双对话中的说话人交替模式,设计了一种修正算法。

2. Methodology

2.1. Task Definition

在我们的任务中,说话者识别的一个实例是由许多句子组成的文本片段。我们将它表示为I=s−ws⊕⋅⋅⋅⊕s−1⊕qs⊕s1⊕⋅⋅⋅⊕swsI=s_{−ws}⊕···⊕s_{−1}⊕qs⊕s_1⊕···⊕s_{ws}I=s−ws​⊕⋅⋅⋅⊕s−1​⊕qs⊕s1​⊕⋅⋅⋅⊕sws​,其中⊕⊕⊕是连接操作。qsqsqs是需要识别说话者的引语。s−ws,⋅⋅⋅,s−1{s_{−ws},···,s_{−1}}s−ws​,⋅⋅⋅,s−1​是qsqsqs左边的上下文句子,s1,⋅⋅⋅,sws{s_{1},···,s_{ws}}s1​,⋅⋅⋅,sws​是右边的句子。wswsws是单面上下文窗口的大小。

除了实例之外,还提供了一个名称列表,其中包含在整个小说中出现的角色和每个角色的不同数量的别名。对于数据集中的每个实例,引用句的真正说话者都已被手动注释。此外,我们假设在名称列表中至少有一个真正的说话者的别名应该出现在实例的上下文句子中。否则,应该从数据集中丢弃该实例。

考虑到这些先决条件,我们的任务是在一个给定小说名单的实例中确定引用句子的说话者。

2.2 Framework of Proposed Method

我们所提出的方法的流程图如图1所示,其中包括三个主要步骤。首先,将一个实例与名称列表一起发送到最近的提到位置(NML)模块中,以确定该实例的候选集,并从每个候选实例中提取特定的候选段。其次,每个候选特定的部分被输入候选评分网络(CSN)以产生其分数。最后,对引语进行基于说话者交替模式(SAP)的修正,最终确定预测的说话者。这三个步骤的细节将在以下各小节中进行介绍。

2.3 Nearest Mention Location (NML)

这个模块首先为输入实例生成一组候选说话者。对于名称列表中的每个字符,如果它的任何一个别名出现在实例的上下文句子中,则将该字符被添加到候选集中。

对于每个候选发言者,可能有多个别名出现(即mention)。直观地说,我们假设最接近引用句子的提及是最能证明候选人是否是真正的说话者的证据。因此,我们为每个候选词找到最接近的提及,它本身和引用句之间的单词数最少。假设最近的提及位于上下文句子snms_{nm}snm​中,其候选特定片段(CSS)被定义为

CSS={snm⊕⋅⋅⋅⊕s−1⊕qs,nm<0qs⊕s1⊕⋅⋅⋅⊕snm,nm>0CSS=\begin{cases} s_{nm}⊕···⊕s_{−1}⊕qs,\ \ nm<0 \\ qs⊕s_1⊕···⊕s_{nm}, \ \ \ \ nm>0 \end{cases}CSS={snm​⊕⋅⋅⋅⊕s−1​⊕qs,  nm<0qs⊕s1​⊕⋅⋅⋅⊕snm​,    nm>0​

提取特定候选说话者的片段的目的是排除可能不有助于判断候选发言者的正确性的冗余上下文句子。除了候选人特定的部分,我们还将候选人特定的上下文定义为CSS\qs,即从候选人特定的片段中删除引用。

2.4. Candidate Scoring Network (CSN)

由于一个实例的候选者的数量不同,我们将说话者识别视为一个评分任务,而不是一个标准的分类任务。也就是说,建立一个候选评分网络(CSN),为一个实例的每个候选演讲者分配一个分数,得分最高的候选人是结果。

我们提出的CSN的结构如图2所示。我们首先采用广泛使用的预训练语言模型,BERT[18],来生成上下文化的表示。在编码步骤中,我们将候选特定的段输入BERT,获得与输入令牌序列相同长度的隐藏状态序列。最近的候选语、引号句和候选特定上下文对应的隐藏状态分别表示为Hncm,Hqs和HcscH_{ncm},H_{qs}和H_{csc}Hncm​,Hqs​和Hcsc​。然后,每个Hncm,Hqs和HcscH_{ncm},H_{qs}和H_{csc}Hncm​,Hqs​和Hcsc​都经过一个最大池化层,分别生成候选表示、引用句子表示和上下文表示的嵌入向量。这三个固定长度的表示被连接起来,形成这个候选对象的特征向量。然后将特征向量输入一个具有tanh输出激活的MLP评分器,以产生一个在(-1,1)内的分数。

在训练阶段,由于我们的目标是给真正的说话者分配高分,给干扰物分配低分,因此采用了边际排名损失。对于一个实例III,它的真实说话者cic_ici​与另一个候选cjc_jcj​配对,形成一个正-负的例子对。然后,这对损失的损失计算为:

L(I,ci,cj)=max⁡{0,csn(I,cj)−csn(I,ci)+mgn}L(I,c_i,c_j)=\max\{0,csn(I,c_j)-csn(I,c_i)+mgn\}L(I,ci​,cj​)=max{0,csn(I,cj​)−csn(I,ci​)+mgn}

其中csn(I,c)csn(I,c)csn(I,c)表示CSN计算的候选c的分数,mgnmgnmgn是控制两个候选c之间的理想分数边际的超参数。在训练过程中,对CSN中的参数进行了优化,以使训练集上的总体损失最小化。

2.5. Speaker-Alternation-Pattern-Based Revision

连续的多回合对话在小说中很常见,而且大多数对话发生在两个说话者之间。然而,对话中引用的上下文句子可能与对话中的其他引文严重重叠,因此CSN可能无法学习有用的上下文表示。因此,本模块旨在利用说话人交替模式(SAP)对CSN的两方对话中的说话人识别结果进行修正。SAP意味着在双方对话中第n个话语的说话者通常是(n+2)话语的说话者,而不是(n+1)话语的说话者。基于这种模式,一旦确定了对话中某一话语的说话者,就可以很容易地推断出其余话语的说话者。

在本文中,我们在两种条件下自动检测数据集中的双方对话。首先,一个对话应该由连续引用的句子组成,而不中断上下文中的句子。设qs1⊕⋅⋅⋅⊕qsMqs_1⊕···⊕qs_Mqs1​⊕⋅⋅⋅⊕qsM​表示带有MMM引用和M≥2M≥2M≥2的对话。其次,双方对话应该有两位占主导地位的候选人发言人。设cnc_ncn​表示在对话的2ws2ws2ws上下文句子中提及频率最高的第nnn位的候选说话者。如果f2≥f3+thf_2≥f_3+thf2​≥f3​+th,则此对话被视为双方对话,其中ththth这是一个预设的阈值。因此,c1和c2c_1和c_2c1​和c2​成为本次对话中所有引用的两个候选演讲者。

在测试阶段,如果实例的引用在两方对话中,则应用基于SAP的修订。它的基本思想是,考虑到两方引语的上下文句与其他引语的重叠最少,根据他们的信心度,首先确定第一个引语或最后一个引语的说话者。对于对话中的第mmm个引用,其置信度度量被计算为

qsm.cm=∣csn(Im,c1)−csn(Im,c2)∣qs_m.cm=|csn(I_m,c_1)-csn(I_m,c_2)|qsm​.cm=∣csn(Im​,c1​)−csn(Im​,c2​)∣

其中,ImI_mIm​是以qsmqs_mqsm​作为引用句的实例,c1c_1c1​和c2c_2c2​是对话的两个候选演讲者。更高的置信度测量表明CSN给出的分数更可靠。然后,根据SAP,逐个确定对话中其他引用的发言者。完整的基于sap的修正算法见算法1。

3. Experiments

3.1. Dataset

采用Chen等人的建立的数据集。该数据集是基于中国著名的注释小说《平凡的世界》构建的。它的上下文窗口大小(即wswsws)为10。这个名单是手工收集的,包含了在整个小说中出现的125个角色,每个角色都有不同数量的1-5个别名。我们通过进行额外的注释来扩展原始数据集,总共获得了2596个实例。我们在小说中保留了它们原始的时间顺序,并将它们分为一个2000个实例的训练集、一个298个实例的开发集和一个298个实例的测试集。根据Chen的论文[10]中描述的分类法,我们进一步将这些子集分为3类,分别命名为显式、隐式和潜在类。对于一个简短的介绍,一个显式或隐式的实例可以在中心引语的相邻的两个句子中找到一个语音动词的主语。如果该主题在名称列表中提到候选对象,则该实例属于显式。如果主语是代词,则实例属于隐式。潜在类别包含既不属于显式也不属于隐式的实例。表1中列出了所有类别中的实例数。

3.2 Settings

采用谷歌研究3发布的中国bert基础模型来构建我们的CSN。对于一个文本输入,BERT输出一个上下文化的表示,嵌入大小为768。CSN中的MLP评分者有一个100个单位的隐藏层,具有tanh激活。在等式中的边缘(2)设置为mgn=1.0mgn=1.0mgn=1.0。基于SAP的修订中提到的频率阈值设置为th=2th=2th=2。我们采用Adam优化器进行训练。学习率和批量大小分别设置为16和2e-5。根据开发集的性能确定了最优迭代方法。

3.3 Experimental Results

我们所提出的方法在三类测试实例上的说话人识别精度见表2的第三行。在这个表中,随机猜测是指从候选人中随机选择演讲者。手动+MLP是Chen等人在中描述的基线方法,它是基于手动设计的语言特征和一个MLP评分者。我们可以看到,我们提出的方法在所有三个类别上都优于基线,特别是在内隐类别和潜在类别上。我们提出的方法的总体精度比基线值高出12%。这些结果表明,基于深度学习的方法在这一任务上优于人工特征工程。

通过消融研究,进一步分析了我们提出的方法中各模块的有效性。第一次消融是移除基于sap的修订,结果见表2的第四行。通过比较第三行和第四行,我们可以看到,这种消融并不影响外显类别和内隐类别的性能,并降低了潜在类别的准确性。原因是,在两次对话中,显性和隐含实例的引用句通常是第一个或最后一个引用,因此它们的目的不是被修改。实际上,在测试集中有20个潜在的实例在基于sap的修订后改变了他们的决策。其中,16次修订修正了CSN的错误决策,4次对CSN的正确决策进行了错误修订。此外,表3显示了CSN对两方对话中不同位置的测试引用给出的平均置信度度量。可以看出,对话中的第一个和最后一个引语明显高于其他引语的可信度(t-检验中的p=0.0027)。这与我们在设计基于sap的修订算法时的假设是一致的,即对话中间的引号可能没有对话中第一个和最后一个引号那么可靠的分数。

第二个消融在编码步骤中进一步丢弃了特定于候选语句的片段,这意味着它直接将整个实例输入BERT,以导出候选语句、上下文和引文语句的表示。我们把它命名为与候选者无关的编码。本次消融后,BERT输入的平均表征水平长度从111.7增加到534.4。该消融方法的结果见表2的最后一行。比较后两行的结果,我们可以看到,使用候选特定的片段在我们提出的方法中发挥了重要的作用。与候选无关编码方法的准确性甚至比手动+MLP基线差。我们还试图通过将ws从10减少到2来缩短候选无关编码的上下文窗口的宽度。这样,BERT输入的平均字符级长度从534.4下降到125.7,这与使用候选特定片段的长度(111.7)很接近。对于每个实例,它的候选集都与ws=10ws=10ws=10相同。如果一个候选在截断的上下文窗口中没有提到什么,默认情况下会给他或她分配0分。最后,在没有基于sap的修订时,该方法产生了0.698的总体准确性,这仍然远远低于使用候选特定片段的准确性。这些结果表明,在我们的基于神经网络的方法中,有必要过滤掉冗余的上下文信息和建模不同的上下文句子来对不同的候选句子进行评分。

3.4 Case Study

图3给出了4个候选项中最接近mention的测试实例。在这个例子中,CSN在没有SAPR帮助的情况下正确地预测了说话者“金君山”,而手动+MLP基线误认为“玉亭”是说话者。一个可能的原因是,基线过于关注提到和引用句子之间的距离,这是这个模型中手动设计的特征。相比之下,CSN由于其原始token输入和深度模型架构,在全面处理输入文本方面表现出色,并成功地解决了该实例中的真正说话者。

4. Conclusion

在本文中,我们提出了一种基于深度学习的方法来解决在小说中识别说话者的问题。与传统的使用人工设计的语言特征的方法相比,我们的基于bert的模型可以更有效地利用文本输入,从而提高说话人识别的准确性。在未来,我们将探索更复杂的机制来建模引用与其上下文之间的相互作用。此外,基于对话中的说话者建模和社交网络提等其他技术的方法也值得进一步研究。

【Speaker Recognition】A Neural-Network-Based Approach to Identifying Speakers in Novels相关推荐

  1. 【论文阅读】Siamese Neural Network Based Few-Shot Learning for Anomaly Detection in Industrial Cyber-Physi

    文章目录 Abstract 1. Introduction 2. Related Work 2.1 Anomaly Detection techniques for CPS 2.2 Few-Shot ...

  2. Item Tagging for Information Retrieval: A Tripartite Graph Neural Network based Approach 用于信息检索的项目标签

    文章目录 摘要 简介 Tagging 方法 动机和总览 动机 总览 TagGNN-IT 节点表示 TagGNN-IT Propagation 损失 2.3 TagGNN-QI 2.3.1 边表示 2. ...

  3. 【论文阅读】Recurrent Neural Network Regularization

    本来是打算搜搜RNN或者LSTM的原文,结果arxiv上没搜到(求求,帮帮),然后就搜到知乎上一个回答: 心想完蛋,年份跨度比较远的论文读起来会不会很费劲啊.结果搜到LSTM的原论文了(论文链接:ht ...

  4. 【李宏毅机器学习】Recurrent Neural Network Part1 循环神经网络(p20) 学习笔记

    李宏毅机器学习学习笔记汇总 课程链接 文章目录 Example Application Slot Filling 把词用向量来表示的方法 1-of-N encoding / one-hot Beyon ...

  5. 【李宏毅机器学习】Convolutiona Neural Network 卷积神经网络(p17) 学习笔记

    李宏毅机器学习学习笔记汇总 课程链接 文章目录 Why CNN for image? property1:对于整张图来说,一些局部是很小的 property2:相同的部分会出现在不同的图片中 prop ...

  6. 【Speaker Recognition】A CHAPTER-WISE UNDERSTANDING SYSTEM FOR TEXT-TO-SPEECH IN CHINESE NOVELS

    A CHAPTER-WISE UNDERSTANDING SYSTEM FOR TEXT-TO-SPEECH IN CHINESE NOVELS Abstract 在基于文本转语音TTS的有声读物制作 ...

  7. 【李宏毅机器学习】Recurrent Neural Network Part2 循环神经网络(p21) 学习笔记

    李宏毅机器学习学习笔记汇总 课程链接 文章目录 Learning Target Learning Unfortunately 基于RNN的的网络不总是容易去学习 The error surface i ...

  8. Paper翻译:《A Novel Convolutional Neural Network Based Model for Recognition and Classification of App》

    论文名称:<A Novel Convolutional Neural Network Based Model for Recognition and Classification of Appl ...

  9. 【论文研读】【医学图像分割】【FCN+RNN】Recurrent Neural Networks for Aortic Image Sequence Segmentation with ...

    [FCN+RNN]Recurrent Neural Networks for Aortic Image Sequence Segmentation with Sparse Annotations Ab ...

最新文章

  1. java download oracle,Oracle Java Products Download
  2. SecureCRT如何进入和退出全屏及调出菜单栏
  3. ABAP webservice和log on对话框相关的实现细节调试
  4. mysql -uroot -p -P3306 -h192.168.0.111无法远程连接mysql
  5. Asp.net2.0 学习资源(转载)
  6. OpenGL 库 简介
  7. java zip文件夹_如何使用java压缩文件夹成为zip包
  8. 日常摄影练习时,有什么技巧能提高照片品质?
  9. Android中的USB中的UsbAccessory和UsbDevice的区别
  10. QQ 腾讯QQ(简称“QQ”)是腾讯公司开发的一款基于Internet的即时通信(IM)软件...
  11. Windows server 2016 安装小度WiFi网卡驱动
  12. java 错误 找不到符号_java错误:找不到符号
  13. 分享几个找论文参考文献的网站
  14. 删库跑路之命令rm的安全实现
  15. IBM员工回顾与华为合作20周年:这是一支有激情的团队
  16. 什么是高耦合低内聚?
  17. Android移动应用程序开发
  18. 自动化学报latex模板使用说明
  19. docker 批量删除镜像
  20. 什么是物联网 (IoT)?

热门文章

  1. js校验其他参数(非空、邮箱、url等)
  2. android list集合遍历,Java list集合遍历操作遇到的问题
  3. 搜狐这个Firefox合法吗?
  4. Java基础编程练习50题(转载)
  5. HTML5基础 上
  6. 机智云CEO黄灼:AIoT+5G引领物联网产业新机遇
  7. cmd命令解决端口占用(8080)
  8. 无监督对话数据清洗利器:Data Purification Framework
  9. vivo x70pro和vivo x70proplus 的区别 vivo x70pro和vivo x70proplus哪个好
  10. Arduino UNO的线路跟随机器人车,L298N驱动器,红外传感器