方 芳,王 亞,王 石,符建輝,曹存根
(1. 中國科學(xué)院 計算技術(shù)研究所 智能信息處理重點實驗室,北京 100190;2. 中國科學(xué)院大學(xué),北京100049)
隨著網(wǎng)絡(luò)技術(shù)的迅猛發(fā)展,網(wǎng)絡(luò)攻擊事件頻頻發(fā)生的現(xiàn)象越來越受到社會和政府的關(guān)注。及時發(fā)現(xiàn)和預(yù)防網(wǎng)絡(luò)攻擊事件變得越來越重要。網(wǎng)絡(luò)攻擊事件的描述文本中蘊含了大量的有用知識,為了更好地利用已有的文本數(shù)據(jù),需要對文本進行分析,將文本轉(zhuǎn)化為結(jié)構(gòu)化知識。
文本知識獲取(knowledge acquisition from text,KAT)是指自動將自然語言描述的文本知識變?yōu)橛嬎銠C可理解的形式,它是人工智能的重要研究內(nèi)容。眾所周知,知識獲取的過程復(fù)雜且困難,國內(nèi)外的研究者從不同層面和不同角度進行了探索與嘗試[1]。例如,Cyc依靠知識工程師來手工輸入常識知識來構(gòu)建知識庫[2];OMCS通過網(wǎng)絡(luò)用戶給出常識知識建立知識庫[3];陸汝鈐研究構(gòu)建了一個面向Agent的大規(guī)模常識知識庫[4];彭會良提出了一種挖掘相關(guān)聯(lián)事件的知識庫建立方法[5]。
針對文本研究,目前大多采用關(guān)鍵字和機器學(xué)習(xí)的方法[6-7],準(zhǔn)確率并不高,因此本文提出基于語義文法分析的方法對文本內(nèi)容進行語義分析和知識抽取。課題組建立了一個名為語義分類和描述框架的語義知識庫(framework of semantic taxonomy and description,F(xiàn)STD)[8],該語義庫首先在魯川提出的事件分類基礎(chǔ)上,進一步補充細化事件的分類和事件涉及的周邊角色,然后參考FrameNet[9]思想構(gòu)建描述語義類的框架。
為了對網(wǎng)絡(luò)攻擊文本進行知識抽取,文本參考語義分類和描述框架的設(shè)計思想設(shè)計網(wǎng)絡(luò)攻擊語義庫。將語義庫應(yīng)用于網(wǎng)絡(luò)攻擊事件的描述文本中,對網(wǎng)絡(luò)攻擊知識進行抽取。本文主要采用解析語義分類和描述框架中語義文法的方法,使用語義文法相較于常用的統(tǒng)計方法主要優(yōu)點包括:
(1) 語義文法在關(guān)鍵或相關(guān)信息數(shù)據(jù)稀疏的情況下可以很好地抽取知識。
(2) 語義文法是一種可以精確獲取信息的方法,不需要對信息進行統(tǒng)計,可以避免信息受距離的影響。
(3) 從搭配的角度看,有些詞匯之間需要搭配使用,而統(tǒng)計的方法會受到冗余信息的影響。
本文針對網(wǎng)絡(luò)攻擊事件知識庫進行研究和開發(fā),根據(jù)語義分類和描述框架,通過文法的解析獲取相關(guān)知識。主要研究內(nèi)容包括: 首先建立以語義分類和描述框架為基礎(chǔ)的網(wǎng)絡(luò)攻擊語義庫,而在建立語義庫的過程中,發(fā)現(xiàn)在網(wǎng)絡(luò)攻擊文本中,出現(xiàn)大量遭受類的語句,而遭受類的語句較少人進行研究,因此就此類問題進行分析并提出相應(yīng)的解決方式;然后,將網(wǎng)絡(luò)攻擊語義庫應(yīng)用在網(wǎng)絡(luò)攻擊事件描述文本的知識抽取中并建立一個網(wǎng)絡(luò)攻擊知識庫;最后對應(yīng)用結(jié)果進行實驗和分析。
對于文本信息和知識的處理,本文采用語義分類和描述框架,并使用改進的魯棒Earley解析器[10]解析得到。語義分類和描述框架是在參考魯川《知識工程語言學(xué)》[11]一書,以及在FrameNet的基礎(chǔ)上改進和擴展得到的。
語義分類和描述框架(FSTD)參考FrameNet的思想,對中文詞匯進行分析,將詞匯看作一個事件。對事件進行分類,是理解和研究事件的基礎(chǔ),且可以幫助更深入地認識事件,并為常識和公理的提取提供可靠的保證。
魯川已經(jīng)對事件進行簡單的分類[11],F(xiàn)STD在此基礎(chǔ)上進行擴充和改進。根據(jù)事件的性質(zhì)主要分為兩大類,分別是狀態(tài)和事件,狀態(tài)和事件的分界點依靠以下規(guī)則來判定。
(1) 事件會帶來狀態(tài)的改變,即事件的發(fā)生一定會使事物從一個狀態(tài)變成另一個狀態(tài)。
(2) 任何事件的發(fā)生都會有一個前提和后果,而前提和后果一定是狀態(tài)。
(3) 事件是剎那間發(fā)生的,而狀態(tài)是持續(xù)性的,事物或事件之間的關(guān)系也是一個狀態(tài)。
對找到的大量動詞和形容詞,據(jù)語義特征進行細分,還可以根據(jù)常識來區(qū)分。如果二個事件的前提和后果是相似甚至是一樣的,則兩者屬于一類或以近義詞的形式存在,如果兩者的前提和后果有包含關(guān)系,則兩個可能存在上下位的關(guān)系。
FrameNet[12]以框架語義學(xué)為理論基礎(chǔ),將語義相同或相近的詞語放在同一個框架中進行描述,并總結(jié)出這些詞語共有的框架元素。
FSTD參考FrameNet的框架思想給出了一個語義類的結(jié)構(gòu)。描述框架由表1所示的槽組成。
表1 描述框架簡介
以上定義的描述框架是一個事件的標(biāo)準(zhǔn)框架,而因為狀態(tài)沒有造成任何其他事物的變化,所以不存在前提槽和后果槽。圖1給出“組織類”的簡單描述框架。
defcategory 組織類:{近義:負責(zé)定義:安排分散的人或事物,使具有一定系統(tǒng)性或整體性。 文法: <組織類語句>::=<施事:認知主體><組織詞類><受事:實體> |<施事:認知主體><接續(xù)位事詞類><位事:地區(qū)|場所|建筑物><組織詞類><受事:實體> |<受事:實體><被介詞詞類><施事:認知主體><組織詞類> <組織詞類>::=組織謂詞:組織(施事,受事)@位事=<位事>例句:他組織了這次聯(lián)歡晚會。前提:受事不具有系統(tǒng)性或整體性。 受事遵循施事的指令。 施事有組織受事的權(quán)力。后果:受事具有系統(tǒng)性或整體性。}圖1 組織類的描述框架
描述框架中一共包含了7個槽,其中有兩個槽的設(shè)計是設(shè)計網(wǎng)絡(luò)攻擊文本知識庫的核心,分別是文法設(shè)計和謂詞設(shè)計。
1.3.1 文法設(shè)計
文法設(shè)計主要是設(shè)計事件的語言表達方式,根據(jù)例句的句型和結(jié)構(gòu)來編寫文法。根據(jù)魯川的句模[13-14],引入了周邊角色這一概念,周邊角色是帶有語義信息的非終結(jié)符的表示,也稱為事元,其中包括有施事、當(dāng)事、受事、客事、成事、致事、向事、用事、屬事、意圖、時間、值事和屬性等32個事元。
事元在基本文法的基礎(chǔ)上加入了語義信息,使得每個非終結(jié)符帶有了語義。例如,施事一定是有思想的認知主體,因此在定義事元的同時也要將其類別形式寫出。例如,句子“哥哥(當(dāng)事)收到 一封信(客事)?!睂懗烧Z義文法的形式是“<當(dāng)事: 認知主體><收到詞類><客事: 實體>”。
1.3.2 謂詞設(shè)計
謂詞是對事件的邏輯描述,即對語句中的結(jié)構(gòu)進行表示,同時顯示出事元之間的關(guān)系。通常謂詞的定義方式是用動詞本身來表示,并根據(jù)句子文法來放置事元的位置,也可以根據(jù)想提取的關(guān)鍵內(nèi)容設(shè)計謂詞。例如,“收到類語句”,中心詞為<收到詞類>,因此謂詞的表示就可以表示為“收到(當(dāng)事,客事)”。謂詞的表示還可以加入附加部分,起到補充說明的作用。例如,時間、位置、物量等不在謂詞中體現(xiàn)的事元,可以在“@”中進行補充。
網(wǎng)絡(luò)攻擊語義類中的謂詞根據(jù)攻擊模型來設(shè)計,從而將事元與模型中的內(nèi)容相對應(yīng)。
雖然語義分類和描述框架是一套完整的標(biāo)準(zhǔn),但是對于不同的類,可能存在不同的處理方式及獨特的設(shè)計。在網(wǎng)絡(luò)攻擊事件文本中有很多句子是遭受句,而當(dāng)前對遭受句的分析研究較少且缺乏對遭受語義類的設(shè)計,因此,本文形成一套針對遭受句的語義類設(shè)計。
遭受句是表示被動意義的一類語句,而被動意義語句在現(xiàn)代漢語中一共可以分為三種:被字句、無標(biāo)志受事主語句和遭受句[15]。被字句是包含“被”的被動句,基本句型為:主語+被+[施事]+謂語動詞(“[ ]”表示可以省略);無標(biāo)志受事主語句的謂語動詞本身表達的就是被動意義,其基本句型為:主語+謂語動詞;遭受句是由表示遭受意義的動詞構(gòu)成的被動意義的句子,基本句型為:主語+遭受類動詞+賓語。
遭受語義類是指主體通過各種途徑非可控地(即非自愿地、非自主地)遭遇或得失客體(獲得冠軍、獲獎、賺錢等),主體發(fā)生變化但不改變客事,行動指向是主體自身。這其中包含了三個意思[16]:一是強調(diào)了主體的變化;二是主體的變化不在主體的控制范圍內(nèi);三是主體遇到事實或情況的途徑是多種多樣的。
2.1.1 遭受類動詞特點
遭受類動詞包括“挨、遭受、面臨、遇到、收到、患(他患了風(fēng)濕病) 、感染、著(那根木頭著了水)”等詞[17]。遭受類動詞在一些情況中可以用“被”字替換,但“被”只是一個虛詞,是一個語法標(biāo)志,而遭受類動詞在有些情況下是一個實詞,具有自己的意義,這時并不能用“被”替換。遭受類動詞與“被”的不同點主要包括以下幾點。
(1) 遭受類動詞可以搭配“著、了、過”等助詞;
(2) 遭受類動詞后面可以搭配量詞、動詞、形容詞或者它們組成的動賓結(jié)構(gòu),雖然“被”有時也可搭配賓語,但是此結(jié)構(gòu)不能單獨做謂語;
(3) 遭受類動詞可以搭配補語。
遭受類語句中的主語是隱含的受事,因此遭受類動詞有被動標(biāo)記的作用,遭受類動詞經(jīng)常搭配動詞做賓語(該動詞為了與遭受類動詞區(qū)分,稱為賓語動詞),而該動詞語義指向整個句子的主語。這時遭受類動詞與“被”存在共同點,且互換不會影響整個句子。而當(dāng)遭受類動詞在強調(diào)“接受”意義并且賓語不能作為實際謂語時,不能用“被”替換。
2.1.2 遭受句特點
遭受句表被動[18],施事一般出現(xiàn)在遭受類動詞和賓語動詞之間,而施事和賓語動詞之間可以包含助動詞“的”。遭受句的情感色彩大多由賓語動詞決定。
如果遭受句的賓語部分除了賓語動詞還包含名詞,則名詞大多出現(xiàn)在施事部分,可以是具體名詞,也可以是抽象名詞,它們不與遭受類動詞構(gòu)成直接成分,而是與賓語動詞構(gòu)成直接成分。當(dāng)遭受類動詞后的賓語只是名詞或形容詞時,遭受類動詞不能被虛化。
語義分類和描述框架以語義為基準(zhǔn),遭受語義類的設(shè)計參考語義以及2.1節(jié)中提到的遭受類動詞和遭受句的特點,本文首次設(shè)計了獨有的遭受語義類。
遭受句中遭受動詞后跟的賓語可以分為兩個大類,一類為名詞、形容詞,另一類為動詞。遭受詞類后搭配的詞語混亂而復(fù)雜,因此將所有的搭配放入遭受類語義類中并不準(zhǔn)確,加之搭配動詞時,整個句子的中心謂詞是賓語動詞而不是遭受類動詞。因而,將遭受類語句分成兩種處理方式,一種放入遭受語義類中進行設(shè)計和描述;另一種則是以賓語動詞為主,在該動詞的語義類中加入相關(guān)的遭受句文法。
2.2.1 遭受句搭配名詞、形容詞
當(dāng)遭受類動詞搭配名詞或形容詞時,遭受類動詞本身的含義較強,不能簡單地虛化為“被”,雖然整句有被動的意思,但是卻不能單純地當(dāng)作被動句。該種情況屬于遭受類語義類。例如:
例1奧本海默患了肝炎。
該國50年來遭受最嚴(yán)重的災(zāi)難。
2.2.2 遭受句搭配動詞
遭受句搭配動詞時,情況比搭配名詞和形容詞要更復(fù)雜,基本句型為“<主語><遭受類動詞>[<修飾部分>]<動詞>”,根據(jù)不同的情況使用不同的處理方式,具體的情況分為如下3種。
(1) 有些詞帶有遭受意義,但會根據(jù)主語對象的不同而帶有不同的含義。
例如,“感染”,當(dāng)句型為“<認知主體><感染><疾病|細菌|病毒>”時,整句表達的意思是“認知主體不情愿、非可控地遭遇了病痛和病菌”,屬于遭受類。當(dāng)句型為“<細菌|病毒><感染><認知主體>”時,句子中“細菌或病毒”是一種主動的形式,這時“感染”屬于致變語義類。
(2) 當(dāng)動詞沒有修飾成分時,句子基本可以直接修改成被動句,不放入遭受語義類。
當(dāng)遭受類動詞后的賓語是單獨的動詞時,遭受類動詞進行了虛化,同時賓語動詞可以變形后在句中直接作謂語而不影響句子的意思。這時不放入遭受語義類,只需在賓語動詞的語義類中加入遭受句的文法即可。例如:
例2失地農(nóng)民受到剝削。
隨著市場與消費者的不斷革新,以及女性在社會文化中扮演著越來越重要的角色。 百達翡麗締造出首款女式世界時間腕表——Ref.7130,采用中心帶手工雕飾紋的藍灰色表盤。24小時城市圓盤以及閃亮的孔雀藍鱷魚皮表帶,在鉆石的襯托下綻放優(yōu)雅色調(diào)。將典雅高貴的品質(zhì)與嚴(yán)苛的工藝美學(xué)演繹的淋漓盡致。
韓文創(chuàng)制以來長期遭到抵制。
(3) 當(dāng)搭配的動詞有修飾成分時,根據(jù)修飾成分的不同會得到兩種結(jié)果,一種放入遭受語義類,一種則直接添加文法。
① 直接添加文法。該類情況遭受動詞與“被”可以經(jīng)過變形替換,且句子意思不變,與(2)類似,只需添加文法即可,具體情況如表2所示。而表中的修飾成分還可以組合使用,效果與單獨使用相同。
② 放入遭受語義類。句子主語并不是賓語動詞的受事或客事,此時遭受類動詞更傾向于作為實詞存在,這時放入遭受語義類中。如“獲得_免疫”,主語是免疫動作的發(fā)出者,“免疫”與“免疫力”更相似,屬于遭受語義類。
表2 修飾成分與例句
通過2.2節(jié)已經(jīng)給出判別是否屬于遭受語義類的方式,下面根據(jù)屬于遭受語義類中的詞語來進行整個遭受語義類的設(shè)計。
2.3.1 遭受語義類分類設(shè)計
根據(jù)遭受語義類的定義和分析,遭受語義類主
因為遭受語義類包含情感色彩,首先按情感色彩進行分類,分為如意、不如意和中性,因為情感色彩主要由搭配的詞類決定,只看遭受類動詞則不存在情感色彩,因此再加入一個不區(qū)分類。最后分類如下。
(1) 主體遭受有益事件或結(jié)果
因為遭受類動詞中有“得到”一個動詞,該動詞有獲得的意思,根據(jù)物品的性質(zhì),可以分為真實或抽象。另外“遇到自己希望和期望的事件和結(jié)果”中搭配的是事件或結(jié)果類的客體。還存在一類強調(diào)“主體在事業(yè)中受到幫助”。除此之外還包括其他幾個類別,“得到”的分類如表3所示,其中表格中的“詞類例子”是指在當(dāng)前分類下,與遭受類動詞搭配的詞語舉例。
表3 “主體遭受有益事件或結(jié)果”分類結(jié)果
(2) 主體遭受不愿接受的局面
遭受類動詞搭配的詞中包括很多不如意的詞,主要分為5類。
① “主體遭受侵害”強調(diào)了主體遭受了人為或非人為的侵害,使自身造成了損失,根據(jù)侵害的來源和性質(zhì),繼續(xù)分為“自然侵害”、“人為侵害”以及“綜合侵害”。
② “認知主體處于不愿面對的感受”重點強調(diào)主體面對由自己心理產(chǎn)生的感覺和情緒。
③ “認知主體遇到不愿遇到的有生命客體”強調(diào)認知主體碰到了有生命的,但自己卻不愿意遇見的客體,可以是人,也可以是可怕的動物等。
④ “主體遇到不愿接受的處境”指主體所處的境地很不利,因為情況很多,所以需要繼續(xù)進行細分。
⑤ 最后一類指主體自己做的事造成了自己也不愿意接受的結(jié)果。部分分類結(jié)果如表4所示,其中詞類例子與表3定義一致。
(3) 主體遭受中性事件或結(jié)果
除去如意和不如意的詞,剩下的是情感色彩并不明顯的中性詞類,因此劃分為一類“主體遭受中性事件或結(jié)果”。包括的詞類有“情況”“形勢”“命運”等。
(4) 綜合不區(qū)分
有些遭受類動詞如果不看搭配詞,則不存在情感色彩,形成綜合不區(qū)分類。主要包括“得到類”“遭受類”“面臨類”和“遭遇類”。
2.3.2 遭受語義類文法設(shè)計
文法設(shè)計的主要工作是完成事件的語言表達,根據(jù)例句的句型和結(jié)構(gòu)來編寫文法。主要流程如下:
表4 “主體遭受不愿接受的局面”分類結(jié)果
1) 選擇例句。對每一個詞類,選擇不同的例句來進行文法的編寫,并盡量選擇不同句型。
2) 根據(jù)例句編寫文法。首先根據(jù)動詞進行簡單的文法編寫,即以動詞為中心,留出事元的位置,待后期設(shè)計事元。例如:
例3奧本/n 海默/n 患/v 了/u 肝炎/n
奧本海默<患詞類>[<著了詞類>]肝炎
3) 設(shè)計事元。對事元進行設(shè)計,首先根據(jù)事元在句子位置的特點排除不符合的事元,再從剩下的事元中選擇合適的補在文法中。繼續(xù)以上句為例。
例4奧本/n 海默/n 患/v 了/u 肝炎/n
<當(dāng)事:認知主體|群體><患詞類>[<著了詞類>][<值事:內(nèi)容>][<的之詞類>]<客事:疾病|病>
4) 聯(lián)想擴展文法。為了文法的全面,還要對其進行聯(lián)想和擴展,可以根據(jù)遭受類的介紹,擴展添加修飾部分。
文法設(shè)計還要注意一些事項: ①為了避免文法的冗余,要注意對可選的使用,設(shè)計一個可選“[ ]”可以減少一句文法;②可選的使用不能破壞句子的完整性。
網(wǎng)絡(luò)安全知識庫系統(tǒng)是語義分類和描述框架在“網(wǎng)絡(luò)安全”領(lǐng)域的應(yīng)用。
網(wǎng)絡(luò)安全知識庫系統(tǒng)主要對網(wǎng)絡(luò)攻擊事件描述文本進行語義分析,從中抽取結(jié)構(gòu)化知識。
該系統(tǒng)主要采用語義文法的方法,對讀入的文本進行語義解析,并提取結(jié)構(gòu)化知識存入數(shù)據(jù)庫中;而后對數(shù)據(jù)庫中的數(shù)據(jù)進行查詢、統(tǒng)計、分析等操作。
面向網(wǎng)絡(luò)安全領(lǐng)域,建立網(wǎng)絡(luò)攻擊語義庫要符合領(lǐng)域需求,通過考察網(wǎng)絡(luò)安全事件的文本以及領(lǐng)域的關(guān)注信息,建立如表5所示的網(wǎng)絡(luò)攻擊模型。
一個簡單的文本和預(yù)計得到的結(jié)構(gòu)化知識例子如圖2所示。
表5 網(wǎng)絡(luò)攻擊模型
內(nèi)容:黑客組織“匿名者”在“綠色權(quán)益行動”中對XX官網(wǎng)實施DoS攻擊,旨在抗議YY海軍在ZZ市修建“WW系統(tǒng)”。結(jié)果:攻擊者:黑客組織“匿名者” 攻擊目標(biāo):XX官網(wǎng)攻擊類型:DoS攻擊攻擊意圖:旨在抗議YY海軍在ZZ市修建“WW系統(tǒng)”圖2 結(jié)構(gòu)化知識
為了完成網(wǎng)絡(luò)安全知識的抽取,需要設(shè)計網(wǎng)絡(luò)安全語義類,這其中包括網(wǎng)絡(luò)安全領(lǐng)域文法的設(shè)計以及根據(jù)攻擊模型對謂詞的設(shè)計。
3.2.1 文法設(shè)計
1. 事元確認
事元的種類繁多,會出現(xiàn)事元的劃分存在歧義的情況。例如,當(dāng)病毒、木馬、惡意軟件等作主語時,它是主要的活動行動者和動作的發(fā)起者,屬于“施事”。但是因為有人進行控制活動,因此也可看作是非可控事件的主體,認為是“當(dāng)事”。為了統(tǒng)一處理,認為它們是動作的執(zhí)行者,確定為“施事”。
類似問題參照最接近的語義來設(shè)計事元,使其在知識抽取過程中抽取的知識準(zhǔn)確。
2. 復(fù)合句文法設(shè)計
描述網(wǎng)攻擊事件的句子復(fù)雜,并不只包括單句即只包含一個單獨動詞,有時會出現(xiàn)多個動詞,分為兩種情況: 復(fù)合句和兼語連動句。兼語連動句的文法已經(jīng)有前人設(shè)計,本文只進行應(yīng)用。復(fù)合句主要由多個句子構(gòu)成,句子之間存在某種關(guān)系,且存在標(biāo)志性的關(guān)聯(lián)詞。
復(fù)合句分為并列復(fù)合句和從屬復(fù)合句[19],并列復(fù)合句由并列連詞連接;從屬復(fù)合句由一個主句和一個或一個以上的從句構(gòu)成。復(fù)合句的劃分是由連接兩句的關(guān)系所決定的[20-21],本文結(jié)合前人研究成果得到表6的復(fù)合句分類。
表6 復(fù)合句分類
不同類別的復(fù)合句具有特定的關(guān)聯(lián)詞,復(fù)合句的文法通過關(guān)聯(lián)詞連接單句得到,而單句的文法是所有已經(jīng)設(shè)計好的文法。
3. “的是”特殊句文法設(shè)計
在網(wǎng)絡(luò)攻擊領(lǐng)域文法的設(shè)計過程中,還遇到了一個特殊的“的是”結(jié)構(gòu),即句子并不是“是系動詞”的屬性句,此時句子的結(jié)構(gòu)就會變得復(fù)雜多變[22-25]。
經(jīng)過對“的是”語句的分析(語句來自北京大學(xué)的CCL中文系統(tǒng)),可以將該結(jié)構(gòu)分為以下幾種,(以下分析中,A表示形容詞,V表示動詞,X和Y表示其他結(jié)構(gòu)):
① X + A +“的是”+ [間隔標(biāo)點: ,|。|: ...] + Y
該結(jié)構(gòu)為形容詞加“的是”結(jié)構(gòu),該結(jié)構(gòu)只是強調(diào)一種句子的關(guān)系,連接前后的兩部分,主要體現(xiàn)出一種情緒的變化。結(jié)構(gòu)中“A”包含的詞包括可喜、重要、可怕等。
② X + V+“的是”+ [間隔標(biāo)點: ,|。|: ...] + Y
該結(jié)構(gòu)是動詞加“的是”,主要省略了動詞的主語,該種情況的分析與⑤相同。結(jié)構(gòu)中“V”包含的詞有惋惜、遺憾等。
③ 在上述①、②的兩種結(jié)構(gòu)基礎(chǔ)上,還可以加入其他的修飾。可以添加的修飾包括以下幾類
a) 搭配程度副詞,例如,“最嚴(yán)重的是”。
b) 搭配“值得”,例如,“值得注意的是”。
c) 搭配“必須、應(yīng)該、需要”等副詞,例如,“應(yīng)當(dāng)十分注意的是”。
d)搭配“所”字,例如,“所秉持的是”。
注意: 以上四種情況分別可以與①、②兩種情況進行搭配,也可以多個一起聯(lián)合搭配使用。
④ 上述三種情況,都可以與關(guān)聯(lián)詞相連。這四種情況中,需要抽取知識的重點都在于“的是”后面的內(nèi)容,因此重點對Y進行文法設(shè)計。
⑤ 當(dāng)“的是”的前面搭配是句子結(jié)構(gòu),這時可以直接去掉“的是”而不影響句子的理解,即Y部分是X + V的賓語??赡艹霈F(xiàn)的情況如下: “的是”結(jié)構(gòu)之前是動詞,且在動詞之前出現(xiàn)了動作的主語。例如,“我希望的是”等。此情況與還可以與修飾部分聯(lián)合使用。符合上述情況的例句如下:
例5遺傳提供的是人的身心發(fā)展的物質(zhì)前提。
一體化作為手段強調(diào)的是城鄉(xiāng)教育雙向溝通、資源共享、優(yōu)勢互補、互動互助。
該情況中的“的是”并不影響整個句子以及知識的抽取,因此設(shè)計文法時將“的是”設(shè)為可選即可。
⑥ 另一種復(fù)雜的情況是,“的是”后跟的Y是V的主語,“的是”的功能是對句子進行倒置強調(diào)。此時刪去“的是”并將Y提前就會變形成正常語序。
同一種情況不同句式的情況是含有“使讓類動詞”,例如,“令人高興的是;叫人不能容忍的是”等。符合情況的句子如下:
例6送給魯國的是得之于滅郜的大鼎。
在廣東負外交重責(zé)的是葉名琛。
在設(shè)計文法時,在對應(yīng)動詞語義類中加入包含“的是”且主語后置的文法。
⑦ 最后一種情況雖然也包含“的是”,但是“是”則是普通的系動詞,“的是”兩者的黏著性較弱。例如,描述形態(tài)顏色等的形容詞: “綠的是、圓的是”等和描述方位的詞: “前面的是、左邊的是”等。此時在“屬性是語義類類語句”中加入相應(yīng)的文法。
3.2.2 謂詞設(shè)計
謂詞設(shè)計的目標(biāo)是完成目標(biāo)知識的抽取,因此在不同的領(lǐng)域,謂詞會有不同的設(shè)計。本系統(tǒng)的謂詞主要依照網(wǎng)絡(luò)攻擊模型進行設(shè)計。主要的謂詞設(shè)計如下:
(1) 對可以直接抽取的內(nèi)容,將事元與模型進行對應(yīng),這其中包含“攻擊者”“攻擊目標(biāo)”“攻擊時間”等。
(2) 對需要根據(jù)抽取的內(nèi)容進行概括合并的,則需要抽取后再進行二次處理。特別是“攻擊類型”這一目標(biāo)內(nèi)容,需要設(shè)定統(tǒng)一標(biāo)準(zhǔn)并了解其領(lǐng)域特點。
前人關(guān)于網(wǎng)絡(luò)攻擊類型的研究有很多[26],通過實際文本的分析,本文選擇劉欣然[27]提出的分類原則。具體攻擊類型包括:信息泄露、篡改信息、非法利用服務(wù)、拒絕服務(wù)和非法提權(quán)。
(3) 根據(jù)常識和關(guān)注重點設(shè)計更多謂詞。即考慮是否存在模型以外的內(nèi)容,例如: 當(dāng)攻擊類型為“信息泄露”時,還需要知道泄露的內(nèi)容是什么,因此謂詞設(shè)計時加入對內(nèi)容的提取。
通過前三節(jié)介紹工作,建立了抽取網(wǎng)絡(luò)攻擊知識的系統(tǒng)。圖3是設(shè)計的網(wǎng)絡(luò)攻擊語義類中“篡改類”事例。
defcategory 篡改類:{定義:認知主體、組織用虛偽的手段改動或曲解其他事物(經(jīng)典、理論、政策、網(wǎng)頁等)。文法: <篡改類語句>::=<當(dāng)事:實體|認知主體|組織|網(wǎng)站><遭受詞類>[<施事:實體|認知主體|組織|病毒|木馬|惡意軟件>][<范圍:方面|網(wǎng)頁|密碼|數(shù)據(jù)>]<篡改詞類>謂詞:攻擊者(標(biāo)題,施事)&攻擊目標(biāo)(標(biāo)題,當(dāng)事)&攻擊類型(標(biāo)題, 篡改信息) &篡改內(nèi)容=(標(biāo)題, 范圍) <篡改詞類>::=篡改|修改例句: ××網(wǎng)站5月8日至14日遭網(wǎng)頁篡改共28次。}圖3 篡改類描述框架
有了網(wǎng)絡(luò)攻擊語義類后,就可利用它進行文本解析并抽取相應(yīng)的知識。整個流程主要包含兩個過程: 解析和抽取。具體如圖4所示。
圖4 知識抽取過程
4.1.1 解析過程
知識抽取過程中最主要的過程是通過網(wǎng)絡(luò)攻擊語義類來對文本進行解析,其解析過程如下:
(1) 首先對網(wǎng)絡(luò)攻擊文本進行分詞;
(2) 使用改進后的魯棒Earley解析器根據(jù)設(shè)計好的語義類文法對分詞后的句子進行解析;
魯棒Earley解析器是基于改進的Earley算法產(chǎn)生的語義解析器其中加入約束檢測以及錯誤處理功能,用于判斷一個輸入是否可以被一個文法識別,并生成匹配后的解析樹。
(3) 得到句子的解析樹。
4.1.2 抽取過程
解析過程已經(jīng)得到句子解析后的解析樹,接著對解析樹進行知識抽取,抽取的過程主要根據(jù)語義類中設(shè)計的謂詞。具體過程如下:
(1) 首先根據(jù)解析樹的結(jié)果,找到與語義類相關(guān)的節(jié)點,并得到所屬的語義類;
(2) 通過解析樹的結(jié)果以及第一步得到的語義類來找到匹配該解析樹的文法,并通過文法得到文法對應(yīng)的謂詞;
(3) 最后對謂詞中的事元進行替換,將其替換成解析樹中對應(yīng)的句子的內(nèi)容。
4.2.1 數(shù)據(jù)集
本論文使用的數(shù)據(jù)是由國家某安全部門提供的真實黑客攻擊態(tài)勢文本。使用1 518句進行語義類編寫,并留出195句作為測試數(shù)據(jù)。
4.2.2 度量標(biāo)準(zhǔn)
因為是對真實數(shù)據(jù)進行實驗,為了檢測應(yīng)用效果、解析效果以及知識抽取效果,定義三種準(zhǔn)確率,具體如下:
1. 事件實體名稱的抽取準(zhǔn)確率和召回率,對應(yīng)到攻擊模型中即是對攻擊者、攻擊目標(biāo)的抽取準(zhǔn)確率和召回率,如式(1)、式(2)所示。
其中,CEcorrect表示抽取正確的實體的數(shù)目,CEextract表示實際抽取的實體的總數(shù),CEtotal則表示本文中實際包含的實體的數(shù)目。
2. 事件其他屬性的準(zhǔn)確率和召回率,即對應(yīng)到攻擊模型的攻擊時間、攻擊過程、攻擊意圖、攻擊效果、攻擊范圍等抽取結(jié)果的準(zhǔn)確率和召回率,如式(3)、式(4)所示。
其中,CAcorrect表示抽取正確的屬性值的數(shù)目,CAextract表示實際抽取的屬性值的總數(shù),CAtotal則表示本文中實際包含的屬性值的數(shù)目。
3. 事件相關(guān)語句識別準(zhǔn)確率和召回率,即根據(jù)文法識別出的跟攻擊相關(guān)的語句的準(zhǔn)確率和召回率,如式(5)、式(6)所示。
其中,CScorrect表示識別正確(確實為攻擊相關(guān)語句)的數(shù)目,CSextract表示實際識別出的句子的總數(shù),CStotal則表示本文中實際包含的攻擊相關(guān)的語句數(shù)目。
4.3.1 實驗結(jié)果
圖5給出一個經(jīng)過解析并進行知識抽取的結(jié)果示例,其中只給出部分語料片段,因涉及安全性問題,語料片段中涉及的真實名稱被隱藏和替換。
13. 全球多地黑客于1月1日發(fā)起網(wǎng)絡(luò)攻擊以慶祝新年。2013年1月10日。黑客“AA”攻擊了BB(cuxxer.gx.yx),泄露了服務(wù)器信息、數(shù)據(jù)庫表單及622個用戶賬號(用戶名、郵箱、密碼、IP地址)。14. 全球多地黑客于1月1日發(fā)起網(wǎng)絡(luò)攻擊以慶祝新年。2013年1月10日。CC黑客組織“DD”攻擊了EE(ix.yx.gx)、FF(bxlxn.edu.xx),篡改了網(wǎng)頁。
defframe 全球多地黑客于1月1日發(fā)起網(wǎng)絡(luò)攻擊以慶祝新年{ 攻擊時間: 2013年1月10日 攻擊者: 黑客“AA” 攻擊目標(biāo): BB(cuxxer.gx.yx) 攻擊類型: 信息泄露 泄露內(nèi)容: 服務(wù)器信息、數(shù)據(jù)庫表單及622個用戶賬號(用戶名、郵箱、密碼、IP地址)}defframe 全球多地黑客于1月1日發(fā)起網(wǎng)絡(luò)攻擊以慶祝新年{ 攻擊時間: 2013年1月10日 攻擊者: CC黑客組織“DD” 攻擊目標(biāo): EE(ix.yx.gx)、FF(bxlxn.edu.xx) 攻擊類型: 篡改信息 篡改內(nèi)容: 網(wǎng)頁}圖5 知識抽取結(jié)果事例
利用測試數(shù)據(jù)進行實驗,一共運行了195個語句,每一句的平均運行時間小于2 s。最后得到的實驗結(jié)果如表7所示。
表7 實驗結(jié)果
4.3.2 結(jié)果分析
由實驗結(jié)果可知,本文方法可實現(xiàn)對網(wǎng)絡(luò)攻擊文本的準(zhǔn)確分析,說明了本方法的有效性。雖然實驗結(jié)果顯示的準(zhǔn)確率達到較高水平,但是還是存在解析錯誤并且對語句的識別召回率較低,主要原因如下:
(1) 分詞錯誤,本方法主要是以文法為基準(zhǔn),而對中文解析時需要優(yōu)先對其進行分詞,本文采用斯坦福大學(xué)的中文分詞系統(tǒng),分詞的結(jié)果不能做到100%準(zhǔn)確,因此會對整個解析帶來影響。
(2) 專有名詞和中心動詞識別錯誤,因為中文的特殊性以及復(fù)雜性,在專有名詞以及在中心動詞識別過程中會存在錯誤,這也會影響解析的效果。
(3) 文法未匹配,本方法主要以語義文法為基準(zhǔn),文法的覆蓋度是影響結(jié)果解析的最主要因素,因為不能保證文法的覆蓋能夠達到100%,故識別的結(jié)果也不會達到100%。
隨著網(wǎng)絡(luò)技術(shù)的迅猛發(fā)展,網(wǎng)絡(luò)攻擊事件受到社會和政府關(guān)注。為了更好地利用已有的文本數(shù)據(jù),需要將文本轉(zhuǎn)換為結(jié)構(gòu)化知識。本文提出語義文法分析的方法,通過建立語義分類與描述框架來對網(wǎng)絡(luò)攻擊事件進行知識抽取。
本文首先介紹了語義分類與描述框架的整體結(jié)構(gòu)和思想,然后提出了攻擊類文本中出現(xiàn)較多的遭受類語義類的設(shè)計,最后建立“網(wǎng)絡(luò)攻擊語義類”,將語義分類與描述框架應(yīng)用于網(wǎng)絡(luò)攻擊事件文本分析中。
本文方法相較于統(tǒng)計的方法的主要優(yōu)點和創(chuàng)新點包括:
(1) 使用語義分類和描述框架是從語義的角度進行文本分析和知識抽取,結(jié)果更精準(zhǔn)且易擴展;
(2) 本文根據(jù)前人對遭受語義類的分析,較為系統(tǒng)地研究了遭受類現(xiàn)象,并且首次對遭受語義類進行了語義分類和描述框架的設(shè)計;
(3) 本文首次將語義分類和描述框架應(yīng)用在實際系統(tǒng)中,表明語義分類和描述框架具有很好的應(yīng)用價值。
雖然通過實驗可見文本方法有較好的效果,但還有很多相關(guān)的工作是未來需要完成的,具體如下:
(1) 由于段落文本復(fù)雜,其設(shè)計還有很多需要改進的方面。例如,關(guān)于RST的應(yīng)用,雖然已有很多英文方面的研究,但在中文的應(yīng)用較少。
(2) 雖然當(dāng)前應(yīng)用的文法設(shè)計準(zhǔn)確率較高,但存在人工耗費過大的缺點,因此要尋找自動學(xué)習(xí)的方式,在已有的文法基礎(chǔ)上自動提取更多的相關(guān)文法,從而提高效率和減少人力。
(3) 針對已經(jīng)分析的對解析結(jié)果有影響的因素,后期也會對其進行處理和完善。