一种基于条件随机场的电力调度日志设备名称提取方法与流程

文档序号:15982175发布日期:2018-11-17 00:27阅读:220来源:国知局
本发明涉及电力调度领域,尤其涉及一种基于条件随机场的电力调度日志设备名称提取方法。
背景技术
调度运行日志管理系统是电网调度管理机构的重要应用软件,是运行管理系统的重要组成部分。在电网运行管理工作中,需要记录电网的基本运行情况、异常情况以及处置办法,这些文本记录就是电网调度日志,它不但是调度部门的工作记录,而且还可为运行管理部门、设备保护管理部门以及设备检修管理部门等相关部门提供基本的电网运行情况数据,同时为管理层制定工作计划和协调各部门之间的工作提供数据支撑。但是,在现有国家电网调度运行日志管理系统中,通常采用自然语言对电网异常情况及其处置办法进行描述,这种文本信息虽然方便表达概念以及事件等,但是同时也不利于搜索及进一步统计分析。技术实现要素:本发明所要解决的技术方案是:提供一种基于条件随机场的电力调度日志设备名称提取方法,采用这种方法,对电网运行日志的搜索与统计分析比较方便。本发明所采用的技术方案是:一种基于条件随机场的电力调度日志设备名称提取方法,它包括以下步骤:s1、切换到训练模式,收集训练日志;s2、对步骤s1收集的训练日志进行预处理;s3、对步骤s2预处理后的训练日志中的每个单字设置标签;s4、根据步骤s3设置标签后的训练日志得到一个基于条件随机场的训练模型;s5、切换到检测模式,收集测试日志;s6、对步骤s5收集的测试日志进行预处理;s7、将步骤s6预处理后的测试日志输入步骤s4得到的训练模型,得到测试日志中的每个单字对应的标签,然后根据标签取出需要的单字,形成需要的信息。采用以上方法与现有技术相比,本发明具有以下优点:根据条件随机场以及人工标签的一些训练日志得到一个训练模型,这样就可以将实际得到的日志通过这个训练模型得到每个单字的标签,即不需要人工再去为每个日志去设置标签,这样就可以通过模型得到调度日志涉及到的设备信息,进而可以方便的对电网调度日志按设备名称进行搜索与统计分析。作为优选,步骤s2以及s6中的预处理是指将电力调度日志中的无意义的标点符号进行删除。这样可以大大降低设置模型的复杂性,并且可以提高模型的准确性。作为优选,步骤s2以及s6中的预处理还包括将电力调度日志中的不规范的字进行转化。这样能更好的降低设置模型的复杂性,并且能更好的提高模型的准确性。作为优选,步骤s3中对步骤s2预处理后的测试日志中的每个单字设置标签是指,将厂站名称开始位设置标签为b-station,将厂站名称后部位设置标签为i-station,将隔断名称开始位设置标签为b-partition,将隔断名称后部位设置标签为i-partition,将设备名称开始位设置标签为b-device,将设备名称后部位设置标签为i-device,将其他设置标签为o。这样设置能很好的区分厂站、隔断以及设备,将这些需要的信息取出。作为优选,步骤s4中包括设置条件随机场的特征模板然后根据特征模板生成特征函数,且所述特征模板包括自身单字、自身单字前面相邻的单字、自身单字后面相邻的单字、自身单字与前面相邻单字形成的组合、自身单字与后面相邻单字形成的组合以及自身单字与前后相邻单字形成的组合。采用这种特征模板,充分考虑了单子附近的上下文信息,能使得得到的模型更加准确。作为优选,步骤s6取出的单字形成的信息包括厂站名称信息、隔断名称信息以及设备名称信息,且步骤s6之后还需要将取出的名称信息与标准库中的名称信息进行比对。这样设置,因为设备名按照规范由厂站名、隔离名以及具体设备名三部分组成,但是填写时可能会写简称或者另外的称呼,所以采用这种方法可以筛选出正确的设备。作为优选,所述比对为采用levenshtein距离度量两个名称的字符串a、b之间的相异性,用leva,b(i,j)表示a中前i个字符表示的字符串和b中前j个字符表示的字符串间的距离,定义如下:两个名称字符串之间的相异度s(a,b)可用下式表示:其中|a|,|b|分别表示名称字符串a和b的长度,用a表示提取的名称的字符串,b表示标准名称的字符串,threhold为阈值,当s(a,b)<threhold时,则提取名称为合法,并把标准名称数据库中与a相异度最小的字符串作为获取的名称,否则忽略提取的名称。采用这种具体的对比方法,可以更好的筛选出正确的名称,并且将写错或者写成类似名称给改正。具体实施方式以下采用具体实施方式对本发明做进一步描述,但是本发明不仅限于以下具体实施方式。收集10条训练用电力调度日志,分别标记为train1-train10:train1:宝桥变五园n101线事故分闸,重合闸未投,告市区二站张晓东,告配调王溢熹。train2:明楼变余隘432线、宁味434线、橡胶439线事故分闸,重合成功,告配调郑峰,其中橡胶439线只有重合闸出口动作信号,告自动化检查---11:07现场检查后告现场后台三条线路均无告警信号,保护也没有动作过,为误发信,告王晓、告自动化上事,调控中心报重要缺陷。train3:慈城变观庄n689线事故分闸,重合成功,“观庄n689线路接地动作”信号未复归,告市区三站,告配调王溢熹train4:告其:江北变10kvii母c相电压接近0,a、b相为线电压,15:14分清河n336线保护动作开关分闸,10kvii母电压恢复正常。train5:告其:周宿变联宁n419线低周减载动作、保护动作,开关无变位信号,无事故分闸信号。告配调吴勇勇。train6:周宿变香格n420线保护动作,开关跳闸,10kvii段母线c相接地现象消失,并告配调上事。train7:告其象北变亭北1743线保护动作,开关变位,重合闸成功,衣亭变220kv母线保护运行异常告警。通知象山调王毅。train8:告其马郎变西成n867线保护出口,开关分闸,重合闸未投,通知配调顾菁。train9:22:35马郎变西成n867线恢复运行train10:告其2:58宝桥变10kv#3电容器保护动作,开关跳闸。告配调汪忠。地调监控闭锁该电容器avc投切功能。首先将标点符号都删除,然后对训练日志进行bio标注法设置标签,将厂站名称开始位设置标签为b-station,将厂站名称后部位设置标签为i-station,将隔断名称开始位设置标签为b-partition,将隔断名称后部位设置标签为i-partition,将设备名称开始位设置标签为b-device,将设备名称后部位设置标签为i-device,将其他设置标签为o。其中train1设置标签后如下表一:表一宝桥变五园n101线b-stationi-stationi-stationb-partioni-partioni-partioni-partioni-partioni-partioni-partion事故分闸重合闸未投告oooooooooo市区二站张晓东告配调oooooooooo王溢熹ooo其他9个测试日志的跟train1一样进行人工设置标签,然后设置特征模板,我们把观测到的文本序列用随机变量x表示,字的标签用随机变量y表示,假设p(y|x)为条件随机场(conditionrandomfield,crf),则在随机变量x取值为x的条件下,随机变量取值为y的条件概率具有如下形式:其中,z(x)=∑yexp(∑i,jλktk(yi-1,yi,x,i)+∑i,lμlsl(yi,x,i))(2)表示规范化因子,yi是标签,x是观测序列,i是当前节点位置,tk和sl分别称为状态转移特征函数和状态特征函数,λk和μl是对应的权值。特征函数是二值函数,函数值为0或1。本方法中采用crf++-0.58中的特征模版生成特征函数,crf++-0.58是一个已经公开的现有技术,只需要自己设置特征模板,将设置的特征模板输入到crf++-0.58中会自动得到特征函数。crf++包括unigram和bigram两类模版,分别用于生成状态特征函数sl(yi,x,i)和状态转移特征函数tk(yi-1,yi,x,i)。模板格式为:label:%x[row,col],其中,label表示模版的标号,row和col分别表示相对的行偏移与列偏移,用于表示观测序列x。unigram特征模版自动生成状态特征函数sl(yi,x,i),生成特征函数的个数为:输出标签数量*所有跟模版匹配的特征数量。bigram特征模版自动生成状态转移特征函数tk(yi-1,yi,x,i),生成特征函数的个数为:输出标签数量*输出标签数量*所有跟模版匹配的特征数量。电力调度日志文本主要由一些表示特殊含义的字组成的专有名词,因此在特征模版设计时,采用状态转移特征函数为主。本实施例中特征模版如下所示:#unigramu00:%x[-2,0]u01:%x[-1,0]u02:%x[0,0]u03:%x[1,0]u04:%x[2,0]u05:%x[-1,0]/%x[0,0]u06:%x[0,0]/%x[1,0]u07:%x[-2,0]/%x[-1,0]/%x[0,0]u08:%x[-1,0]/%x[0,0]/%x[1,0]u09:%x[0,0]/%x[1,0]/%x[2,0]根据上面的特征模版,unigram模版以u00为例,模版展开后可得如下状态特征函数:func1=ifyi=‘b-station’andx=‘u00:-’return1else0func2=ifyi=‘i-station’andx=‘u00:-’return1else0func3=ifyi=‘b-partition’andx=‘u00:-’return1else0func4=ifyi=‘i-partition’andx=‘u00:-’return1else0func5=ifyi=‘b-device’andx=‘u00:-’return1else0func6=ifyi=‘i-device’andx=‘u00:-’return1else0func7=ifyi=‘o’andx=‘u00:-’return1else0bigram模版只默认生成tk(yi-1,yi),展开后即得一系列状态转移特征函数:func1=ifyi=‘b-station’andyi-1=‘b-station’return1elsereturn0func2=ifyi=‘b-station’andyi-1=‘i-station’return1elsereturn0…然后得到train1的特征模板,如下表二所示:表二之后crf++-0.58会根据模版函数自动生成特征函数,例如:func1=if(output=’b-partion’andfeature=‘u00:桥’)return1elsereturn0func2=if(output=’i-partion’andfeature=‘u00:桥’)return1elsereturn0…然后再进行模型训练,模型训练的目的是确定使条件概率p(y|x)最大的参数,即(1)式中的参数λ和μ,为了方便处理,把状态转移特征函数和状态特征函数统一写成f(x,y),λ和μ统一写成w,则条件随机场模型可统一写成通过训练数据,可知经验概率分布构造训练数据的对数似然函数:最大化最大似然函数等价于最小化以下函数:可采用改进的迭代尺度法、梯度下降法、l-bfgs优化算法求解(5),本具体实施例中采用l-bfgs方法获取模型参数w。具体实施时,把训练数据放入train.txt,每个字一行,调用crf++命令进行训练,命令如下:./crf_learntemplatetrain.txtmodel其中template为特征模版文件,model为生成的模型文件,即此时模型已经建立了。当收集到实际日志时,可以将实际日志输入到模型中,即将日志数据放入text.txt,每个字一行,调用如下crf++命令:./crf_test-mmodeltest.txt对测试数据进行名称标注,获取候选名称集合。候选设备名称生成,需要对测试语料进行预处理后,用已训练好的条件随机场模型,在新的测试语料(已知x1,x2,...,xn)中找出使p(y|x;w)概率最大的y1,y2,...,yn,本方法中采用viterbi算法求解,求解后可得到文本中每个字的标签。例如,test1:“地调正令,蔡郎变,蔡隐1297线由正母运行改为热备用(遥控)9:38操作完毕。”先进行预处理,然后输入模型,它会被自动标注成:为了规范化提取的名称,需要把提取的名称与标准数据库中的名称进行对比,以进一步提高准确性。本方法采用levenshtein距离度量两个设备名称字符串a,b之间的相异性,当相异性小于某一阈值时,则认为提取的设备名称为合法。如用leva,b(i,j)表示a中前i个字符表示的字符串和b中前j个字符表示的字符串间的距离,定义如下:两个名称字符串之间的相异度s(a,b)可用式(6)表示:其中|a|,|b|分别表示设备名称字符串a和b的长度。用a表示提取的字符串,b表示标准名称数据库中的名称,threhold为阈值,当s(a,b)<threhold时,则提取的名称为合法,并把标准名称数据库中与a相异度最小的字符串作为获取的名称,否则忽略提取的名称。以提取的“蔡隐1297线”为例,假设标准设备名称库中的名称为“蔡隐1297”,计算后的设备名称相异度s(a,b)=1/7=0.14<0.3(选定的阈值),则“蔡隐1297线”合法,并更名为标准名称“蔡隐1297”。最后应说明的是:以上实施例仅用以说明本发明的技术方案,而非对其限制;尽管参照前述实施例对本发明进行了详细的说明,本领域的技术人员应当理解,其依然可以对前述实施例所记载的技术方案进行修改,或者对其中部分技术特征进行同等替换;而这些修改或者替换,并不使相应的技术方案的本质脱离本发明各实施例技术方案的精神与范围。当前第1页12
当前第1页1 2 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1