本發(fā)明涉及自然語言處理領(lǐng)域,特別是涉及多模態(tài)圖文信息實體關(guān)系抽取的一種方法。
背景技術(shù):
1、自然語言處理(nlp)是計算機科學和人工智能領(lǐng)域的一個重要分支,旨在讓計算機理解和處理人類語言。關(guān)系抽取(relation?extraction,re)是nlp中的一個重要任務(wù),旨在從文本中自動識別實體之間的關(guān)系。同時,自然語言處理與計算機視覺也有著密不可分的聯(lián)系。
2、關(guān)系抽取(re)是構(gòu)建知識圖的一個基本過程,其任務(wù)內(nèi)容是識別句子中給定的兩個實體之間的語義關(guān)系。而多模態(tài)關(guān)系提取(mre)是一個用視覺線索識別文本關(guān)系的任務(wù)。視覺信息作為人類重要的獲取信息渠道,人類獲取的信息超過八成來自視覺信息。而視覺傳感器作為輔助人類獲取視覺信息的工具,在人類的生產(chǎn)生活中占據(jù)了重要的地位。單一得從文本中獲得信息具有一定得局限性。視覺內(nèi)容有助于相對于純文本基線更精確地識別關(guān)系。因此,圖文結(jié)合用于實體關(guān)系抽取的方法因運而生。
3、而近年來深度學習在計算機視覺和自然語言處理領(lǐng)域的飛速發(fā)展,其中目標識別與信息抽取都是其中的重要領(lǐng)域。單獨只用文本或者圖像其中一者的來源得到的效果較為單一,難以滿足智能化時代的需求。
技術(shù)實現(xiàn)思路
1、本發(fā)明提供一種面向軍事領(lǐng)域,結(jié)合目標檢測與文本信息抽取的方法,能夠精準識別指定的飛機類型,輸出標準的三元組形式。
2、本發(fā)明所采用的技術(shù)方案是:結(jié)合yolov8與uie模型用于軍事領(lǐng)域的圖文多模態(tài)實體關(guān)系抽取的方法,包括以下步驟:
3、步驟1,在可以查詢到的國內(nèi)外官方軍事領(lǐng)域裝備網(wǎng)站或官方軍事力量網(wǎng)站上查找飛機或飛行器的圖片,構(gòu)建圖像數(shù)據(jù)集,使用yolov8檢測圖像識別飛機的具體型號;
4、步驟2,制定實體間關(guān)系的schema,并且根據(jù)schema構(gòu)建文本關(guān)系數(shù)據(jù)集;
5、步驟3,使用文本數(shù)據(jù)集對uie信息抽取模型進行微調(diào)訓練;
6、步驟4,使用微調(diào)后的uie對輸入的文本進行抽取,并且結(jié)合yolov8得到的結(jié)果輸出最終的實體關(guān)系三元組。
7、進一步地,步驟1中,首先制定了46種不同的飛機類型,在國內(nèi)外官方的軍事領(lǐng)域裝備網(wǎng)站或官方軍事力量網(wǎng)站(https://www.seaforces.org/)上進行選取需要的飛機圖片進行爬?。?/p>
8、根據(jù)爬取得到的飛機圖片,經(jīng)過篩選,剔除質(zhì)量不好的圖片,構(gòu)建數(shù)據(jù)集,劃分成訓練集,驗證集,測試集,最終得到的訓練集圖片共10472張,驗證集1164張,測試集1293張;
9、使用yolov8對飛機圖片進行訓練,使用nvidia?geforce?rtx?3070?ti的gpu進行加速,cuda版本設(shè)置為11.3,軟件環(huán)境設(shè)置為python?3.8,pytorch版本設(shè)置為1.9.0+cu111,torchaucio版本設(shè)置為0.9.0,torchvision版本設(shè)置為0.10.0+cu111,加載yolov8n.pt的預(yù)訓練模型文件,輸入圖片大小為640*640,批處理設(shè)置為4,訓練輪數(shù)分別設(shè)置為100輪,200輪,300輪,學習率設(shè)置為0.001。
10、使用一些測試圖片對100輪,200輪,300輪的結(jié)果進行對比,發(fā)現(xiàn)300輪中對于飛機圖片的型號識別的效果最佳。
11、在測試的圖片中,若出現(xiàn)較多飛機的場景,例如一艘航空母艦搭載了許多艦載機的情況下,由于識別對象目標較多,遠距離拍攝目標畫面較小導(dǎo)致的畫面不夠清晰,或者是由于周圍的飛機及其他設(shè)備裝置遮擋的原因,對于飛機型號的識別率會有所下降。對于識別飛機目標較少甚至只有單個目標的情況下,由于需要識別的目標數(shù)較少并且是被的畫面足夠清晰,對于飛機目標型號的識別率可以超過0.95甚至逼近1。
12、進一步地,步驟2中,對于實體之間的關(guān)系,圍繞“飛機”這一實體,制定一個schema,指定schema的過程需要考慮相近詞義的詞語,需要進行篩選剔除,并且最終的關(guān)系詞語需要符合實際情景。
13、對于這10種不同的與飛機有關(guān)的實體關(guān)系三元組,選擇從軍事網(wǎng)站和新聞網(wǎng)站上搜集相關(guān)新聞文本,加上人工編寫,形成一個能夠體現(xiàn)schema中規(guī)定的實體關(guān)系三元組的文本語句數(shù)據(jù)集,用于uie模型。
14、進一步地,步驟3中,uie模型是通用信息抽取統(tǒng)一框架,可用于不同任務(wù)中的信息抽取。在軍事領(lǐng)域中,當輸入的文本并未提及具體型號,但相對應(yīng)的圖像中可以識別出飛機的型號時,考慮使用視覺信息補充單一的文本信息作為信息的補充完善。
15、uie模型可以抽取通用的文本信息,不同任務(wù)中具備良好的遷移和泛化能力,基于ernie?3.0知識增強預(yù)訓練模型,訓練并開源了首個中文通用信息抽取模型uie。
16、uie模型采用默認的uie-base模型,結(jié)構(gòu)選擇12-layers,768-hidden,12-heads,語言模式設(shè)置為“中文”。應(yīng)用場景為“面向文本場景的抽取式模型,支持中文”。
17、給定預(yù)訓練好的uie模型,通過模型微調(diào)快速將其適應(yīng)不同的ie任務(wù)和設(shè)置。給定標記的語料庫dtask={(s,x,y)},使用teacher-forcing交叉熵損失對uie模型進行微調(diào):
18、
19、使用專門的doccano標注工具對先前的文本數(shù)據(jù)集進行頭尾實體以及關(guān)系的標注。標注準則按照先前指定的schema所規(guī)定的10種關(guān)系類型進行標注,共120條文本語句。
20、將doccano工具標注好的數(shù)據(jù)文本導(dǎo)出,其文本格式為admin.jsonl,放在./data目錄下。
21、調(diào)用uie模型,輸入規(guī)定好的schema,使用的task-path設(shè)定為uie-base,輸入實例測試文本,得到抽取得的實體三元組關(guān)系結(jié)果。
22、使用單卡微調(diào)的命令,學習率learning_rate設(shè)置為1e-5,批次大小設(shè)置為4,序列的最大長度設(shè)置為512,輪數(shù)設(shè)置為4,模型選定為uie-base,隨機種子seed為1000--logging_steps設(shè)置為10,合理步數(shù)設(shè)置為10,最終保存的訓練文件名稱為checkpoint-1880。
23、調(diào)用uie模型,輸入規(guī)定好的schema,使用的task-path設(shè)定為checkpoint-1880,輸入實例測試文本,輸入的測試實例文本要求不出現(xiàn)具體的飛機型號,而是用模糊的詞代指或者直接寫“飛機”,得到抽取的實體三元組關(guān)系結(jié)果。
24、對比uie-base和checkpoint-1880的結(jié)果,發(fā)現(xiàn)后者的抽取效果要明顯好于前者,其不僅做到了篩選掉了不需要抽取出來的實體和關(guān)系,對于schema規(guī)定中需要的實體和關(guān)系抽取的準確率也有明顯提升。
25、進一步地,步驟4中,選擇checkpoint-1880,在得到的結(jié)果中,通過對比設(shè)定一個閾值,若高于這個閾值,則選擇輸出這個關(guān)系;若低于這個值,則不輸出。輸出的格式為“頭實體關(guān)系尾實體”。
26、yolov8檢測到的結(jié)果與規(guī)定的46種飛機種類字典做到映射,作為可以替換的實體名稱。
27、在輸出的頭實體或者尾實體,若出現(xiàn)“飛機”的字眼,使用yolov8目標檢測得到的飛機具體型號進行替換。
28、以“頭實體關(guān)系尾實體”的形式輸出最終結(jié)果。
29、下面結(jié)合說明書附圖對本發(fā)明作進一步描述。