基于剧本的字幕场景和说话人信息自动标注方法和系统与流程

文档序号:17926536发布日期:2019-06-15 00:27阅读:547来源:国知局
基于剧本的字幕场景和说话人信息自动标注方法和系统与流程

本发明实施例涉及计算机及信息服务技术领域,尤其涉及一种基于剧本的字幕场景和说话人信息自动标注方法和系统。



背景技术:

对话是社会活动中的重要组成部分,对于构建各类对话生成系统(如聊天机器人)而言,大规模的对话语料数据是必不可少的要素。但现阶段关于多轮次对话的研究仍相对较少,高质量的中文聊天语料库尤其匮乏。

另一方面,开放领域的对话生成研究亟需大量高质量对话语料作为训练数据,而影视字幕具有数量巨大、贴近真实的人类日常对话的优点,对于构建对话语料具有巨大的潜在价值。然而,因为缺少场景和说话人信息,字幕文件不能直接用作对话语料。图1是现有技术提供的一个常见的中英双语字幕文件片段示意图,如图1所示,如果没有添加标记,难以区分前后相连的两行字幕是否发生在同一场景下,是否为同一说话人所说,也就很难分辨后一行字幕是否是对前一行字幕的回应。对于训练聊天机器人这样的对话生成系统而言,所需要的训练数据通常需要为一对(消息,回复),字幕文件的这个特点导致难以从其中直接抽取对话数据。

因此,现在亟需一种基于剧本的字幕场景和说话人信息自动标注方法来解决上述问题。



技术实现要素:

为了解决上述问题,本发明实施例提供一种克服上述问题或者至少部分地解决上述问题的一种基于剧本的字幕场景和说话人信息自动标注方法和系统。

第一方面本发明实施例提供一种基于剧本的字幕场景和说话人信息自动标注方法,包括:

解析原始剧本,获取所述原始剧本中的所有对话内容,并将每个对话内容作为一篇文档录入搜索引擎;

对于原始剧本对应的每个字幕行,在所述搜索引擎中查询与字幕行相似度最高的文档,并返回所述文档对应的编号uid;

将所述文档的uid标注到所述字幕行中,以实现字幕行与剧本句子级的对齐;其中,所述文档对应的编号uid为场景编号和对话编号的组合。

第二方面本发明实施例提供了一种基于剧本的字幕场景和说话人信息自动标注系统,包括:

剧本解析模块,用于解析原始剧本,获取所述原始剧本中的所有对话内容,并将每个对话内容作为一篇文档录入搜索引擎;

文档查询模块,用于对于原始剧本对应的每个字幕行,在所述搜索引擎中查询与字幕行相似度最高的文档,并返回所述文档对应的编号uid;

标注模块,用于将所述文档的uid标注到所述字幕行中,以实现字幕行与剧本句子级的对齐。

第三方面本发明实施例提供了一种电子设备,包括:

处理器、存储器、通信接口和总线;其中,所述处理器、存储器、通信接口通过所述总线完成相互间的通信;所述存储器存储有可被所述处理器执行的程序指令,所述处理器调用所述程序指令能够执行上述基于剧本的字幕场景和说话人信息自动标注方法。

第四方面本发明实施例提供了一种非暂态计算机可读存储介质,所述非暂态计算机可读存储介质存储计算机指令,所述计算机指令使所述计算机执行上述的基于剧本的字幕场景和说话人信息自动标注方法。

本发明实施例利用uid序列的特点,通过神经网络和启发式算法对错误对齐的uid进行检测和修正;根据修正后的uid,将对应的说话人标注到所述字幕行中,可以自动从字幕文件中抽取不同场景下的对话片段的技术,用以构建高质量的中文对话语料库。

附图说明

为了更清楚地说明本发明实施例或现有技术中的技术方案,下面将对实施例或现有技术描述中所需要使用的附图作一简单地介绍,显而易见地,下面描述中的附图是本发明的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他的附图。

图1是现有技术提供的一个常见的中英双语字幕文件片段示意图;

图2是本发明实施例提供的一种基于字幕的对话语料自动标注方法流程示意图;

图3是本发明实施例提供的初步对齐后的字幕片段示意图;

图4是本发明实施例提供的最终标注完成的字幕片段示意图;

图5是本发明实施例提供的原始剧本示意图;

图6是本发明实施例提供的解析后剧本示意图;

图7是本发明实施例提供的一种基于字幕的对话语料自动标注系统结构示意图;

图8是本发明实施例提供的电子设备的结构框图;

