涂飛明,劉茂福?,夏 旭,張耀峰
1.武漢科技大學(xué) 計算機科學(xué)與技術(shù)學(xué)院,湖北 武漢 430065;
2.智能信息處理與實時工業(yè)系統(tǒng)湖北省重點實驗室,湖北 武漢 430065;
3.湖北經(jīng)濟學(xué)院湖北數(shù)據(jù)與分析中心,湖北武漢430205
在互聯(lián)網(wǎng)大數(shù)據(jù)時代,各大采購平臺網(wǎng)站每天都會發(fā)布大量招投標(biāo)和中標(biāo)公告,這些公告內(nèi)容涉及方方面面,蘊含著很大的商業(yè)價值。對于企業(yè)而言,及時獲取這些招投標(biāo)數(shù)據(jù),并從中抽取所需信息,具有十分重要的意義。而網(wǎng)站上發(fā)布的標(biāo)書文本多為非結(jié)構(gòu)化文本,這給信息的抽取以及統(tǒng)計工作帶來難度。
信息抽?。╥nformation extraction)是從非結(jié)構(gòu)化或半結(jié)構(gòu)化的文本中對用戶指定類型的實體、關(guān)系以及事件進行自動標(biāo)識和分類,輸出為結(jié)構(gòu)化的信息[1]。由于其廣泛應(yīng)用,近年來,信息抽取成為自然語言處理(natural language processing)領(lǐng)域研究的熱門課題。信息抽取主要包括命名實體識別(named entity recognition)、關(guān)系抽取(relation extraction)和事件抽?。╡vent extraction)三個子任務(wù)[2],信息抽取的關(guān)鍵是命名實體的識別。早期常用的是基于規(guī)則的抽取方法[3],但該方法存在泛化能力差的問題。
深度學(xué)習(xí)的發(fā)展對自然語言處理領(lǐng)域產(chǎn)生了巨大的影響[4],在信息抽取中使用也相當(dāng)普遍。在預(yù)訓(xùn)練模型發(fā)布之前,信息抽取主要模型以CNN和RNN[5]為主。Akbik等[6]通過動態(tài)存儲每個詞的所有上下文嵌入,并對這些嵌入進行池化操作以提取詞的全局上下文嵌入,該方法顯著提高了命名實體的識別效果。BERT(bidirectional encoder representations from transformers)模型的提出[7],使得多項自然語言處理任務(wù)取得了更好的效果,預(yù)訓(xùn)練模型被越來越多的學(xué)者使用。Xue等[8]提出針對聯(lián)合實體和關(guān)系提取任務(wù)的集中注意力模型,該模型通過動態(tài)范圍注意力機制將BERT模型集成到聯(lián)合學(xué)習(xí)中,提高了共享參數(shù)層的特征表示能力。Qiu等[9]使用預(yù)訓(xùn)練模型,并以問答的方式,實現(xiàn)臨床醫(yī)療文本的結(jié)構(gòu)化。
近年,有學(xué)者將信息抽取任務(wù)轉(zhuǎn)化為問答(question answering)任務(wù)來處理,取得較好效果。機器閱讀理解(machine reading comprehension)是一類基于文本的問答任務(wù),Levy等[10]將關(guān)系映射為問題,把關(guān)系抽取任務(wù)轉(zhuǎn)為簡單的閱讀理解任務(wù)。McCann等[11]將10個不同的自然語言處理任務(wù)轉(zhuǎn)化為問答任務(wù),并將10個不同的任務(wù)數(shù)據(jù)集轉(zhuǎn)化為問答數(shù)據(jù)集。Li等[12]利用閱讀理解模型進行多輪對話,從而實現(xiàn)對文本實體-關(guān)系信息的抽取。Qiu等[13]提出QA 4IE框架,利用問答的靈活性,在句子間生成更加豐富的關(guān)系三元組。Li等[14]針對命名實體識別任務(wù),提出了一個統(tǒng)一的閱讀理解框架,能夠同時識別出文本中的非嵌套實體和嵌套實體。
機器閱讀理解任務(wù)定義為給定一篇文章以及基于文章的問題,讓機器給出問題的答案。隨著斯坦福大學(xué)發(fā)布SQuAD(Stanford Question Answering Dataset)閱讀理解數(shù)據(jù)集[15],閱讀理解任務(wù)獲得了大量的關(guān)注。Wang等[16]提出了在SQuAD數(shù)據(jù)集上的第一個端到端的閱讀理解模型,該模型先對問題和原文分別進行編碼,然后利用Match-LSTM將問題和原文融合,最后使用Pointer-Network從原文中選取答案片段。Seo等[17]在注意力機制的基礎(chǔ)上進行改進,提出了BiDAF(bi-directional attention flow)模型,該模型利用雙向注意力流,得到一個問題感知的上下文表征,獲得更深層次的上下文語義信息。由于之前的SQuAD數(shù)據(jù)集全為有答案的情況,斯坦福大學(xué)又發(fā)布了SQuAD 2.0數(shù)據(jù)集[18],SQuAD 2.0數(shù)據(jù)集存在原文中沒有材料支持,無法作答的情況,其語料更加符合現(xiàn)實應(yīng)用場景。受人類閱讀習(xí)慣的啟發(fā),Zhang等[19]提出一種回顧式閱讀器(retrospective reader),集成泛讀和答案驗證的模式,在SQuAD 2.0中取得佳績。
本文提出一種基于BERT的閱讀理解信息抽取方法,用于對標(biāo)書文本中的預(yù)算金額、甲方名稱、甲方聯(lián)系方式、代理機構(gòu)名稱和代理機構(gòu)聯(lián)系方式5項信息進行抽取。抽取的信息多為單位名、人名以及數(shù)字(包括金額和電話號碼)這樣的實體,若將其視為命名實體識別任務(wù),則有以下兩個弊端:1)在標(biāo)書文本中,公司名多為嵌套命名實體,而傳統(tǒng)命名實體識別模型大多是針對非嵌套命名實體識別任務(wù)的[20],抽取效果欠佳;2)部分要抽取的信息并不完全是實體,而是包含了其他符號的字符串,如金額“¥35,000.00元”、電話號碼“0755-82****88轉(zhuǎn)3454”(為保護隱私,電話號碼部分?jǐn)?shù)字已掩蓋,下同)以及公司名“內(nèi)蒙古電力(集團)有限責(zé)任公司”等。
本文將標(biāo)書文本的信息抽取任務(wù)看作閱讀理解任務(wù),而非命名實體識別任務(wù)。對于給定的標(biāo)書文檔,對其提問,如“采購單位”,然后讓模型預(yù)測出答案,得到的結(jié)果即要抽取的甲方名稱,其他四項需要抽取的項目以類似的方式進行抽取。基于閱讀理解的方法可以同時適用文本中非嵌套實體和嵌套實體的抽取,相比于傳統(tǒng)的序列標(biāo)注方法,基于閱讀理解的方法更簡單直觀,可遷移性也強。另外,基于閱讀理解的方法能夠讓問題編碼一些先驗語義知識,能夠更容易區(qū)分具有相似標(biāo)簽的分類,如甲方名稱和代理機構(gòu)名稱。
從中國政府采購網(wǎng)(http://www.ccgp.gov.cn/)獲取標(biāo)書網(wǎng)頁文本1 450份,然后清洗數(shù)據(jù),去除JavaScript、CSS代碼以及注釋文本等代碼文本,去除HTML標(biāo)簽,替換部分符號,得到純凈、規(guī)范的中國政府采購網(wǎng)發(fā)布的標(biāo)書正文。根據(jù)我們對中國政府采購網(wǎng)標(biāo)書正文的了解,構(gòu)建出規(guī)則庫,使用規(guī)則對其進行抽取,再進行人工檢驗,更正規(guī)則抽取錯誤的例子,給出預(yù)算金額、甲方名稱、甲方聯(lián)系方式、代理機構(gòu)名稱以及代理機構(gòu)聯(lián)系方式5個字段的內(nèi)容。
將以上5個字段內(nèi)容轉(zhuǎn)換成SQuAD數(shù)據(jù)格式,對標(biāo)書文本提出5個問題,并給出答案文本以及答案開始位置,得到問題-答案對共7 250份。SQuAD格式的數(shù)據(jù)如例1。
例1
對標(biāo)書文本抽取上述5項信息,整體架構(gòu)如圖1所示。首先輸入原始標(biāo)書網(wǎng)頁文本,對其進行預(yù)處理操作,得到標(biāo)書純文本,基于文本內(nèi)容,匹配問題關(guān)鍵詞列表,生成問題,把問題與文本拼接,然后使用BERT閱讀理解模型進行預(yù)測,得到問題的答案。
圖1 閱讀理解式信息抽取方法整體架構(gòu)Fig.1 Overall structure of information extraction method via reading comprehension
對于每個要抽取的字段,都會為其設(shè)置一個問題,然后讓閱讀理解模型根據(jù)問題給出預(yù)測答案。為生成閱讀理解數(shù)據(jù)集,我們構(gòu)建了規(guī)則庫用于信息的初步抽取,統(tǒng)計到標(biāo)書文本中常見的信息關(guān)鍵詞,生成問題關(guān)鍵詞列表,表1為部分問題關(guān)鍵詞列表。我們?yōu)槊總€字段設(shè)置一個默認問題,然后在文本中查找這些問題關(guān)鍵詞,匹配成功則生成對應(yīng)問題;否則,使用默認的問題。本文生成的問題均為偽問題。比如,例2中標(biāo)書文本包含“招標(biāo)單位”關(guān)鍵詞,抽取甲方名稱時,就生成問題:“招標(biāo)單位”。
表1 部分問題關(guān)鍵詞列表Table 1 The partial of question keywords list
例2
段落:…項目概況如下:1.項目名稱:沈陽市紅十字會醫(yī)院棋盤山分院污水處理站運維服務(wù)項目2.項目編號:LNWX21046-C 3.招標(biāo)單位:沈陽市紅十字會醫(yī)院…
問題:招標(biāo)單位
答案:沈陽市紅十字會醫(yī)院
對于閱讀理解模型而言,問題包含了重要的先驗語義信息,能夠幫助模型確定答案的位置。所以,合適的問題對于答案的正確預(yù)測有著重要作用。
在得到問題和文本后,使用BERT模型進行預(yù)測。閱讀理解的任務(wù)是,給定問題(question)和包含答案的段落(paragraph),模型需要預(yù)測答案文本的起始位置和結(jié)束位置,從而給出答案文本,這實際上是一種抽取式問答。本文使用預(yù)訓(xùn)練好的BERT中文語言模型[21],針對閱讀理解任務(wù)進行微調(diào)。
如圖2所示,在閱讀理解任務(wù)中,BERT將問題和段落組成一個序列,序列的第一個字符為一個特殊字符[CLS],并用一個特殊字符[SEP]將問題和段落區(qū)分開。E為輸入序列,特殊字符[CLS]的最終隱藏向量表示為C∈RH,第i個輸入詞的最終隱藏向量表示為Ti∈RH,其中H為隱藏層的維度。
圖2 BERT閱讀理解模型框架圖Fig.2 BERT-based reading comprehension model framework
微調(diào)過程中,引入向量Vstart∈RH和Vend∈RH,Vstart表示答案起始位置判斷向量,Vend表示答案結(jié)束位置判斷向量。表示第i個詞是答案片段開始的概率,通過Ti和Vstart點積,再接上段落中所有詞的softmax計算得到
從位置i到位置j的候選答案片段分?jǐn)?shù)表示為Vstart·Ti+Vend·Tj,選取分?jǐn)?shù)最高的片段作為預(yù)測結(jié)果,同時保證i≤j。
本文使用兩個評價指標(biāo):EM(exact match)和F1值,計算評價指標(biāo)時忽略標(biāo)點符號。
EM:對于每個問題-答案對,若模型預(yù)測結(jié)果與標(biāo)準(zhǔn)答案完全匹配,單個樣例EM為1,否則為0,最后取全部測試集數(shù)據(jù)的均值。EM用于計算預(yù)測結(jié)果與正確答案是否完全匹配,反映了精準(zhǔn)匹配度。
F1:首先得到預(yù)測結(jié)果與標(biāo)準(zhǔn)答案的最長公共子串(longest common substring,LCS),根據(jù)LCS的長度和標(biāo)準(zhǔn)答案的長度計算召回率(R),根據(jù)LCS的長度和預(yù)測結(jié)果的長度計算精確率(P),再由R和P計算F1,如公式(3),然后同樣取全部數(shù)據(jù)均值。F1用于計算預(yù)測結(jié)果與標(biāo)準(zhǔn)答案之間字符級別的匹配程度,反映了模糊匹配度。
本文進行了基于BERT的命名實體識別抽取任務(wù)的實驗,將數(shù)據(jù)集格式轉(zhuǎn)換為適用于命名實體識別任務(wù)的格式,設(shè)置預(yù)算金額、甲方名稱、甲方聯(lián)系方式、代理機構(gòu)名稱以及代理機構(gòu)聯(lián)系方式5類命名實體,實驗?zāi)繕?biāo)為從文本中抽取這5類命名實體,并同樣使用EM和F1評價指標(biāo),用于對比閱讀理解的抽取方法。為了比較不同閱讀理解模型的抽取效果,本文進行了一系列閱讀理解模型對比實驗,選用Match-LSTM、BiDAF和Retro-Reader模型進行對比實驗,實驗結(jié)果如表2,其中“BERT”為本文模型。
表2 實驗結(jié)果Table 2 Exper imental results %
因為金額的特征比較明顯,多為數(shù)字加“元”或“萬元”,適合Match-LSTM模型識別抽取,所以在“預(yù)算金額”上Match-LSTM表現(xiàn)較好。在其他字段BERT和Retro-Reader模型的抽取效果都比其他模型好。在“甲方聯(lián)系方式”和“代理機構(gòu)聯(lián)系方式”兩個字段上BERT抽取效果要優(yōu)于Retro-Reader。Retro-Reader模型預(yù)測集成了粗讀和精讀兩個階段,粗讀階段判斷問題是否可以回答;精讀階段尋找答案片段,驗證問題是否可以回答,給出最終的判斷。Retro-Reader適合處理包含無法回答問題的閱讀理解任務(wù),而本文的語料均包含抽取的信息,因此更適合BERT。另外,BERT的解碼階段直接采用線性網(wǎng)絡(luò)層連接,設(shè)計上相比Retro-Reader更簡單,訓(xùn)練時資源耗費更少。
例3
context:…采購代理機構(gòu)信息(如有)名 稱:遼源市宏基建設(shè)工程招標(biāo)有限公司地址:遼源市隆基華典55號樓門市 聯(lián)系方式:0437-31****3…
question:代理機構(gòu)聯(lián)系方式
answer:0437-31****3
NER-BERT:0437
Match-LSTM:-
BiDAF:-
BERT:0437-31****3
Retro-Reader:0437-31****3
如例3,對于代理機構(gòu)聯(lián)系方式的抽取,命名實體識別任務(wù)的抽取結(jié)果為“0437”,丟失了部分內(nèi)容。閱讀理解任務(wù)的Match-LSTM和BiDAF預(yù)測答案為“-”,而BERT以及Retro-Reader預(yù)測答案為“0437-31****3”,與標(biāo)準(zhǔn)答案一致。標(biāo)準(zhǔn)答案的位置相對文中“采購代理機構(gòu)信息”位置較遠,預(yù)訓(xùn)練模型更能學(xué)習(xí)到上下文語義信息,在閱讀理解任務(wù)上更具有優(yōu)勢。
例4
context:…項目名稱:成安縣經(jīng)濟開發(fā)區(qū)污水處理廠設(shè)施惡臭氣體設(shè)備采購項目…采購人信息名稱:成安縣環(huán)潔公司…
question:采購人
answer:成安縣環(huán)潔公司
NER-BERT:成安縣環(huán)潔公司
Match-LSTM:成安縣經(jīng)濟開發(fā)區(qū)
BiDAF:成安縣經(jīng)濟開發(fā)區(qū)
BERT:成安縣環(huán)潔公司
Retro-Reader:成安縣環(huán)潔公司
如例4,對于甲方名稱的抽取,標(biāo)準(zhǔn)答案是“成安縣環(huán)潔公司”,命名實體識別任務(wù)的抽取結(jié)果為“成安縣環(huán)潔公司”,Match-LSTM和BiDAF錯誤地從標(biāo)書文本的項目名稱中選取“成安縣經(jīng)濟開發(fā)區(qū)”片段作為答案,BERT和Retro-Reader則是從文本中選取位置與“采購人信息名稱:”相近的“成安縣環(huán)潔公司”作為答案,使用預(yù)訓(xùn)練模型,更能準(zhǔn)確定位到答案位置。
本文提出了一種基于BERT的標(biāo)書文本閱讀理解式信息抽取方法,該方法將信息抽取任務(wù)轉(zhuǎn)換成閱讀理解任務(wù),對于給定標(biāo)書文本,生成問題對模型提問,然后模型從文本中抽取片段給出預(yù)測結(jié)果。使用BERT預(yù)訓(xùn)練模型能夠增強語言表征能力,提升閱讀理解抽取效果。實驗結(jié)果顯示:對于標(biāo)書文本信息抽取,閱讀理解抽取方法相比傳統(tǒng)的命名實體識別抽取方法具有更好的效果。在今后的工作中,將完善數(shù)據(jù)集的構(gòu)建,嘗試用更多的方法實現(xiàn)文本信息抽取任務(wù)。