鄧雅倩 劉元高
(第七〇一研究所 湖北省武漢市 430064)
軍事情報(bào)(Military Intelligence)主要是指情報(bào)研究者為了保護(hù)國(guó)家安全、提供可靠決策參考、保障軍事活動(dòng)能夠順利進(jìn)行,進(jìn)行搜集、處理與分析的某些有關(guān)國(guó)家安全、作戰(zhàn)指揮和軍隊(duì)建設(shè)方面的情況信息[1]。軍事情報(bào)的收集與分析在軍事領(lǐng)域占有極其重要的地位,情報(bào)信息的收集充分與否、準(zhǔn)確與否與軍事作戰(zhàn)息息相關(guān),充足準(zhǔn)確的軍事情報(bào)可以為軍事活動(dòng)提供可靠依據(jù)[2]。如今,軍事信息呈指數(shù)形態(tài)增長(zhǎng),呈現(xiàn)“數(shù)據(jù)超載”現(xiàn)象,且獲取的數(shù)據(jù)來(lái)源廣泛,導(dǎo)致內(nèi)容繁雜,難以提取出有效信息[3]。
軍事情報(bào)分析(Military Intelligence Analysis)則主要面臨著情報(bào)數(shù)據(jù)多元化、情報(bào)價(jià)值獲取難度升級(jí)以及傳統(tǒng)情報(bào)處理方法和應(yīng)用模式無(wú)法滿(mǎn)足現(xiàn)有情況需要等問(wèn)題[4],需要研究出適應(yīng)于現(xiàn)代軍事情報(bào)分析的智能情報(bào)分析系統(tǒng)。隨著人工智能技術(shù)的飛速發(fā)展,人工智能技術(shù)已在許多領(lǐng)域取得卓越成就[5][6],同樣,軍事情報(bào)領(lǐng)域也可以通過(guò)相關(guān)的人工智能技術(shù),實(shí)現(xiàn)對(duì)軍事情報(bào)的自動(dòng)收集、智能分析,來(lái)解決情報(bào)分析面臨的問(wèn)題[7][8]。目前,對(duì)于美海軍水面艦船活動(dòng)信息的情報(bào)分析上,還未發(fā)現(xiàn)相關(guān)情報(bào)分析系統(tǒng)的研究,而美國(guó)的各大軍事網(wǎng)站、軍事論壇中包含著大量有用的軍事數(shù)據(jù)[9],針對(duì)美海軍水面艦船,可以利用合適的人工智能技術(shù),建立相應(yīng)的軍事情報(bào)分析系統(tǒng),自動(dòng)化地對(duì)其各項(xiàng)軍事活動(dòng)數(shù)據(jù)進(jìn)行收集、分析,從中獲取可用情報(bào)。
因此,本文針對(duì)美國(guó)各大軍事和軍事論壇中的開(kāi)源數(shù)據(jù),首先運(yùn)用基于BeautifulSoup 框架的網(wǎng)絡(luò)爬蟲(chóng)技術(shù)進(jìn)行數(shù)據(jù)爬??;然后運(yùn)用基于NLP 的數(shù)據(jù)處理技術(shù),對(duì)爬取的原始網(wǎng)頁(yè)文本進(jìn)行結(jié)構(gòu)化處理;最后利用NLP 技術(shù)和卷積神經(jīng)網(wǎng)絡(luò)技術(shù)對(duì)經(jīng)過(guò)處理的文本進(jìn)行知識(shí)抽取,獲得最終情報(bào)分析結(jié)果,由此建立了集自動(dòng)收集、處理、分析于一體的軍事情報(bào)分析系統(tǒng)。
網(wǎng)絡(luò)爬蟲(chóng)(Web Crawler),即按照預(yù)先設(shè)定的規(guī)則,自動(dòng)進(jìn)行網(wǎng)絡(luò)信息的抓取,自動(dòng)采集所有其能夠訪問(wèn)到的頁(yè)面內(nèi)容[10]。數(shù)據(jù)爬取(Data Crawling)就是從種子URL(Uniform Resource Locator)開(kāi)始,通過(guò)HTTP(Hyper Text Transport Protocol)請(qǐng)求獲取頁(yè)面內(nèi)容。URL 即統(tǒng)一資源定位符,其作用就是指定“資源”的訪問(wèn)方式,例如https://www.janes.com/index.html 就是一個(gè)URL,由三部分組成:訪問(wèn)協(xié)議(https)、訪問(wèn)路徑(//www.janes.com/)、資源名稱(chēng)(index.html),可以成功訪問(wèn)簡(jiǎn)氏防務(wù)周刊,從而進(jìn)行軍事數(shù)據(jù)的爬取。
圖1:數(shù)據(jù)爬取流程
圖2:指代消解流程
圖3:最大池化與動(dòng)態(tài)多池化特征選擇
Web 開(kāi)源數(shù)據(jù)爬取流程[11]如圖1 所示,具體步驟介紹如下:
(1)選取一部分種子URL,即選定目標(biāo)爬取網(wǎng)站地址作為種子URL 列表。
(2)一方面,根據(jù)種子URL 和待采集URL 隊(duì)列信息,網(wǎng)頁(yè)采集模塊進(jìn)行相關(guān)URL 網(wǎng)頁(yè)內(nèi)容的抓取。另一方面,根據(jù)網(wǎng)頁(yè)標(biāo)題和內(nèi)容等,網(wǎng)頁(yè)去重模塊去除重復(fù)的頁(yè)面,防止重復(fù)抓取情況發(fā)生。
(3)網(wǎng)頁(yè)匹配模塊根據(jù)URL 模式,從待抓取的URL 隊(duì)列中匹配對(duì)應(yīng)的待采集URL,添加到待采集隊(duì)列,并將URL 對(duì)應(yīng)的網(wǎng)頁(yè)下載下來(lái),同時(shí)將這些URL 放進(jìn)已抓取URL 隊(duì)列,將其他未抓取的URL 放入待抓取URL 隊(duì)列,從而進(jìn)入下一個(gè)循環(huán)。
(4)對(duì)于上一步中,已經(jīng)抓取的內(nèi)容,網(wǎng)頁(yè)入庫(kù)模塊將抓取到的網(wǎng)頁(yè)內(nèi)容,有序存儲(chǔ)到本地MySQL 數(shù)據(jù)庫(kù)中。
由此經(jīng)過(guò)以上步驟的循環(huán),可抓取到目標(biāo)網(wǎng)頁(yè)中的頁(yè)面內(nèi)容。
指代(Anaphora)在語(yǔ)言表達(dá)中起著簡(jiǎn)化語(yǔ)言表述、銜接上下文信息的重要作用,是常見(jiàn)的語(yǔ)言表達(dá)現(xiàn)象[12]。在文字表達(dá)形式中,指代就是用一個(gè)代詞表示某個(gè)之前提到的語(yǔ)言單位,指代詞稱(chēng)為照應(yīng)詞,所指的對(duì)象或內(nèi)容稱(chēng)為先行詞,先行詞在照應(yīng)詞前面的情況稱(chēng)作照應(yīng)關(guān)系,先行詞在照應(yīng)詞后面的情況稱(chēng)作逆照應(yīng)關(guān)系。指代消解(Anaphora Resolution)的目的是為找出照應(yīng)詞與先行詞之詞的關(guān)系,從而找出照應(yīng)詞指代的對(duì)象或內(nèi)容[13],這種找出照應(yīng)詞的先行詞的過(guò)程叫做指代消解。
在求取結(jié)果的形式上,指代消解可以看成是一個(gè)分類(lèi)或者聚類(lèi)的過(guò)程。分類(lèi)主要是判斷不同特征表達(dá)之間是否指向同一種類(lèi)別特征, 聚類(lèi)主要是判斷一個(gè)特征表達(dá)能否加入到某類(lèi)特征的集合中。目前,指代消解大致可以分為兩類(lèi):實(shí)體指代消解(Entity Anaphora Resolution)與事件指代消解(Event Anaphora Resolution)。實(shí)體指代中先行詞和照應(yīng)詞都是客觀存在的實(shí)體,事件指代中先行詞和照應(yīng)詞是事件或事實(shí)等抽象性對(duì)象。目前指代消解的方法由很多,其中最常用的為基于有監(jiān)督的指代消解方法。如圖2 所示,基于有監(jiān)督的指代消解方法具體步驟介紹如下:
(1)輸入待消解的原始文本。
(2)對(duì)原始文本進(jìn)行預(yù)處理,并抽取出需要進(jìn)行指代消解的部分。
(3)進(jìn)行特征選擇:獲取實(shí)體表達(dá)或事件表達(dá)的特征,對(duì)每個(gè)特征賦予不同的權(quán)重構(gòu)建特征向量。
(4)進(jìn)行指代消解:首先選取部分?jǐn)?shù)據(jù)構(gòu)建訓(xùn)練集,然后通過(guò)機(jī)器學(xué)習(xí)算法對(duì)訓(xùn)練集進(jìn)行分類(lèi)或聚類(lèi),最終得到分類(lèi)模型。
(5)利用分類(lèi)模型對(duì)測(cè)試集進(jìn)行分類(lèi)或聚類(lèi),獲取文本所有的共指鏈。
經(jīng)研究發(fā)現(xiàn),卷積神經(jīng)網(wǎng)絡(luò)(Convolution Neural Network,CNN)可以有效用于處理NLP(Natural Language Processing)任務(wù)的句子內(nèi)的單詞之間的句法和語(yǔ)義等信息[14],池化(Pooling)是卷積神經(jīng)網(wǎng)絡(luò)中的一個(gè)重要的概念,用來(lái)進(jìn)行句子降采樣處理。目前,有多種不同形式的非線(xiàn)性池化函數(shù),而其中最為常見(jiàn)的是“最大池化(Max Pooling)”,其將輸入的圖像劃分為若干個(gè)矩形區(qū)域,對(duì)每個(gè)子區(qū)域輸出最大值。為了提取每個(gè)特征圖中最大值,傳統(tǒng)的CNN 采用最大池化方法,即將一個(gè)特征映射作為一個(gè)池,并且每個(gè)特征圖只得到一個(gè)最大值,對(duì)整個(gè)句子的表示應(yīng)用最大操作以捕獲最有用的信息。
圖4:系統(tǒng)主要模塊
圖5:數(shù)據(jù)爬取流程
但是,在事件提取中,一個(gè)句子可能包含兩個(gè)或多個(gè)事件,并且這些事件可能共享具有不同角色的參數(shù),常規(guī)的CNN 不適用于多個(gè)事件在同一句子中的事件提取,因此需采用動(dòng)態(tài)多池化卷積神經(jīng)網(wǎng)絡(luò)(Dynamic Multi-pooling Convolution Neural Network,DMCNN),來(lái)獲取句子每個(gè)部分的最大值,避免重要信息的丟失[15]。動(dòng)態(tài)多池化即根據(jù)參數(shù)分類(lèi)階段中的候選參數(shù)和預(yù)測(cè)觸發(fā)器將每個(gè)特征映射分成多個(gè)部分,保留每個(gè)拆分部分的最大值,而不是使用整個(gè)特征映射的一個(gè)最大值來(lái)表示句子。與傳統(tǒng)的最大池相比,動(dòng)態(tài)多池化可以在不丟失最大池化值的情況下保留更多有價(jià)值的信息。最大池化與動(dòng)態(tài)多池化特征選擇如圖3 所示。最大池化中3 個(gè)特征序列皆直接選取一個(gè)序列中的最大值Max(c1)、Max(c2)、Max(c3)作為特征,而動(dòng)態(tài)多池化中根據(jù)特征序列情況,分別選取序列中不同部分的最大值作為特征,例如特征序列1 選取Max(c11)、Max(c12)作為特征。
本文中事情報(bào)分析系統(tǒng)主要模塊有3 大部分:數(shù)據(jù)爬取模塊、文本結(jié)構(gòu)化模塊、知識(shí)抽取模塊。首先數(shù)據(jù)爬取模塊主要進(jìn)行數(shù)據(jù)爬取、數(shù)據(jù)清洗工作,獲得原始網(wǎng)頁(yè)文本;然后文本結(jié)構(gòu)化模塊對(duì)原始網(wǎng)頁(yè)文本進(jìn)行主題分類(lèi)和分句處理,得到結(jié)構(gòu)化文本;最后知識(shí)抽取模塊對(duì)結(jié)構(gòu)化文本進(jìn)行指代消解、命名實(shí)體識(shí)別、知識(shí)抽取,由此獲得了船名、事件、時(shí)間、地點(diǎn)等情報(bào)結(jié)果。系統(tǒng)主要模塊如圖4 所示,接下來(lái)將對(duì)每一模塊進(jìn)行詳細(xì)介紹。
數(shù)據(jù)爬取模塊主要分為兩大部分:數(shù)據(jù)爬取、數(shù)據(jù)清洗。
數(shù)據(jù)爬取中選取了6 個(gè)開(kāi)源軍事網(wǎng)站為數(shù)據(jù)來(lái)源網(wǎng)站,網(wǎng)站中皆包含有大量的美海軍水面艦船相關(guān)新聞,人工收集需耗費(fèi)大量的人力物力,因此可以運(yùn)用爬蟲(chóng)程序,進(jìn)行自動(dòng)化的數(shù)據(jù)爬取。來(lái)源網(wǎng)站名稱(chēng)和具體網(wǎng)址如表1 所示。
圖6:主題分類(lèi)流程
圖7:事件指代消解基本框架
數(shù)據(jù)爬取采用了BeautifulSoup 框架,以及正則匹配函數(shù)庫(kù),不同網(wǎng)站的頁(yè)面結(jié)構(gòu)雖然有所不同,但數(shù)據(jù)爬取流程大致相同,主要經(jīng)過(guò)兩大步驟:網(wǎng)頁(yè)爬取、頁(yè)面解析,即可得到原始網(wǎng)頁(yè)文本。此過(guò)程中主要解決兩個(gè)問(wèn)題:動(dòng)態(tài)頁(yè)面加載、周期爬取。一方面,Naval Technology 為動(dòng)態(tài)頁(yè)面,而 BeautifulSoup 不能獲取動(dòng)態(tài)頁(yè)面中的完整網(wǎng)頁(yè)信息,因此運(yùn)用selenium+webdriver 解決動(dòng)態(tài)頁(yè)面的動(dòng)態(tài)加載問(wèn)題。另一方面,以上6 個(gè)軍事網(wǎng)站均會(huì)定時(shí)更新新聞內(nèi)容,因此需在爬蟲(chóng)程序中設(shè)定周期爬取功能,以便能長(zhǎng)期進(jìn)行周期數(shù)據(jù)爬取,獲得最新進(jìn)展內(nèi)容。根據(jù)目標(biāo)軍事網(wǎng)站的更新頻率,Naval Technology 爬蟲(chóng)周期設(shè)定為7 天,其他網(wǎng)站爬蟲(chóng)周期為1 天。當(dāng)?shù)竭_(dá)周期時(shí)間時(shí),爬蟲(chóng)程序?qū)⒆詣?dòng)進(jìn)行數(shù)據(jù)爬取,具體爬取流程如圖5 所示。
表1:數(shù)據(jù)來(lái)源網(wǎng)站
表2:主題分類(lèi)測(cè)試結(jié)果
表3:命名實(shí)體識(shí)別測(cè)試結(jié)果
表4:知識(shí)抽取測(cè)試結(jié)果
爬取下來(lái)的數(shù)據(jù)并不能夠直接使用,需要對(duì)其進(jìn)一步清洗。數(shù)據(jù)清洗將爬取得到的雜亂數(shù)據(jù)清理為簡(jiǎn)潔有效的干凈數(shù)據(jù),節(jié)約了存儲(chǔ)空間、提升了后續(xù)處理的效率。本模塊中主要解決了兩個(gè)問(wèn)題。其中一個(gè)問(wèn)題是原始頁(yè)面含有大量的噪聲數(shù)據(jù),例如Web 標(biāo)簽、廣告信息、頁(yè)面彈窗和其他非新聞?wù)膬?nèi)容的其他數(shù)據(jù)等。因此,在對(duì)文本新聞內(nèi)容進(jìn)行數(shù)據(jù)處理之前,先過(guò)濾掉頁(yè)面廣告、彈出窗口等不相關(guān)信息,將Web 頁(yè)面轉(zhuǎn)化成為不含噪音信息的統(tǒng)一的文本數(shù)據(jù)。另一個(gè)問(wèn)題是頁(yè)面編碼不一致,如今全球使用計(jì)算機(jī)的范圍十分廣泛,計(jì)算機(jī)發(fā)展時(shí)間也十分久遠(yuǎn),導(dǎo)致計(jì)算機(jī)存儲(chǔ)數(shù)據(jù)采用的編碼格式有許多種類(lèi),例如ASCII、UTF-8、GBK 等等,在對(duì)文本進(jìn)行去噪的同時(shí),將所有文本的編碼格式統(tǒng)一轉(zhuǎn)換為UTF-8 格式。
本模塊選用基于NLP 的英文文本結(jié)構(gòu)化技術(shù),對(duì)上一模塊獲得的原始網(wǎng)頁(yè)文本進(jìn)行文本結(jié)構(gòu)化(Text Structuration)處理,以獲得結(jié)構(gòu)化文本。主要思路是:首先對(duì)獲取的原始網(wǎng)頁(yè)文本進(jìn)行主題分類(lèi),獲得主題為美海軍的目標(biāo)文本;然后利用NLP 的工具包,對(duì)獲得的文本進(jìn)行分句處理,得到結(jié)構(gòu)化文本。
在爬取的網(wǎng)站中,JANES(簡(jiǎn)氏防務(wù)周刊網(wǎng)站)、NAVAL technology(海軍技術(shù)雜志網(wǎng)站)的內(nèi)容為世界各國(guó)軍事信息,Defense News(美國(guó)防務(wù)新聞網(wǎng))、Breaking Defense(國(guó)防快報(bào)網(wǎng))含有美國(guó)海陸空等軍事信息。因此,在爬取到原始文本后,需要對(duì)其進(jìn)行主題分類(lèi),以求獲得主題為美海軍的新聞文本。
一般,根據(jù)預(yù)定義的類(lèi)別不同,主題分類(lèi)可以分為兩種:兩類(lèi)分類(lèi)和多類(lèi)分類(lèi)。本模塊中為多類(lèi)分類(lèi),即將所有原始文本分“美海軍”、“美陸軍”、“美空軍”、“美火箭軍”、“他國(guó)軍隊(duì)”“軍事評(píng)論”、“其他”。進(jìn)行主題分類(lèi)后,獲得僅和美國(guó)海軍相關(guān)的原始網(wǎng)頁(yè)文本。
本模塊采用有監(jiān)督分類(lèi)方法對(duì)獲取的原始文本進(jìn)行主題分類(lèi),主題分類(lèi)的一般流程如圖6 所示。
首先按照9:1 的比例,將上一模塊獲得的原始文本隨機(jī)劃分為訓(xùn)練集和測(cè)試集;然后對(duì)測(cè)試集進(jìn)行預(yù)處理以及表達(dá)為向量形式,接著進(jìn)行特征選擇,建立分類(lèi)模型,獲取分類(lèi)標(biāo)簽;最后對(duì)測(cè)試集進(jìn)行與訓(xùn)練集一致操作獲得特征值后,利用訓(xùn)練所得標(biāo)簽進(jìn)行分類(lèi)處理,獲得所有分類(lèi)結(jié)果。最終,獲得了主題為美海軍的原始網(wǎng)頁(yè)文本。
經(jīng)過(guò)主題分類(lèi)的網(wǎng)頁(yè)文本,需要提取出新聞中有用的信息。因此對(duì)新聞文本進(jìn)行了分句處理,將文章切分成以句子為單位的文本,以句子為單位進(jìn)行分析,可以提高后續(xù)提取效率與增強(qiáng)提取效果。
本模塊采用機(jī)器學(xué)習(xí)和決策樹(shù)相結(jié)合的方法來(lái)進(jìn)行分句處理。機(jī)器學(xué)習(xí)方法主要是利用現(xiàn)有的數(shù)據(jù)處理的庫(kù),例如自然語(yǔ)言處理中nltk 的sent_tokenize 庫(kù),有較為成熟的分句程序,通過(guò)調(diào)用可以直接實(shí)現(xiàn)分句。決策樹(shù)是一個(gè)分類(lèi)模型,代表的是需分類(lèi)對(duì)象自身所具備的特性與其所屬類(lèi)別之間的一種對(duì)應(yīng)關(guān)系,其本質(zhì)就是一系列的if-then-else 語(yǔ)句,其關(guān)鍵之處在于如何進(jìn)行選擇特征,即如何制定if 語(yǔ)句里面的條件語(yǔ)句。決策樹(shù)方法分句思路即逐一檢查是否為分句點(diǎn):首先檢查該詞之后是否有很多空白行;其次檢查最后一個(gè)標(biāo)點(diǎn)是否是:? !等;然后檢查最后一個(gè)標(biāo)點(diǎn)是否是 . ;最后檢查該詞是不是“etc”或其他縮寫(xiě)詞,利用這些標(biāo)點(diǎn)符號(hào)進(jìn)行分句處理。由此得到結(jié)構(gòu)化文本。
知識(shí)抽?。↘nowledge Extraction)就是從描述目標(biāo)知識(shí)的文本中抽取出所關(guān)注的知識(shí)信息并將其進(jìn)行結(jié)構(gòu)化表示。本模塊中需要依次抽取出艦船名稱(chēng)、活動(dòng)事件、活動(dòng)時(shí)間和活動(dòng)海域等信息,以求獲得一個(gè)完整軍事活動(dòng)的描述:某一艘艦船(在某個(gè)時(shí)間)(在某一片海域)進(jìn)行了某種活動(dòng)事件 。
本模塊中首先對(duì)上一模塊獲得的結(jié)構(gòu)化文本采用基于有監(jiān)督的機(jī)器學(xué)習(xí)方法進(jìn)行事件指代消解處理;然后采用BiLSTM+CRF 網(wǎng)絡(luò)結(jié)構(gòu)模型進(jìn)行命名實(shí)體識(shí)別;最后利用基于動(dòng)態(tài)多池化卷積神經(jīng)網(wǎng)絡(luò)進(jìn)行知識(shí)抽取,由此得到最終情報(bào)分析結(jié)果。
指代消解主要分為兩個(gè)階段:訓(xùn)練階段、測(cè)試階段。在訓(xùn)練階段,首先對(duì)訓(xùn)練集進(jìn)行預(yù)處理后抽取出需要進(jìn)行指代消解的事件部分及其對(duì)應(yīng)的上下文信息;然后,一方面運(yùn)用事件最小描述特征抽取獲得事件自身特征, 另一方面將事件進(jìn)行配對(duì), 運(yùn)用事件關(guān)系描述特征抽取獲得事件間關(guān)系特征;最后對(duì)事件自身特征和事件間關(guān)系特征分別進(jìn)行向量化處理, 并利用神經(jīng)網(wǎng)絡(luò)進(jìn)行分類(lèi)訓(xùn)練模型的構(gòu)建,由此訓(xùn)練階段完成。在測(cè)試階段,對(duì)測(cè)試集進(jìn)行與訓(xùn)練環(huán)節(jié)一致處理,在分類(lèi)訓(xùn)練模型的輔助下,借助神經(jīng)網(wǎng)絡(luò)進(jìn)行事件分類(lèi)。事件指代消解基本框架如圖7 所示。
圖8:命名實(shí)體識(shí)別結(jié)構(gòu)圖
圖9:知識(shí)抽取結(jié)構(gòu)圖
命名實(shí)體識(shí)別中,BiLSTM+CRF 結(jié)構(gòu)分為四層,具體結(jié)構(gòu)圖如圖8 所示。
(1)輸入層:通過(guò)詞向量訓(xùn)練獲取每個(gè)單詞的特征表示,作為特征序列輸入神經(jīng)網(wǎng)絡(luò),例如圖8 將“Nimitz was depolyed on the Black Sea.”每個(gè)單詞的詞向量序列通過(guò)Word Dict.Emb.match 作為輸入。
(2)隱藏層:采用雙向LSTM 網(wǎng)絡(luò),通過(guò)前向傳播與后向傳播進(jìn)行兩次操作,前向傳播的LSTM 網(wǎng)絡(luò)可以有助于獲取上文信息,后向傳播的LSTM 網(wǎng)絡(luò)則用于獲取下文信息,例如獲取“Nimitz”前后文信息。雙向LSTM 相較于單向網(wǎng)絡(luò),可以更好地表達(dá)某個(gè)詞前后所有信息,更全面的獲取上下文信息。
(3)輸出層:將隱藏層前后向的LSTM 獲取的特征信息進(jìn)行拼接,例如將進(jìn)行拼接獲得新的特征信息。
(4)CRF 層: CRF 能夠利用轉(zhuǎn)移進(jìn)行拼接獲得新的特征信息。
(4)CRF 層:CRF 能夠利用轉(zhuǎn)移特征考慮到標(biāo)簽之間的順序性,獲得全局最優(yōu)的輸出序列。最終將“Nimitz”標(biāo)記為“B-ShipName”, 將“Black”標(biāo)記為“B-place”, 將“Sea”標(biāo)記為“I-place”,即識(shí)別出了船名、地點(diǎn)實(shí)體。
知識(shí)抽取部分分為兩個(gè)階段的多分類(lèi)任務(wù)。第一階段為觸發(fā)詞分類(lèi),利用DMCNN 模型對(duì)句子中的每個(gè)單詞進(jìn)行識(shí)別,并判斷是否為觸發(fā)詞。若句子中包含了觸發(fā)詞,則進(jìn)行第二階段,即論元分類(lèi),該階段使用類(lèi)DMCNN 模型,對(duì)句中除觸發(fā)詞之外所有論元進(jìn)行判別,識(shí)別與該觸發(fā)詞存在關(guān)系的論元以及該論元所扮演的論元角色。知識(shí)抽取模型結(jié)構(gòu)主要包括四部分,具體結(jié)構(gòu)如圖9 所示。
(1)詞嵌入學(xué)習(xí):通過(guò)無(wú)監(jiān)督詞向量訓(xùn)練獲得每個(gè)單詞的向量表示。
(2)詞匯級(jí)別特征學(xué)習(xí):輸入詞匯級(jí)特征,經(jīng)過(guò)命名識(shí)別處理,得到詞匯級(jí)特征。
(3)句子級(jí)別特征學(xué)習(xí):輸入句子級(jí)特征,經(jīng)過(guò)最大池化卷積神經(jīng)網(wǎng)絡(luò)計(jì)算,得到句子語(yǔ)義級(jí)別的特征。
(4)分類(lèi)輸出:計(jì)算論元及論元角色得分,得到知識(shí)抽取結(jié)果。
對(duì)于系統(tǒng)的功能測(cè)試主要看系統(tǒng)主要模塊是否實(shí)現(xiàn)設(shè)定功能。在系統(tǒng)搭建成功以后,對(duì)每一模塊進(jìn)行了功能測(cè)試,主要為進(jìn)行抽取測(cè)試,計(jì)算精確率(Precision)、召回率(Recall)、F1 值,由此來(lái)判斷功能是否實(shí)現(xiàn)。
(1)數(shù)據(jù)爬取模塊中,六個(gè)網(wǎng)站皆實(shí)現(xiàn)了周期為1 天或7 天的周期性數(shù)據(jù)爬取。在為期14 天的時(shí)間內(nèi),分別進(jìn)行了14 次或2次的數(shù)據(jù)爬取,共爬取數(shù)據(jù)532MB,共計(jì)181590 條,說(shuō)明周期數(shù)據(jù)爬取功能實(shí)現(xiàn)。爬取數(shù)據(jù)以.txt 文本的形式,存入爬蟲(chóng)程序根據(jù)爬取日期和數(shù)據(jù)來(lái)源網(wǎng)站分別建立的文件夾中。接下來(lái)用爬取的數(shù)據(jù)進(jìn)行其他模塊功能的測(cè)試。
(2)文本結(jié)構(gòu)化模塊中,隨機(jī)選取部分?jǐn)?shù)據(jù)進(jìn)行主題分類(lèi)結(jié)果檢測(cè),預(yù)先設(shè)定的七類(lèi)分類(lèi)情況具體測(cè)試結(jié)果如表2 所示。
由表2 可以看出,模型在各個(gè)類(lèi)別上的分類(lèi)測(cè)試平均F1 值達(dá)到了91.8,且美海軍主題數(shù)據(jù)分類(lèi)的F1 值達(dá)到了94.9,說(shuō)明主題分類(lèi)功能基本實(shí)現(xiàn),能夠滿(mǎn)足后續(xù)模塊的使用需求。
(3)知識(shí)抽取模塊中,隨機(jī)選取部分?jǐn)?shù)據(jù)進(jìn)行命名實(shí)體識(shí)別結(jié)果檢測(cè),對(duì)BiLSTM+CRF 的超參數(shù)(隱藏層大小、LSTM 層數(shù)、batch size)進(jìn)行調(diào)試,分別選取不同參數(shù)值做對(duì)比測(cè)試,具體測(cè)試結(jié)果如表3 所示。
由表3 可以看出,最終選取隱藏層大小為300,LSTM 層數(shù)為3,batch size 為100 時(shí),可以獲取較好的命名實(shí)體識(shí)別效果。最終經(jīng)過(guò)測(cè)試,實(shí)體命名識(shí)別的結(jié)果為:精確率93.5%、召回率94.9%、F1值94.2%,說(shuō)明命名實(shí)體識(shí)別功能基本實(shí)現(xiàn)。
對(duì)于需要抽取的四個(gè)目標(biāo)知識(shí),分別在數(shù)據(jù)集中隨機(jī)抽取部分?jǐn)?shù)據(jù)作為測(cè)試集,進(jìn)行了知識(shí)抽取效果測(cè)試,具體測(cè)試結(jié)果如表4所示。
其中,船名、事件、時(shí)間、地點(diǎn)的F1 值分別為89.7%、93.3%、91.7%、89.2%,說(shuō)明知識(shí)抽取功能基本實(shí)現(xiàn),最終生成了軍事情報(bào)。
隨著大數(shù)據(jù)時(shí)代的到來(lái),軍事情報(bào)分析面臨“數(shù)據(jù)超載”和“數(shù)據(jù)源結(jié)構(gòu)復(fù)雜化”兩大問(wèn)題,利用先進(jìn)的人工智能技術(shù)實(shí)現(xiàn)軍事情報(bào)的自動(dòng)分析已成為必然趨勢(shì)。本文首先利用基于BeautifulSoup框架的網(wǎng)絡(luò)爬蟲(chóng)技術(shù)進(jìn)行數(shù)據(jù)爬取,然后利用NLP 技術(shù)進(jìn)行文本結(jié)構(gòu)化處理,最后利用NLP 技術(shù)和卷積神經(jīng)網(wǎng)絡(luò)等技術(shù)進(jìn)行知識(shí)抽取。經(jīng)過(guò)測(cè)試,最終知識(shí)抽取中船名、事件、時(shí)間、地點(diǎn)的F1值分別為89.7%、93.3%、91.7%、89.2%,獲得了較為可靠的最終情報(bào)。由此建立了一個(gè)集自動(dòng)收集、處理、分析于一體的軍事情報(bào)分析系統(tǒng),對(duì)美海軍水面艦船的部分相關(guān)軍事活動(dòng)進(jìn)行了分析。這不僅可以提高對(duì)美海軍水面艦船相關(guān)活動(dòng)情報(bào)研究的分析效率,為研究相關(guān)軍事情報(bào)提供了參考依據(jù),也可以為之后建立相關(guān)情報(bào)系統(tǒng)提供一種參考方法,供之后的學(xué)者進(jìn)行相關(guān)研究。
但本軍事系統(tǒng)依然還有較多局限,例如:研究對(duì)象和軍事活動(dòng)內(nèi)容單薄、知識(shí)抽取受限于在同一句中進(jìn)行提取等。因此可以從以下兩方面進(jìn)行后續(xù)研究:
(1)將研究對(duì)象從部分水面艦船擴(kuò)大至全部現(xiàn)役的293 艘,將部分全壽期采辦事件列表擴(kuò)大,增加更多軍事活動(dòng),使軍事情報(bào)分析系統(tǒng)研究范圍更加廣泛。
(2)對(duì)于多個(gè)句子共同描述同一事件的情況,可以利用依存語(yǔ)義分析或其他方法,從多個(gè)句子中進(jìn)行同一事件的知識(shí)抽取。