图9是本发明的总体处理流程框图。

具体实施方式

为使本发明实施例的目的、技术方案和优点更加清楚,下面将结合本发明实施例中的附图,对本发明实施例中的技术方案进行清楚地描述,显然,所描述的实施例是本发明一部分实施例,而不是全部的实施例。基于本发明中的实施例,本领域普通技术人员在没有做出创造性劳动前提下所获得的所有其他实施例,都属于本发明保护的范围。

图2是本发明实施例提供的一种基于字幕的对话语料自动标注方法流程示意图,如图2所示,包括:

201、解析原始剧本,获取所述原始剧本中的所有对话内容,并将每个对话内容作为一篇文档录入搜索引擎;

202、对于原始剧本对应的每个字幕行,在所述搜索引擎中查询与字幕行相似度最高的文档,并返回所述文档对应的编号uid;

203、将所述文档的uid标注到所述字幕行中,以实现字幕行与剧本句子级的对齐。

其中,所述文档对应的编号uid为场景编号和对话编号的组合。

需要说明的是,本发明实施例提供的方法主要的思路是利用字幕对应的剧本(英文)作为标注的依据。剧本中标明了一个场景的开始和场景之间的转换,也标明了对话内容的说话人。同时,剧本和字幕在对话内容上有较高的相似度,因而,如果能建立剧本中对话内容和字幕行之间的对应关系,就能明确字幕行所属的场景和说话人,也就能实现对字幕进行标注。

具体的,在步骤201中,每个原始剧本都具有对话内容,通过对原始剧本的解析能够获取该剧本所发生的全部对话内容,并将每个对话内容作为一个文档进行存储,存储之后录入预设的搜索引擎之中,本发明实施例不对搜索引擎的类型作任何限定。

进一步的,在步骤202中,本发明实施例采用了字幕查询的形式,具体的,将剧本对应的字幕文件中的每个字幕行都被视作一条查询,该查询提交给搜索引擎后,搜索引擎从文档集中选择与其内容相似度最高的文档,并返回该文档的对话内容编号,对话内容编号用uid(utteranceid)表示,uid为场景编号和对话编号的组合,以短横线分割,如“2-3”,表示第2个场景下的第3个对话。其中,相似度计算优选的可采用bm25指标来衡量。

最后,在步骤203中,可以理解的是,在一个剧本中,每一个对话内容编号uid都唯一的标明了一次对话,即给定uid之后就能够确定说话人和说话内容,从而剧本中的uid标注到对应的字幕行上实际上就实现了剧本和字幕的对齐,从而就能得到标注有场景和说话人标签的对话语料。

在上述实施例的基础上,在所述将所述文档的uid标注到所述字幕行中之后,所述方法还包括:

根据预设的神经网络,检测并修正标注错误的字幕行。

可以理解的是,受字幕行长度的限制,剧本对话和字幕行之间存在着一对多、多对一、一对一的对应关系,且从剧本的创作到最终的字幕的形成,存在着内容的替换、增添或缺失,因此,简单地按顺序对应难以实现对齐的目标,字幕中的广告、歌词等剧本中没有的内容也为实现这种对齐增添了难度。

并且由于字幕行和剧本对话内容上并不能完全匹配,可能出现词语的替换、增添或缺失等变化,而搜索引擎是基于文档中的词语进行相似度计算,这就导致在初步对齐的过程中可能出现错误,即搜索引擎找到的相似度最高的文档并非实际与字幕行对应的对话,返回的是错误的uid。经抽样检测,这样的对齐错误在一篇字幕中约占10%~15%,这说明,大部分的对齐是正确的,因此,利用正确的对齐来对错误的对齐进行检测和修正是可能的。

那么通过上述实施例的方式进行标注可能会存在标注错误,经测试,大概错误在10%-15%左右。但是这些错误具有一定的特点,通过本发明实施例提供的预设神经网络,能够检测并修正这些标注错误,以提高标注的准确率,从而得到高质量的对话语料。

在上述实施例的基础上,所述根据预设的神经网络,检测并修正标注错误的字幕行,包括:

基于时间卷积神经网络,检测字幕标记序列中是否存在异常点;

若存在异常点,则基于预设的修复算法对所述异常点进行修复。

