唐 堅,劉海燕
(1.陸軍裝甲兵學(xué)院,北京 100072;2.31632部隊,昆明 650000)
進(jìn)入21世紀(jì),高速度、快節(jié)奏的現(xiàn)代戰(zhàn)爭分秒必奪,指揮自動化應(yīng)運(yùn)而生。作戰(zhàn)文書包含部隊番號、編成、地名、時間、行動等命名實(shí)體信息,其識別處理是指揮自動化領(lǐng)域的重要研究內(nèi)容,經(jīng)過信息抽取后的文書信息,可用于智能輔助決策、自動標(biāo)繪地圖、自動生成摘要等方面。因此作戰(zhàn)文書信息抽取的準(zhǔn)確度成為決定作戰(zhàn)文書自動處理性能的關(guān)鍵因素。部隊番號是作戰(zhàn)文書中的重要組成元素,部隊番號的準(zhǔn)確識別意義重大。
部隊番號的識別屬于命名實(shí)體識別中的機(jī)構(gòu)名識別[1-2]。近年來大部分研究將部隊番號作為普通軍事命名實(shí)體,采用基于規(guī)則的方法、基于機(jī)器學(xué)習(xí)的方法和基于深度學(xué)習(xí)的方法,同編成、行動、地點(diǎn)等運(yùn)用統(tǒng)一模型識別。由于作戰(zhàn)文書語義簡明、結(jié)構(gòu)性強(qiáng),文獻(xiàn)[3-6]采用基于規(guī)則的方法提取信息,但在算法實(shí)現(xiàn)上沒有提出解決方案。文獻(xiàn)[7]、文獻(xiàn)[8]通過角色標(biāo)注并使用正向匹配算法對部隊番號進(jìn)行識別,存在識別不完整的問題。文獻(xiàn)[9-11]提出使用基于機(jī)器學(xué)習(xí)的方法,但這種方法模型設(shè)計難,且改進(jìn)模型后需重新訓(xùn)練模型,耗時較多。文獻(xiàn)[12]提出使用基于字向量的深度神經(jīng)網(wǎng)絡(luò)模型識別,但其對訓(xùn)練樣本依賴高,時間復(fù)雜度高,計算資源消耗大。同時采取統(tǒng)一模型識別的優(yōu)勢在于信息識別范圍廣,但也存在模型特征多、設(shè)計難、實(shí)現(xiàn)復(fù)雜、識別廣度和精度難以并重的問題。針對上述問題,以“專而精”為出發(fā)點(diǎn),本文重點(diǎn)對部隊番號的識別問題進(jìn)行了研究,旨在實(shí)現(xiàn)部隊番號的準(zhǔn)確、簡單、高速識別。
根據(jù)軍隊標(biāo)號規(guī)定和分析可知,部隊番號由多個子元素組成,有較強(qiáng)的組成規(guī)律,可以按組塊分析[13]的方法處理。文獻(xiàn)[14]給出的漢語組塊定義如下:組塊是一種結(jié)構(gòu),是符合一定句法功能的非遞歸短語。但在真實(shí)語料中,部隊番號的構(gòu)成具有遞歸性,不能簡單套用組塊識別的方法。針對部隊番號識別問題,本文提出了一種遞歸型組塊規(guī)則,并實(shí)現(xiàn)了基于有窮自動機(jī)的部隊番號識別。
部隊番號是部隊的編制名稱,一般按照部隊的性質(zhì)、編制序列授予。從構(gòu)成上講,基本的番號是由部隊種類、序列、編制構(gòu)成。如:“坦克第10團(tuán)”,“騎兵2旅”,“憲兵連”等。因此得出構(gòu)造部隊番號的基本組塊規(guī)則是:
基本塊=部隊種類+序列+編制
通過建立作戰(zhàn)文書語料庫并分析,番號的組成并不是完全簡單的按上述規(guī)則構(gòu)成,往往是由基本塊加表附加的屬性詞復(fù)合而成。如:“空軍11師空降第173旅”“炮兵第17旅工兵營和防化營”“裝甲1營前方支援連”“3旅1營欠3連”等。由上分析得到一個遞歸的組塊規(guī)則(其中帶方括號的項(xiàng)可以為空):
基本塊=[附加]+基本塊
番號=基本塊+[基本塊]
部隊番號是一種結(jié)構(gòu)化語塊,使用有窮自動機(jī)分析能避免計算機(jī)理解作戰(zhàn)文書的困難,具有較強(qiáng)的操作性。這種方法首先要確定部隊番號的生成文法,然后根據(jù)文法構(gòu)造識別部隊番號的有窮自動機(jī),最后建立分析表供識別時使用。有窮自動機(jī)是一種識別裝置,它能準(zhǔn)確的識別正規(guī)文法所定義的語言和正規(guī)式所表示的集合。由于在分詞處理中諸如:“第二十六”、“第97”等詞通常被拆分成“第/二十六”,“第/97”。為了便于計算機(jī)處理,對上面給出的規(guī)則進(jìn)行改進(jìn)。將“序列”拆分成“[順序]+數(shù)字”。定義非終結(jié)符集合a,b,c,d,e,f(其元素不屬于前述任意集合),g(基本塊),它們的意義見表1。
表1 非終結(jié)符意義
這里構(gòu)造了兩個有窮自動機(jī)實(shí)現(xiàn)對完整部隊番號的識別。使用兩重自動機(jī)可以簡化文法的構(gòu)造,避免復(fù)雜文法帶來的沖突和編制程序時的復(fù)雜性。根據(jù)規(guī)則可以得基本塊的文法為
G1=({S1,S2,S3,S4},{a,b,c,d},P,S′),其中P由下列產(chǎn)生式組成:
[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→ε
顯然上述文法是一個正規(guī)文法,因此可以使用有窮自動機(jī)對由該文法表示的集合進(jìn)行識別。識別基本塊的有窮自動機(jī)DFA1如圖1所示。
圖1 DFA1示意圖
完整部隊番號的文法為
G2=({S1,S2},{e,f,g},P,S′),其中P由下列產(chǎn)生式組成:
[0]S′→S0
[2]S0→eS1
[3]S0→fS2
[4]S1→gS0
[5]S1→fS2
[6]S2→ε
譯文:The analysis is carried out according to the universal standard and general features of English abstracts,chiefly from the linguistic and the stylistic aspects.
文法G2是正規(guī)文法,DFA2如圖2所示。
圖2 DFA2示意圖
自底向上的分析方法廣泛應(yīng)用于文法分析,它是一種“移進(jìn)—?dú)w約”的分析方法。其基本思想是對輸入文本從左到右掃描,逐個符號入棧,形成可歸約串便用產(chǎn)生式的右部替換,如此反復(fù)如果最后只剩開始符則分析成功。LR(k)是一種規(guī)范的自底向上分析方法。大多數(shù)無二義性上下文無關(guān)文法都可以使用相應(yīng)的LR分析器識別。一個LR分析器由驅(qū)動程序、分析表、分析棧組成。
構(gòu)造一個文法的分析表的前提是構(gòu)造它的識別可歸納前綴的有窮自動機(jī)。列出文法G1和G2產(chǎn)生式的全部項(xiàng)目,對所有項(xiàng)目對應(yīng)的狀態(tài)構(gòu)造識別活前綴的有窮自動機(jī)。基本塊的識別活前綴的有窮自動機(jī)如圖3所示(In代表狀態(tài))。部隊番號的識別活前綴的有窮自動機(jī)如圖4所示。
圖3 識別G1活前綴的有窮自動機(jī)框圖
圖4 識別G2活前綴的有窮自動機(jī)框圖
由上可以看出:文法G1和G2的項(xiàng)目不存在“移進(jìn)—?dú)w約”沖突和“歸約—?dú)w約”沖突,在分析過程中不需要向右查看輸入符號,所以選用LR(0)文法作為識別部隊番號的文法。
根據(jù)識別活前綴的有窮自動機(jī)構(gòu)造文法,首先根據(jù)基本塊的識別活前綴自動機(jī),構(gòu)造G1的LR(0)分析表,如表2(rj表示使用G1的產(chǎn)生式j(luò)進(jìn)行歸約)。
表2 G1的LR(0)分析
使用同樣的方法,構(gòu)造文法G2的LR(0)分析表,如表3(Rj表示使用G2的產(chǎn)生式j(luò)進(jìn)行歸約)。
表3 G2的LR(0)分析
使用自動機(jī)識別前,應(yīng)將語句劃分為具有語義且不可分割的“單詞”,即做分詞處理。本文使用ICTCLAS分詞系統(tǒng)提供的接口對作戰(zhàn)文書進(jìn)行處理。分詞過程中導(dǎo)入了部隊番號有關(guān)的用戶詞典,提高分詞準(zhǔn)確率。對分詞后的文本以句為識別單位,提高識別效率。輸入文本:“騎兵第1旅(欠1營)加強(qiáng)化學(xué)2連”分詞結(jié)果為:“騎兵/第/1/旅/(/欠/1/營/)/加強(qiáng)/化學(xué)/2/連”。第一次轉(zhuǎn)換成標(biāo)記的結(jié)果是:abcdecdeacd。然后掃描識別,識別的過程是不斷的移進(jìn)歸約,這里列舉運(yùn)用表2分析acd子串的過程,如表4。
表4 基本塊識別過程
識別完成后整個串轉(zhuǎn)換為gegegf,運(yùn)用表3分析,番號識別過程如表5。
表5 番號識別過程
輸出ACC,識別成功,儲存所識別出的語塊,以備向番號注記轉(zhuǎn)換時使用。
測試樣本分為3個類別:作戰(zhàn)文書、軍用公文、軍事戰(zhàn)例。作戰(zhàn)文書選自某部隊2015年參加某大型演習(xí)任務(wù)的演習(xí)文書匯編,共69篇文書,153 788字。軍用公文選自某部隊近五年各類檢查通報50篇,62 752字。軍事戰(zhàn)例使用《軍隊指揮與案例》(國防工業(yè)出版社,2015年第1版),約210 000字。測試前,先對測試樣本中包含的部隊番號數(shù)進(jìn)行人工統(tǒng)計,生成檢驗(yàn)集,再用自動識別生成的番號集與之對比,得出精確率(P)、召回率(R)和F值。測試中使用的計算機(jī)配置:處理器為 Intel i7-8750H 2.2 GHz,內(nèi)存為8 GB,操作系統(tǒng)為64 位Windows10(企業(yè)版),硬盤為512G固態(tài)硬盤。
4.1.1不同識別方法測試結(jié)果
測試時,分別使用本文提出的基于有窮自動機(jī)的識別方法(記為DFA法),文獻(xiàn)[9]提出的基于支持向量機(jī)的識別方法(記為SVM法),文獻(xiàn)[11]提出的基于條件隨機(jī)場的識別方法(記為CRF法),文獻(xiàn)[12]提出的基于深度學(xué)習(xí)的識別方法(記為DL法)對作戰(zhàn)文書類測試樣本進(jìn)行測試,得到精確率(P)、召回率(R)和F值如表6所示。
表6 不同方法測試結(jié)果
從表6看出:DFA法的精確率、召回率都在95%以上,說明本方法是有效的。DFA法和DL法在識別精確率、召回率和F值上較為接近,效果好于SVM法和CRF法。從算法角度看,后兩種方法難以準(zhǔn)確界定識別粒度,且均需指定識別的上下文窗口值,這樣的設(shè)置是以損失準(zhǔn)確度為代價以提高識別速度。但總體上DFA法好于其他三種方法,說明在組成規(guī)則明確的條件下,運(yùn)用規(guī)則法具有更好的可靠性。原因是SVM法和CRF法并非完全由機(jī)器自主發(fā)現(xiàn)特征,而是依賴人運(yùn)用領(lǐng)域知識提取特征,其識別準(zhǔn)確度取決于提取特征的準(zhǔn)確度,從而導(dǎo)致了識別的精確率難以到達(dá)較高的水平。而DL法需要大量準(zhǔn)確標(biāo)記的訓(xùn)練數(shù)據(jù)訓(xùn)練模型才能達(dá)到較理想的效果,但目前還沒有面向軍事命名實(shí)體識別的權(quán)威數(shù)據(jù)集,個人選取的訓(xùn)練數(shù)據(jù)集覆蓋面不全,較大的影響深度學(xué)習(xí)結(jié)果的準(zhǔn)確性。DFA法從部隊番號的構(gòu)成規(guī)則出發(fā),避免了上述問題。
4.1.2不同測試樣本測試結(jié)果
使用DFA法分別對作戰(zhàn)文書、軍用公文、軍事戰(zhàn)例三類測試樣本進(jìn)行測試,得到精確率(P)、召回率(R)和F值如表7所示。
表7 不同測試樣本測試結(jié)果
從表7可以看出:本方法在對作戰(zhàn)文書和軍用公文中部隊番號的識別效果上,明顯好于對軍事戰(zhàn)例中部隊番號的識別。原因是作戰(zhàn)文書和軍用公文是規(guī)范化的文書,其行文和用詞都嚴(yán)格遵守相關(guān)規(guī)定和《軍語》,而軍事戰(zhàn)例行文相對自由,部隊番號的使用不夠規(guī)范,從而導(dǎo)致識別精確率下降。以上結(jié)果說明本方法在應(yīng)用范圍上具有一定的局限性。
統(tǒng)計分析識別中存在的問題,發(fā)現(xiàn)影響識別準(zhǔn)確性的因素主要有3類:作修飾語的番號、未登錄詞和歧義。各因素占比如圖5所示。
圖5 3種樣本各類型錯誤數(shù)量分布
1)作修飾語的番號的影響
本文需要識別的部隊番號應(yīng)當(dāng)是專有名詞,而做定語成分出現(xiàn)具有修飾作用的番號則不應(yīng)被召回,這類番號雖然被準(zhǔn)確識別,但卻不能獨(dú)立使用。在全部識別結(jié)果中,有73條番號屬于這類番號,占總錯誤的61.24%,成為影響識別結(jié)果的主要因素。例如:“另一方面,必須對敵防空排陣地實(shí)施有效的火力打擊”,此句中的防空排被識別為番號,但分析語句可知,“防空排”作定語修飾“陣地”,不可以單獨(dú)使用,應(yīng)當(dāng)在識別結(jié)果中予以排除。
2)未登錄詞的影響
未登錄詞在本文中特指屬于部隊番號組成元素但又未收錄入非終結(jié)符集的詞語。對照識別結(jié)果,由未登錄詞導(dǎo)致的識別不準(zhǔn)共出現(xiàn)37條,占總錯誤的31.09%。未登錄詞對于識別的影響主要表現(xiàn)為3種:一是識別晚觸發(fā),二是識別早終止,三是識別未觸發(fā)。例如:“參演機(jī)關(guān)有東海艦隊、東航、舟山基地”,此語句中包含未登錄詞“東航”,方法1沒有將簡稱東航識別為部隊番號。又如:“娘母江曲兩側(cè)為阿薩姆步兵第5營”,由于阿薩姆屬于未登錄詞,導(dǎo)致識別晚觸發(fā),只識別出“步兵第3營”,未將該番號完整識別。
3)歧義的影響
歧義在漢語中屬于常見現(xiàn)象,例如:“南京市長江大橋”,既可以理解為“南京市/長江大橋”,也可以理解為“南京市長/江大橋”,其準(zhǔn)確含義需要聯(lián)系具體語境判斷。在識別中,由于分詞存在誤差,導(dǎo)致了非部隊番號被召回。例如:“我們首次三軍聯(lián)合渡海登陸作戰(zhàn)”中,由于將“三軍”拆分為“三/軍”,觸發(fā)了自動機(jī),將其識別為部隊番號。
經(jīng)過識別抽取的部隊番號被存儲為結(jié)構(gòu)化文本,可直接轉(zhuǎn)換成番號注記用于自動標(biāo)繪要圖。此方法還可擴(kuò)展應(yīng)用于輔助涉軍輿情監(jiān)測、涉密信息檢查,能較為快速準(zhǔn)確的鎖定涉及部隊番號的相關(guān)信息。本文提出的部隊番號識別方法可操作性強(qiáng)。提出了遞歸型部隊番號組塊規(guī)則,并設(shè)計實(shí)現(xiàn)了一種運(yùn)用有窮自動機(jī)識別部隊番號的方法,測試結(jié)果表明該方法具有實(shí)用性。由于受分詞系統(tǒng)的影響和測試語料規(guī)模的限制,該方法的適用性和處理能力還有待進(jìn)一步檢驗(yàn)。