本发明涉及自然语言处理、深度学习以及主动学习领域,特别是涉及一种针对电力预案分析的文本序列标注技术。
背景技术:
传统的电网调度系统依赖于管制员的主观决策,工作强度大,对调度员可靠性要求高。与调度员相比,计算机的运行速度快、实时性高、存储容量大、可靠性高。而调度员所能够承担的工作强度小、持续时间短、反应速度慢、记忆容量有限,效率不稳定,可靠性易受环境影响。电力系统的迅速发展,使得调度员的工作强度变大、工作时间延长,从而导致调度员工作疲劳,容易发出不当调度指令。如果通过机器辅助调度员进行管理,将有效提高系统的性能和可靠性,这对减少安全事故具有重大和迫切的现实意义。
现有调度自动化系统中沉淀着大量的告警信息、事故报告以及设备状态信息。研究人员围绕这些信息开展数据分析,通常是采用统计分析、遗传算法等传统人工智能方法的方法。基于大数据的深度学习最近在人工智能领域取得重大突破,并在语音识别、自然语言处理、计算机视觉等诸多领域取得了巨大成功。采用模式识别和机器学习算法,结合文本聚类或者文本分类算法,使得从多角度和多粒度上分析电网故障事件之间的关联关系成为可能。
电力预案是根据以往在电网运行中发生故障后调度员的处理经验而编制的故障处置手册。为有效管理和利用预案,首先需要将预案文本中包含的我们感兴趣的信息,例如地名、故障和处置方式等,提取出来,再进一步存储、分析和利用。抽取一段文本序列感兴趣的信息属于自然语言处理中序列标注问题。
序列标注模型需要大量预标注的数据用于训练,然而,由于电力预案文本数据规模很大且高度专业化,人工标注需要具备丰富的领域知识且工作量巨大。主动学习是一种快速训练模型的方法,只使用少量样本即可达成与大量样本相同的标注模型训练效果。因此,本发明即能找到当前最具代表性和信息性的训练数据用于训练标注模型,提高标注效率。该方法主要分为选择模块和学习模块,选择模块的目的是找出当前最具代表性和信息性的训练数据,学习模块则是通过选择模块选出的数据不断提高分类器的分类准确性和鲁棒性。目前主动学习已在命名实体识别、社交媒体数据、空间数据标注、图像分类等方向取得了良好的成效。
技术实现要素:
1、一种基于主动学习的电力预案文本标注方法,其特征在于,所述主动学习方法包括:
对获取到的电力预案文本进行预聚类;
从聚类后的数据中选择出待标注的样本;
将神经网络模型对数据的预测结果进行结构化输出;
2、根据权利要求1所述的基于主动学习的电力预案文本标注方法,其特征在于,针对电力预案文本数据的预聚类技术,具体包括:
通过专家人工整理,挑选出电力领域专有词汇,建立电力预案数据专属词典;
根据专属词典生成文本数据的特征向量;
将特征向量作为聚类算法的输入,进行聚类。
3、根据权利要求1所述的基于主动学习的电力预案文本标注方法,其特征在于,针对电力预案文本的主动学习的样本迭代策略,具体包括:
依照词袋最大化的标准,在聚类后得到的各簇中等比例的抽样选择出最初的种子集;
迭代时,结合样本的信息性和代表性挑选出可交予人工标注的数据以构成训练集;
当样本的信息性不再有显著变化或训练集达到一定数量时停止迭代。
4、根据权利要求1所述的基于主动学习的电力预案文本标注方法,其特征在于,针对电力预案文本序列标注的的神经网络预测结果结构化输出方法,具体包括:
神经网络输出文本中每个词的预测标签和对应的所有标签的概率;
将一条预案文本处理成多行文本,每行由原文的一个词、预测标签和所有标签的预测概率三部分组成;
附图说明
为了更清楚地说明本发明实施例或现有技术中的技术方案,下面将对实施例中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本发明的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动性的前提下,还可以根据这些附图获得其他的附图。
图1为本发明实施例基于主动学习的电力预案文本标注方法的样本预处理流程图;
图2为本发明实施例基于主动学习的电力预案文本标注方法的序列标注流程图;
图3为本发明实施例基于主动学习的电力预案文本标注方法的样本选择策略流程图。
具体实施方式
下面将结合本发明实施例中的附图,对本发明实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例仅仅是本发明一部分实施例,而不是全部的实施例。基于本发明中的实施例,本领域普通技术人员在没有做出创造性劳动前提下所获得的所有其他实施例,都属于本发明保护的范围。
为使本发明的上述目的、特征和优点能够更加明显易懂,下面结合附图和具体实施方式对本发明作进一步详细的说明。
图1为本发明实施例基于主动学习的电力预案文本标注方法的样本预处理流程图,如图1所示:
步骤101:此步骤主要是电力预案领域先验知识的准备,主要是建立电力预案领域的专业词典。词典内容为从大量与电力预案相关的文本中整合而来的专业字词,这类字词在日常用语中很少出现因此现有的分词工具难以处理,所以这步工作是由电力专家使用一些文本处理工具人工完成。专业名词根据实际需求分为多个词典,包括厂站名、设备名、动作名等多项词典。
步骤102:此步骤基于上步完成的电力预案专业词典对训练集和测试集中的电力预案文本进行分词处理。本施例中分词的工具选用python中的jieba分词包实现,对于专业词典中未出现的词则按通用分词逻辑处理。
步骤103:此步骤基于之前的分词结果和专业词典,对电力预案中每条文本数据进行向量表示。每一个词典代表一个向量维度,向量初始各维度值为0,一条文本中每包含一个词典中的词,则该词典对应的维度的值加1.
步骤104:此步骤主要是根据上步得到的文本数据的向量对文本数据进行分类,使用k-means算法对数据进行聚类,获得多个簇,每个簇即一个类,类中的文本数据呈现结构以及字词上的相似性。
图2为本发明实施针对电力预案文本的基于主动学习的序列标注策略流程图。本发明实例基于编程语言python和深度学习工具包pytorch实现。大体过程为从预案文本中挑选文本构成种子集,使用该种子集训练出一个神经网络,利用该神经网络对剩余的文本数据进行预测,结合预测结果和簇的分布,挑选出最有利于改进模型的部分文本数据交予专家进行人工标注,重复该过程直到样本信息性不再有显著变化。下面如图2所示,针对电力预案文本的基于主动学习的序列标注步骤有:
步骤201:此步骤读取聚类后的预案文本数据
步骤202:此步骤实现样本种子集的挑选,一批文本数据中不重复的词可以构成一个词袋,每次从数据集中挑选出可使词袋扩充最多的文本,如果该文本所属簇未挑满10%的数据,则将该文本数据加入种子集,并将该文本中的新词加入词袋,否则重新挑选。
步骤203:此步骤进行神经网络训练。本实施例基于pytorch实现长短时记忆神经网络模型,输入为17维的向量(17为词典总个数),输出为n维向量(n代表所有类型标注的总数)。训练过程分为4个epoch每个1000次迭代,使用gpu训练,时间与训练数据成正比。
步骤204:在模型训练完成后此步骤将对除训练集以外的数据进行预测,给出模型对每个文本的预测标签和各个标签的预测概率。
步骤205:结合模型给出的预测概率和簇的比例分布重新挑选样本加入训练集中。
步骤206:在步骤完成对训练集的人工标注,然后转至步骤203直至达到迭代结束标准。
图3为本发明实施例针对电力预案文本序列标注的主动学习的样本选择策略流程图。如图3所示:
步骤301:此步骤读取步骤203中模型对剩余文本数据的预测结果,挑选中预测概率最大的五个结果,进行归一化,然后取这五个值得平均值除以5的结果,称为不确定性度,该值越大则代表该句的信息性越大。一条句子的不确定性度用各词的不确信度和合除以词的个数得到。
步骤302:每次迭代的数量比例是总体数据的2%,挑选出剩余文本数据中不确定度最大的文本。
步骤303:如果该文本数据所属簇挑选的文本数量未达总数据量的2%,则将该条文本加入训练集并重复步骤302,否则直接重复步骤302
步骤304:重复以上步骤直到训练集中数量总量已达总数据量的2%。