图3是本发明实施例提供的初步对齐后的字幕片段示意图,如图3所示,黑色方框中为标注的uid。可以看到,如果单独把一篇字幕中的所有uid按顺序抽取出来(例如:[<1-1>,<1-2>,<1-2>,<1-3>,<1-4>,<1-5>,…]),则应该是一个近似递增的点对(uid)的序列,而错误的对齐通常会破坏这种近似递增性(例如:[<1-1>,<1-2>,<1-2>,<6-2>,<1-4>,<1-5>,…]),这些错误的点对也称为异常点。因此,如果能将序列中这些异常点都检测出来,实际上也就找到了错误的对齐。

由于这些序列具有近似递增的模式,而且带有时间序列的性质,因此本发明采用时间卷积神经网络(temporalconvolutionalnetwork,tcn)来进行序列异常检测。检测出的异常点以特定的记号([-1,-1])标记。

在上述实施例的基础上,所述若存在异常点,则基于预设的修复算法对所述异常点进行修复,包括:

检测所述异常点是否跨越了场景边界;

若所述异常点未跨越场景边界,则将所述异常点前后的正常点作为参考进行线性插值。

在检测出异常点后,本发明实施例采用了一些启发式的策略对异常点进行修复,即从异常点是否跨越场景边界进行考虑,如果异常点未跨越场景边界,即(连续的一片)异常点都在同一场景内部,则使用异常点前后的正常点作为参考进行线性插值,例如[<1-2>,<1-3>,[-1,-1],[-1,-1],<1-5>,<1-5>,…]中所有一场观点都属于场景1,则这些异常点会被修复为[<1-2>,<1-3>,<1-3>,<1-4>,<1-5>,<1-5>,…]。

在上述实施例的基础上,所述若存在异常点,则基于预设的修复算法对所述异常点进行修复,还包括:

若所述异常点跨越了场景边界,则将后段场景中的异常点进行递减,并对前段场景中的异常点进行插值。

那么,如果异常点跨越了场景边界,则先将后一段场景中异常点部分递减为1,再对前段异常点使用插值,例如[<1-2>,<1-3>,[-1,-1],[-1,-1],[-1,-1],[-1,-1],<2-3>,<2-3>,<2-4>…]中异常点跨越了场景边界,分属于场景1和场景2,则这些异常点会被修复为[<1-2>,<1-3>,<1-4>,<1-5>,<2-1>,<2-2>,<2-3>,<2-3>,<2-4>…]。

图4是本发明实施例提供的最终标注完成的字幕片段示意图,如图4所示,经过本发明实施例修正之后的字幕标注,已能基本做到正确无误。

在上述实施例的基础上,所述解析原始剧本,获取所述原始剧本中的所有对话内容,包括:

基于预设的结构特征设计解析器,提取所述原始剧本中与对话内容相关的元素,并以规范化形式存储。

由上述实施例的内容可知,本发明实施例需要对原始剧本进行解析,从而获取对话内容。图5是本发明实施例提供的原始剧本示意图,如图5所示,剧本具有一定的结构特征,如场景边界用scene:标出,动作指示用圆括号标出,说话人出现在每行开头,且和说话内容之间用冒号分隔,但不同剧本之间的结构特征并不完全相同,因此,为了便于后续处理,需要针对各剧本的结构特征设计解析器,以提取出其中的场景边界、说话人和对话内容等元素,并滤除动作指令等不相关内容,最后以规范化的xml格式存储。

图6是本发明实施例提供的解析后剧本示意图,如图6所示,其中<scene>标签标明一个场景的开始,其尖括号内的属性id指示场景的编号;<utterance>标签标明了一次对话,其尖括号内的属性uid指示该对话所属的场景和编号,例如uid=”4-3”表示该对话为4号场景下的第3个对话,因此,如果两个对话的uid具有相同前缀(如5-6和5-2),则表明这两个对话发生在同一个场景。<utterance>标签下的<speaker>和<content>标签分别指示了说话人和说话内容,从而实现原始剧本的内容解析。

图7是本发明实施例提供的一种基于剧本的字幕场景和说话人信息自动标注系统结构示意图,如图7所示,包括:剧本解析模块701、文档查询模块702以及标注模块703,其中:

剧本解析模块701用于解析原始剧本,获取所述原始剧本中的所有对话内容,并将每个对话内容作为一篇文档录入搜索引擎;

文档查询模块702用于对于原始剧本对应的每个字幕行,在所述搜索引擎中查询与字幕行相似度最高的文档,并返回所述文档对应的编号uid;

标注模块703用于将所述文档的uid标注到所述字幕行中,以实现字幕行与剧本句子级的对齐。

