【信息科学与控制工程】
进入21世纪,高速度、快节奏的现代战争分秒必夺,指挥自动化应运而生。作战文书包含部队番号、编成、地名、时间、行动等命名实体信息,其识别处理是指挥自动化领域的重要研究内容,经过信息抽取后的文书信息,可用于智能辅助决策、自动标绘地图、自动生成摘要等方面。因此作战文书信息抽取的准确度成为决定作战文书自动处理性能的关键因素。部队番号是作战文书中的重要组成元素,部队番号的准确识别意义重大。
部队番号的识别属于命名实体识别中的机构名识别[1-2]。近年来大部分研究将部队番号作为普通军事命名实体,采用基于规则的方法、基于机器学习的方法和基于深度学习的方法,同编成、行动、地点等运用统一模型识别。由于作战文书语义简明、结构性强,文献[3-6]采用基于规则的方法提取信息,但在算法实现上没有提出解决方案。文献[7]、文献[8]通过角色标注并使用正向匹配算法对部队番号进行识别,存在识别不完整的问题。文献[9-11]提出使用基于机器学习的方法,但这种方法模型设计难,且改进模型后需重新训练模型,耗时较多。文献[12]提出使用基于字向量的深度神经网络模型识别,但其对训练样本依赖高,时间复杂度高,计算资源消耗大。同时采取统一模型识别的优势在于信息识别范围广,但也存在模型特征多、设计难、实现复杂、识别广度和精度难以并重的问题。针对上述问题,以“专而精”为出发点,本文重点对部队番号的识别问题进行了研究,旨在实现部队番号的准确、简单、高速识别。
根据军队标号规定和分析可知,部队番号由多个子元素组成,有较强的组成规律,可以按组块分析[13]的方法处理。文献[14]给出的汉语组块定义如下:组块是一种结构,是符合一定句法功能的非递归短语。但在真实语料中,部队番号的构成具有递归性,不能简单套用组块识别的方法。针对部队番号识别问题,本文提出了一种递归型组块规则,并实现了基于有穷自动机的部队番号识别。
部队番号是部队的编制名称,一般按照部队的性质、编制序列授予。从构成上讲,基本的番号是由部队种类、序列、编制构成。如:“坦克第10团”,“骑兵2旅”,“宪兵连”等。因此得出构造部队番号的基本组块规则是:
基本块=部队种类+序列+编制
通过建立作战文书语料库并分析,番号的组成并不是完全简单的按上述规则构成,往往是由基本块加表附加的属性词复合而成。如:“空军11师空降第173旅”“炮兵第17旅工兵营和防化营”“装甲1营前方支援连”“3旅1营欠3连”等。由上分析得到一个递归的组块规则(其中带方括号的项可以为空):
基本块=[附加]+基本块
番号=基本块+[基本块]
部队番号是一种结构化语块,使用有穷自动机分析能避免计算机理解作战文书的困难,具有较强的操作性。这种方法首先要确定部队番号的生成文法,然后根据文法构造识别部队番号的有穷自动机,最后建立分析表供识别时使用。有穷自动机是一种识别装置,它能准确的识别正规文法所定义的语言和正规式所表示的集合。由于在分词处理中诸如:“第二十六”、“第97”等词通常被拆分成“第/二十六”,“第/97”。为了便于计算机处理,对上面给出的规则进行改进。将“序列”拆分成“[顺序]+数字”。定义非终结符集合a,b,c,d,e,f(其元素不属于前述任意集合),g(基本块),它们的意义见表1。
表1 非终结符意义
非终结符含义包含词语a种类空军,陆军,海军,骑兵,狙击等b顺序第c数字1,2,3,4,……,一,二,三等d编制军,师,旅,团,营,连,排,大队等e附加加强,配属,欠,和等
这里构造了两个有穷自动机实现对完整部队番号的识别。使用两重自动机可以简化文法的构造,避免复杂文法带来的冲突和编制程序时的复杂性。根据规则可以得基本块的文法为
G1=({S1,S2,S3,S4},{a,b,c,d},P,S′),其中P由下列产生式组成:
[0]S′→S0
[1]S0→aS1
[2]S0→bS2
[3]S0→cS3
[4]S1→bS2
[5]S1→cS3
[6]S1→dS4
[7]S2→cS3
[8]S3→dS4
[9]S4→ε
显然上述文法是一个正规文法,因此可以使用有穷自动机对由该文法表示的集合进行识别。识别基本块的有穷自动机DFA1如图1所示。
图1 DFA1示意图
完整部队番号的文法为
G2=({S1,S2},{e,f,g},P,S′),其中P由下列产生式组成:
[0]S′→S0
[1]S0→gS0
[2]S0→eS1
[3]S0→fS2
[4]S1→gS0
[5]S1→fS2
[6]S2→ε
文法G2是正规文法,DFA2如图2所示。
图2 DFA2示意图
自底向上的分析方法广泛应用于文法分析,它是一种“移进—归约”的分析方法。其基本思想是对输入文本从左到右扫描,逐个符号入栈,形成可归约串便用产生式的右部替换,如此反复如果最后只剩开始符则分析成功。LR(k)是一种规范的自底向上分析方法。大多数无二义性上下文无关文法都可以使用相应的LR分析器识别。一个LR分析器由驱动程序、分析表、分析栈组成。
构造一个文法的分析表的前提是构造它的识别可归纳前缀的有穷自动机。列出文法G1和G2产生式的全部项目,对所有项目对应的状态构造识别活前缀的有穷自动机。基本块的识别活前缀的有穷自动机如图3所示(In代表状态)。部队番号的识别活前缀的有穷自动机如图4所示。
图3 识别G1活前缀的有穷自动机框图
图4 识别G2活前缀的有穷自动机框图
由上可以看出:文法G1和G2的项目不存在“移进—归约”冲突和“归约—归约”冲突,在分析过程中不需要向右查看输入符号,所以选用LR(0)文法作为识别部队番号的文法。
根据识别活前缀的有穷自动机构造文法,首先根据基本块的识别活前缀自动机,构造G1的LR(0)分析表,如表2(rj表示使用G1的产生式j进行归约)。
表2 G1的LR(0)分析
状态ACTIONabcdGOTOS0S1S2S3S40I2I3I4 1 1ACC2I6I7I853I1094I12115r1r1r1r16I10157I12168179r2r2r2r210I121411r3r3r3r3121313r8r8r8r814r7r7r7r715r4r4r4r416r5r5r5r517r6r6r6r6
使用同样的方法,构造文法G2的LR(0)分析表,如表3(Rj表示使用G2的产生式j进行归约)。
表3 G2的LR(0)分析
状态ACTIONegfGOTOS0S1S20I3I2I61 1ACC2I3I2I673I4I584I3I2I610511697R1R1R18R2R2R29R3R3R310R4R4R411R5R5R5
使用自动机识别前,应将语句划分为具有语义且不可分割的“单词”,即做分词处理。本文使用ICTCLAS分词系统提供的接口对作战文书进行处理。分词过程中导入了部队番号有关的用户词典,提高分词准确率。对分词后的文本以句为识别单位,提高识别效率。输入文本:“骑兵第1旅(欠1营)加强化学2连”分词结果为:“骑兵/第/1/旅/(/欠/1/营/)/加强/化学/2/连”。第一次转换成标记的结果是:abcdecdeacd。然后扫描识别,识别的过程是不断的移进归约,这里列举运用表2分析acd子串的过程,如表4。
表4 基本块识别过程
步骤状态栈符号栈输入串ACTIONGOTO10acdI2202acdI73027acdI124027(12)acdr9135027(12)(13)acdS4r8166027(16)acS3r557025aS1r11801S0ACC
识别完成后整个串转换为gegegf,运用表3分析,番号识别过程如表5。
表5 番号识别过程
步骤状态栈符号栈输入串ACTIONGOTO10gegegfI2202gegegfI33023gegegfI440234gegegfI3502343gegegfI46023434gegegfI67023434gegegfR6980234349gegegfS2R310902343(10)gegegS0R481002348gegeS1R21011023(10)gegS0R4812028geS1R271307gS0R111401S0ACC
输出ACC,识别成功,储存所识别出的语块,以备向番号注记转换时使用。
测试样本分为3个类别:作战文书、军用公文、军事战例。作战文书选自某部队2015年参加某大型演习任务的演习文书汇编,共69篇文书,153 788字。军用公文选自某部队近五年各类检查通报50篇,62 752字。军事战例使用《军队指挥与案例》(国防工业出版社,2015年第1版),约210 000字。测试前,先对测试样本中包含的部队番号数进行人工统计,生成检验集,再用自动识别生成的番号集与之对比,得出精确率(P)、召回率(R)和F值。测试中使用的计算机配置:处理器为 Intel i7-8750H 2.2 GHz,内存为8 GB,操作系统为64 位Windows10(企业版),硬盘为512G固态硬盘。
4.1.1 不同识别方法测试结果
测试时,分别使用本文提出的基于有穷自动机的识别方法(记为DFA法),文献[9]提出的基于支持向量机的识别方法(记为SVM法),文献[11]提出的基于条件随机场的识别方法(记为CRF法),文献[12]提出的基于深度学习的识别方法(记为DL法)对作战文书类测试样本进行测试,得到精确率(P)、召回率(R)和F值如表6所示。
表6 不同方法测试结果
方法P/%R/%FDFA法96.1295.970.960SVM法91.9888.290.901CRF法89.1484.550.868DL法95.0095.000.950
从表6看出:DFA法的精确率、召回率都在95%以上,说明本方法是有效的。DFA法和DL法在识别精确率、召回率和F值上较为接近,效果好于SVM法和CRF法。从算法角度看,后两种方法难以准确界定识别粒度,且均需指定识别的上下文窗口值,这样的设置是以损失准确度为代价以提高识别速度。但总体上DFA法好于其他三种方法,说明在组成规则明确的条件下,运用规则法具有更好的可靠性。原因是SVM法和CRF法并非完全由机器自主发现特征,而是依赖人运用领域知识提取特征,其识别准确度取决于提取特征的准确度,从而导致了识别的精确率难以到达较高的水平。而DL法需要大量准确标记的训练数据训练模型才能达到较理想的效果,但目前还没有面向军事命名实体识别的权威数据集,个人选取的训练数据集覆盖面不全,较大的影响深度学习结果的准确性。DFA法从部队番号的构成规则出发,避免了上述问题。
4.1.2 不同测试样本测试结果
使用DFA法分别对作战文书、军用公文、军事战例三类测试样本进行测试,得到精确率(P)、召回率(R)和F值如表7所示。
表7 不同测试样本测试结果
测试样本P/%R/%F作战文书96.1295.970.960军用公文97.1097.910.975军事战例79.1875.270.772
从表7可以看出:本方法在对作战文书和军用公文中部队番号的识别效果上,明显好于对军事战例中部队番号的识别。原因是作战文书和军用公文是规范化的文书,其行文和用词都严格遵守相关规定和《军语》,而军事战例行文相对自由,部队番号的使用不够规范,从而导致识别精确率下降。以上结果说明本方法在应用范围上具有一定的局限性。
统计分析识别中存在的问题,发现影响识别准确性的因素主要有3类:作修饰语的番号、未登录词和歧义。各因素占比如图5所示。
图5 3种样本各类型错误数量分布
1)作修饰语的番号的影响
本文需要识别的部队番号应当是专有名词,而做定语成分出现具有修饰作用的番号则不应被召回,这类番号虽然被准确识别,但却不能独立使用。在全部识别结果中,有73条番号属于这类番号,占总错误的61.24%,成为影响识别结果的主要因素。例如:“另一方面,必须对敌防空排阵地实施有效的火力打击”,此句中的防空排被识别为番号,但分析语句可知,“防空排”作定语修饰“阵地”,不可以单独使用,应当在识别结果中予以排除。
2)未登录词的影响
未登录词在本文中特指属于部队番号组成元素但又未收录入非终结符集的词语。对照识别结果,由未登录词导致的识别不准共出现37条,占总错误的31.09%。未登录词对于识别的影响主要表现为3种:一是识别晚触发,二是识别早终止,三是识别未触发。例如:“参演机关有东海舰队、东航、舟山基地”,此语句中包含未登录词“东航”,方法1没有将简称东航识别为部队番号。又如:“娘母江曲两侧为阿萨姆步兵第5营”,由于阿萨姆属于未登录词,导致识别晚触发,只识别出“步兵第3营”,未将该番号完整识别。
3)歧义的影响
歧义在汉语中属于常见现象,例如:“南京市长江大桥”,既可以理解为“南京市/长江大桥”,也可以理解为“南京市长/江大桥”,其准确含义需要联系具体语境判断。在识别中,由于分词存在误差,导致了非部队番号被召回。例如:“我们首次三军联合渡海登陆作战”中,由于将“三军”拆分为“三/军”,触发了自动机,将其识别为部队番号。
经过识别抽取的部队番号被存储为结构化文本,可直接转换成番号注记用于自动标绘要图。此方法还可扩展应用于辅助涉军舆情监测、涉密信息检查,能较为快速准确的锁定涉及部队番号的相关信息。本文提出的部队番号识别方法可操作性强。提出了递归型部队番号组块规则,并设计实现了一种运用有穷自动机识别部队番号的方法,测试结果表明该方法具有实用性。由于受分词系统的影响和测试语料规模的限制,该方法的适用性和处理能力还有待进一步检验。
[1] 黄林晟,邓志鸿.基于编辑距离的中文组织机构名简称-全称匹配算法[J].山东大学学报(理学版),2012(5):43-48.
[2] 胡 斌,汤伟,刘晓明.基于自然语言理解的文本标图系统设计与实现[J].解放军理工大学学报(自然科学版),2005,6(2):132-136.
[3] 杨健,高文逸,王衍波.一种作战文书军事标图自动化方法[J].解放军理工大学学报(自然科学版),2006(6):543-547.
[4] 李向阳,张亚非.一种军用图文自动转换方案[J].情报指挥控制系统与仿真技术,2004(5):14-18.
[5] 鲍广宇,杨飞,刘晓明.军事文本标图系统的设计与原型实现[J].解放军理工大学学报(自然科学版),2003(3):30-34.
[6] 蒋定定,赵友庚.军事标图系统的自动化设计[J].兵工自动化,2004(3):15-17.
[7] 谢宝陵,刘侃,汤超君.作战文书关键信息抽取方法[J].计算机与数字工程,2014(11):2142-2145.
[8] 李畅,王永良,冯晓洁等.作战文书关键信息抽取方法[J].兵工自动化,2011,30(5):26-29.
[9] 姜文志,顾佼佼,胡文萱,等.基于多模型结合的军事命名实体识别[J].兵工自动化,2011,30(10):90-93.
[10] 李跃进,赵晶,林鸿飞.基于Internet的军事演习信息抽取系统[J].计算机工程与应用,2016(14):214-218.
[11] 单赫源,张海粟,吴照林.小粒度策略下基于CRFs的军事命名实体识别方法[J].装甲兵工程学院学报,2017,31(1):84-89.
[12] 王学锋,杨若鹏,朱巍.基于深度学习的军事命名实体识别方法[J].装甲兵工程学院学报,2018,32(4):94-98.
[13] 王莹莹.汉语组块识别的研究[D].大连:大连理工大学,2006:34-35.
[14] 李素建,刘群.汉语组块的定义和获取[C]//全国第七届计算语言学联合学术会议.中国中文信息学会等,哈尔滨,2003:234-236.
Citation format:TANG Jian, LIU Haiyan.Automatic Recognition Method of Unit Designations in Operation Documents[J].Journal of Ordnance Equipment Engineering,2020,41(2):143-147.