一种循环迭代的智能语料标注系统
2021-11-08刘勇陆小慧
[刘勇 陆小慧]
1 研究背景
在人工智能飞速发展的今天,特别是在认知智能的智能问答系统研发过程中,语料的标注和校对工作一直需要消耗大量的人力和时间。众所周知,人工智能领域的算法模型需要通过训练大量的语料得到,这些训练语料被事先进行标注,往往通常都是人工标注,标注过程需要耗费大量人力和时间。
因为标注的过程实际上是对语料中语言单位的特征进行解释的过程,不同的人可能会有不同的解释结果,所以语料标注带有很大的主观性。不同标注者的知识结构和语法理论也各不相同,如果只以少数人的标注结果作为训练语料,训练出的算法就可能有较大的误差。
本文研究旨在积累历史语料标注结果对算法模型训练的效果,降低语料标注工作的人力和时间成本投入,降低标注过程中的失误率,提高语料标注的准确率和效率。
2 系统定义与关键技术
语料标注,是对原始浯料进行加工,把各种表示语言特征的标签标注在相应的语言成分上,以便于计算机的识别和读取。包括:实体标注、词性标注、句法标注、分类标注、情感标注、篇章关系标注等。
本文研究并通过实施例详细说明了一种语料标注方法和系统,即根据预设的算法模型对待标注语料集中的语料进行标注,基于标注结果生成对应的训练集,通过训练集更新算法模型,用于下一次语料标注。通过本文实施例的实施,以每一次标注后的结果来更新算法模型,从而大大减少了人工标注的工作量,同时提升了标注的一致性和准确性。本系统分为如下3 个模块。
①语料标注模块,用于根据预设的算法模型对待标注语料集中的语料进行标注;
② 训练生成模块,用于基于标注的结果,生成对应的训练集;
③算法训练模块,用于通过所述训练集更新所述算法模型,用于下一次的语料标注,如图1 所示。
图1 语料标注方法流程图
首次语料标注工作需要采用原始的人工标注方式,将标注结果作为训练语料用于初始算法模型的训练。从第二轮迭代开始,只需将前一次标注的语料训练得到的算法模型,应用于为标注语料设计的标注系统中。该语料标注系统可自动将现有语料同领域的不同细分小类的语料进行标注,且准确率较高,并筛选出少量当前算法未覆盖到的无法实现自动标注的语料,在下一轮迭代中进行人工标注。假设第三轮跌代出现不同领域的语料时,则需要人工参与新领域语料的标注,并将语料标注结果应用于算法模型的训练中。从第四轮迭代开始,只需将第三轮跌代输出的算法模型,再次应用于当前语料标注系统,使智能标注系统得到扩展,算法覆盖面更大,准确率更高,标注系统更加智能,可自动化实现新一种领域的语料标注工作。
如此循环迭代,语料标注系统可随算法训练和人工标注新领域语料的持续作用日益完善,变得更加智能,从而大大提高语料标注的工作效率,降低相似语料的人工标注成本。
对于同领域相同子类的语料,如果将多人多次标注的结果持续积累起来,从一定程度上能降低人工标注主观性引起的误差。
该系统不受限于算法或数据的类型,无论是文本、音视频还是图片图像的数据,以及对应于这些数据的各种算法,都可以按照这种循环迭代的方式构建一个标注系统,来实现智能化的数据标注。具体来说,该系统实现分4 个部分:①对算法模型未覆盖语料进行人工标注;② 用标注的语料进行算法模型训练;③将算法模型应用于智能标注系统中;④ 智能标注系统对同领域新语料实现自动化标注。
下面对该系统的实现流程加以说明,如图2 所示。
图2 语料标注示意图
其中,语料集A 作为初始语料集,以人工标注的形式进行标注并生成训练集A,基于训练集A 训练出了算法模型,此处即为初始算法模型。语料集B 作为与语料A领域相同的语料集,也就是与算法模型领域一致的语料,可直接通过集成了该算法模型的自动化标注系统进行标注;该自动化标注系统除了集成了算法模型之外,还具备一些标注所需的其他组成部分,比如工作流、权限控制等相关功能。尽管如此,语料集B 中还有领域之下的类别不同的语料集B’,不能直接通过算法模型进行标注,而采用人工的方式进行标注。语料集C 是与语料集A 领域不同的语料集,也就是与算法模型领域不一致的语料集,直接通过人工标注的方式进行标注。
不管是对语料集B的标注,还是对语料集B’的标注,还是对语料集C的标注,最终均生成对应的训练集,通过训练集来更新算法模型,作为下一次的语料标注所参考的算法模型。
此外,还可以包括,根据在各次算法模型对待标注集中的语料进行标注时,语料集B 在待标注语料集中的占比,和/或各次标注的准确率,评估算法模型对待标注语料的标注能力是否达标。在每一次的语料标注中,根据待标注语料的领域与算法模型的领域的相同与否,会对应产生相应的语料集B 和语料集C,根据可以直接标注的语料集B 在待标注语料集中的占比可以确定算法模型的标注能力;另外,每一次对于待标注语料集的标注之后,再经过校验就可以得知标注的准确率,根据准确率也可以确定算法模型的标注能力。在得知算法模型的标注能力之后,如果算法模型的标注能力较弱,或者是标注能力不达标,则可能需要继续借助语料集进行训练,逐步完善算法模型标注能力。
基于标注的结果生成对应的训练集。生成训练集是为生成算法模型,以及更新算法模型提供了可能,由于初始算法模型已经根据对初始语料的人工标注生成了,因此后续的训练集都是作为更新算法模型而用。
通过训练集更新算法模型,用于下一次的语料标注。下一次的语料标注一般都是参考上一次的语料标注更新后的算法模型来进行,而迭代的次数越多,覆盖的领域越广,因此需要人工参与的次数也越少,标注的准确率也越高。为了保证语料标注的可靠性,通过训练集更新算法模型可以包括:对训练集进行校验;在校验完成后,通过校验后的训练集对算法模型进行更新。基于标注的结果对训练集进行校验可以包括:以抽查的方式从训练集中随机抽取部分进行校验;或以全量的方式,直接校验训练集中的所有内容。
3 具体实施方式
下面具体描述一下细化的流程,如图3 所示。
图3 标注方法细化流程图
我们先确定待标注的语料集:语料可以包括智能问答系统中的语料,文本识别中的文本,以及音视频、图片等多媒体语料。
基于上一次语料标注后的算法模型,对待标注的语料集中的语料进行标注;语料中往往包含了很多很丰富的内容,但是计算机可能不能直接的识别和读取,因此需要对这些语料进行标注,标注也就是对语料库中的语料进行加工,把语料中的各种特征以计算机可识别的方式进行标注。
算法模型根据迭代阶段的不同,大致可分为初始算法模型和过渡算法模型两类;初始算法模型,也就是在本次语料标注中第一个算法模型,这个算法模型大致决定了以后所有相关的语料标注的算法逻辑。过渡算法模型指的是在初始算法模型之外的算法模型,与初始算法模型不同,过渡算法模型通常是持续变化的。
判断标注是否成功,也就是从语料中筛选出语料集B 和语料集C的过程;而确定待标注语料集中的语料集B和语料集C的方式,可以是通过关键词筛选等等方式进行,或者是由人工参与进行判断,或者是直接假设都是相同领域的直接进行标注。对于无法直接标注的部分则分离出来作为不同领域的语料集C 进行人工标注。
基于标注结果,生成训练集。生成训练集就为生成算法模型,以及更新算法模型提供了可能。由于初始算法模型已经根据对初始语料的人工标注生成了,因此后续的训练集都是作为更新算法模型而用。
为了保证语料标注的可靠性,可对训练集进行校验,具体的校验方式可以包括:以抽查的方式从训练集中随机抽取部分进行校验;或者以全量的方式,直接校验训练集中的所有内容。
通过校验后的训练集更新算法模型,返回供下次标注新的语料集;并通过人工标注对标注失败的语料进行标注。
下面对技术方案的实施做进一步的详细描述,如图4所示。
图4 银行业务语料标准流程示意图
本实施例中的语料标注方法以银行的业务语料为基础,通过训练相应的算法模型和循环迭代,来实现自动标注。智能语料标注系统不断将用新语料训练得到的算法模型进行集成,标注系统以循环迭代的方式得到扩展和优化。
以智能语料标注系统以建行业务语料为基础,将训练出的算法模型集成,经过迭代后可以自动对中行语料进行标注为例,循环迭代的智能语料标注系统实现步骤如图4 所示。
步骤1,确定第一批银行A的业务语料;
步骤2,形成银行A的语料训练集;
步骤3,基于银行A的语料训练集训练生成算法模型,嵌入智能标注系统中;
步骤4,第二批银行B的业务语料需要进行标注时,判断银行A 和银行B的业务语料同属于银行领域的语料,属于同一领域的不同子类,大部分业务用语、词汇相似,于是将银行B的业务语料输入智能标注系统中进行自动化标注。根据需要自动标注的语料规模,可考虑部署分布式智能标注系统。
步骤5,对于银行B的业务语料中,无法通过智能标注系统中的算法模型自动标注的部分,形成X 语料’,人工对X 语料’进行标注,此时大大降低了人工标注的工作量和耗时。人工标注的结果形成第二批训练集,再次执行步骤2、步骤3,从而实现了算法模型的更新,智能标注系统得到第二次优化和扩充。
步骤6,当第三批银行X的业务语料需要标注时,重复步骤4 中的操作,从而实现了算法模型的更新,智能标注系统得到再一次优化和扩充。
步骤7,当第四批某电商的客服语料需要进行标注时,判断电商的客服语料和已人工标注过的银行语料不是同一领域的语料,用语、词汇差异很大,于是人工对某电商客服语料进行标注。形成第四批训练集,再次执行步骤2、步骤3,从而实现了算法模型的更新,智能标注系统得到第四次优化和扩充。
步骤8,当第五批电商X的客服语料需要标注时,重复步骤4 中的操作,从而实现了算法模型的更新,智能标注系统得到第五次优化和扩充。
如果需要对同领域同子类型的语料进行标注,使用智能标注系统对这些语料进行自动化标注,如果智能标注系统已经过多轮迭代和优化扩充,这批语料理论上可以完全实现自动化标注且准确率达标。
分析智能标注系统对同领域不同子类、同领域相同子类新语料的自动化标注比例和准确率,可以判断是否需要收集更多更丰富的语料来继续训练算法模型。
4 总结
本文研究并提供了一种人工智能认知智能领域的语料标注方法和系统,首先确定已生成的算法模型,根据算法模型对待标注语料集中的语料进行标注;基于标注结果生成对应的训练集,通过训练集更新算法模型,用于下一次语料标注。通过本文举例实施例的实施,以每一次标注后的结果来更新算法模型,从而大大减少了人工标注的工作量,同时也提升了标注的一致性和准确性。
每当一批新语料需要进行标注时,人工判断这批新语料是否属于现有领域及子类,如果属于现有领域的新子类,则用标注系统自动标注,并筛选出系统无法覆盖到的未实现自动标注的语句进行人工标注;如果属于新领域的语料则直接进行人工标注。
根据实现自动标注的语料所占新语料的百分比,结合标注系统对现有领域新子类语料历次能实现自动化标注比例经验值及标注准确率,及人工对这批新语料类别的判断,可分析出当前该标注系统在某领域某子类的自动化标注能力是否达标,是否需要更多的该领域语料来训练算法。
如果需要自动标注的语料规模较大,该智能标注系统可考虑分布式部署。
该系统不受限于算法或数据的类型,无论是文本、音视频还是图片图像的数据,以及对应于这些数据的各种算法,都可以按照这种循环迭代的方式构建一个标注系统,来实现智能化的数据标注。