具体的如何通过剧本解析模块701、文档查询模块702以及标注模块703进行对话语料自动标注可用于执行图1所示的基于剧本的字幕场景和说话人信息自动标注方法实施例的技术方案,其实现原理和技术效果类似,此处不再赘述。

本发明实施例利用uid序列的特点,通过神经网络和启发式算法对错误对齐的uid进行检测和修正;根据修正后的uid,将对应的说话人标注到所述字幕行中,可以自动从字幕文件中抽取不同场景下的对话片段的技术,用以构建高质量的中文对话语料库。

在上述实施例的基础上,所述系统还包括:

修正模块,用于根据预设的神经网络,检测并修正标注错误的字幕行。

在上述实施例的基础上,所述修正模块包括:

基异常点检测单元,用于基于时间卷积神经网络,检测字幕标记序列中是否存在异常点;

修复单元,用于若存在异常点,则基于预设的修复算法对所述异常点进行修复。

在上述实施例的基础上,所述修复单元用于:

检测所述异常点是否跨越了场景边界;

若所述异常点未跨越场景边界,则将所述异常点前后的正常点作为参考进行线性插值。

在上述实施例的基础上,所述修复单元还用于:

若所述异常点跨越了场景边界,则将后段场景中的异常点进行递减,并对前段场景中的异常点进行插值。

在上述实施例的基础上,所述解析模块用于:

基于预设的结构特征设计解析器,提取所述原始剧本中与对话内容相关的元素,并以规范化形式存储。

本发明实施例提供一种电子设备,包括:至少一个处理器;以及与所述处理器通信连接的至少一个存储器,其中:

图8是本发明实施例提供的电子设备的结构框图,参照图8,所述电子设备,包括:处理器(processor)801、通信接口(communicationsinterface)802、存储器(memory)803和总线804,其中,处理器801,通信接口802,存储器803通过总线804完成相互间的通信。处理器801可以调用存储器803中的逻辑指令,以执行如下方法:解析原始剧本,获取所述原始剧本中的所有对话内容,并将每个对话内容作为一篇文档录入搜索引擎;对于原始剧本对应的每个字幕行,在所述搜索引擎中查询与字幕行相似度最高的文档,并返回所述文档对应的编号uid;将所述文档的uid标注到所述字幕行中,以实现字幕行与剧本句子级的对齐。

图9是本发明的总体处理流程框图,参照图9的流程图能够实现上述全部方案。

本发明实施例公开一种计算机程序产品,所述计算机程序产品包括存储在非暂态计算机可读存储介质上的计算机程序,所述计算机程序包括程序指令,当所述程序指令被计算机执行时,计算机能够执行上述各方法实施例所提供的方法,例如包括:解析原始剧本,获取所述原始剧本中的所有对话内容,并将每个对话内容作为一篇文档录入搜索引擎;对于原始剧本对应的每个字幕行,在所述搜索引擎中查询与字幕行相似度最高的文档,并返回所述文档对应的编号uid;将所述文档的uid标注到所述字幕行中,以实现字幕行与剧本句子级的对齐。

本发明实施例提供一种非暂态计算机可读存储介质,所述非暂态计算机可读存储介质存储计算机指令,所述计算机指令使所述计算机执行上述各方法实施例所提供的方法,例如包括:解析原始剧本,获取所述原始剧本中的所有对话内容,并将每个对话内容作为一篇文档录入搜索引擎;对于原始剧本对应的每个字幕行,在所述搜索引擎中查询与字幕行相似度最高的文档,并返回所述文档对应的编号uid;将所述文档的uid标注到所述字幕行中,以实现字幕行与剧本句子级的对齐。

通过以上的实施方式的描述,本领域的技术人员可以清楚地了解到各实施方式可借助软件加必需的通用硬件平台的方式来实现,当然也可以通过硬件。基于这样的理解,上述技术方案本质上或者说对现有技术做出贡献的部分可以以软件产品的形式体现出来,该计算机软件产品可以存储在计算机可读存储介质中,如rom/ram、磁碟、光盘等,包括若干指令用以使得一台计算机设备(可以是个人计算机,服务器,或者网络设备等)执行每个实施例或者实施例的某些部分所述的方法。

最后应说明的是:以上实施例仅用以说明本发明的技术方案,而非对其限制;尽管参照前述实施例对本发明进行了详细的说明,本领域的普通技术人员应当理解:其依然可以对前述各实施例所记载的技术方案进行修改,或者对其中部分技术特征进行等同替换;而这些修改或者替换,并不使相应技术方案的本质脱离本发明各实施例技术方案的精神和范围。

当前第1页1 2 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1