周樂樂,陳磊,季豐,任竹,劉楠楠
(安徽省農(nóng)業(yè)科學(xué)院農(nóng)業(yè)經(jīng)濟(jì)與信息研究所,安徽合肥 230001)
近些年,數(shù)據(jù)呈現(xiàn)爆發(fā)式增長,計(jì)算機(jī)硬件性能不斷增強(qiáng),計(jì)算機(jī)算法理論也不斷突破,尤其是大數(shù)據(jù)時(shí)代的到來,許多電子文檔類的自然語言呈現(xiàn)在我們周圍,在人類自然語言文本里提取出相關(guān)實(shí)體、屬性、關(guān)系等這類高層次結(jié)構(gòu)化的語義信息來處理每個行業(yè)中的一些問題正是現(xiàn)階段的研究熱點(diǎn)[1-2]。種植業(yè)與每個人息息相關(guān),土壤情況是種植業(yè)的基本。掌握土壤肥力情況是因地種植的前提條件。而現(xiàn)有的土壤肥力數(shù)據(jù)比較分散,種植戶們想快速直接地了解當(dāng)?shù)赝寥婪柿η闆r較為困難。多數(shù)情況下種植戶們都還是根據(jù)經(jīng)驗(yàn)施肥,這就導(dǎo)致了施肥不科學(xué)的情況。
為了將分散的土壤肥力數(shù)據(jù)利用起來,可以通過建立土壤肥力的知識圖譜。土壤肥力知識圖譜是將不同地區(qū)的土壤肥力信息按照土壤肥力屬性關(guān)聯(lián)組合而成的巨大信息網(wǎng)。通過構(gòu)建土壤肥力知識圖譜建立一套土壤肥力知識問答系統(tǒng),使用者可以通過土壤肥力知識問答系統(tǒng)獲取需要了解的地區(qū)的土壤肥力指標(biāo)情況,能更加高效快捷地獲得針對性土壤肥力的信息,并將其作為決策依據(jù)。
土壤肥力命名實(shí)體識別是構(gòu)建土壤肥力知識圖譜中至關(guān)重要的一個步驟。首先預(yù)定義需要識別對象的語義類別,命名實(shí)體識別就是指在文本數(shù)據(jù)集中利用算法自動識別出預(yù)定義過的需要識別的對象[3]。此外,在信息檢索、問答系統(tǒng)、機(jī)器翻譯等方向也常用到命名實(shí)體識別[4]。土壤肥力命名實(shí)體識別流程見圖1。考慮土壤肥力文本的特點(diǎn):(1)中文數(shù)據(jù)集文本字詞比較隨意[5];(2)土壤肥力的屬性較多,存在別名和英文縮寫;(3)為便于土壤肥力知識問答系統(tǒng)的建立,需要將土壤肥力知識信息在語言理解中進(jìn)行整合。因此本文使用了一種基于ERNIE-BiLSTM-CRF 模型的土壤肥力命名實(shí)體識別技術(shù)。
圖1 土壤肥力命名實(shí)體識別流程
ERNIE-BiLSTM-CRF 模型,采用ERNIE(enhanced language representation with informative entities)模型對土壤肥力信息預(yù)訓(xùn)練并進(jìn)行向量表示,利用BiLSTM(bidirectional long short term memory)學(xué)習(xí)ERNIE 預(yù)訓(xùn)練語言模型輸出的字向量特征,并對獲得的所有可能的標(biāo)簽序列計(jì)分,計(jì)分后將所有標(biāo)簽序列輸入CRF(condition random field),通過CRF 層解碼生成最優(yōu)序列結(jié)果輸出。
該研究結(jié)合中國知網(wǎng)中文獻(xiàn)提供的土壤肥力數(shù)據(jù),構(gòu)建了基于文獻(xiàn)數(shù)據(jù)的土壤肥力領(lǐng)域語料集,并應(yīng)用于安徽省土壤肥力知識問答系統(tǒng)中。試驗(yàn)結(jié)果表明本文構(gòu)建的ERNIE-BiLSTM-CRF 模型在準(zhǔn)確率P、召回率R、F1值方面均取得了較好的效果。
命名實(shí)體識別方法大致可以分為以下3 類方法[6]。
這種方法的基礎(chǔ)是依靠人為制定句法、語法、詞匯模式和特定領(lǐng)域知識等各個方面的相關(guān)規(guī)則,在涉及字典不多的情況下可考慮使用這種方法。但特定領(lǐng)域規(guī)則、字典不完備導(dǎo)致召回率低。另外每個領(lǐng)域的準(zhǔn)則一般都是不通用的,換一個領(lǐng)域就需要再次制定相關(guān)規(guī)則和字典,系統(tǒng)很難遷移使用。
將訓(xùn)練集中含有的語義信息統(tǒng)計(jì)分析,從中挖掘出各種詞、上下文和語義等相關(guān)特征[7],這種方式對選取特征方面要求比較高,受語料庫制約,大規(guī)模通用的語料庫較少[8]。
在這種學(xué)習(xí)方法中命名實(shí)體識別被當(dāng)成序列標(biāo)注處理,通過大量語料學(xué)習(xí)出標(biāo)注模型,標(biāo)注句子的每個位置[9]。
基于深度學(xué)習(xí)方法的優(yōu)點(diǎn)有:命名實(shí)體識別時(shí)基于深度學(xué)習(xí)非線性的特性,由輸入至輸出形成非線性映射。深度學(xué)習(xí)模型能夠基于大量的數(shù)據(jù)使用非線性激活函數(shù)學(xué)習(xí),從而獲取復(fù)雜度更高的精致的特征;深度學(xué)習(xí)不會涉及很高復(fù)雜度的特征工程[10],能夠在輸入的文本里自動發(fā)掘信息并且學(xué)習(xí)信息的表示,這樣自動學(xué)習(xí)的效果相較于傳統(tǒng)方法也是有優(yōu)勢的;深度命名實(shí)體識別模型是端到端的,避免流水線類模型中國年各模塊間誤差傳播,能夠承載復(fù)雜度更高的內(nèi)部設(shè)計(jì),得到更好的效果。
文中提出的ERNIE-BiLSTM-CRF 模型由3 部分組成,具體結(jié)構(gòu)如圖2。
圖2 ERNIE-BiLSTM-CRF 模型結(jié)構(gòu)
(1)ERNIE 層:在ERNIE 層預(yù)訓(xùn)練處理過的土壤肥力數(shù)據(jù)集,將輸入的文本向量化;(2)BiLSTM 層:在BiLSTM層訓(xùn)練ERNI 預(yù)訓(xùn)練模型輸出的向量化標(biāo)簽,提取出文本特征,將一切可能的標(biāo)簽序列評分并輸出;(3)CRF 層:在CRF 層解碼BiLSTM 層輸出的所有標(biāo)簽序列并獲取其中分值最高的標(biāo)簽序列,此最優(yōu)標(biāo)簽序列做為模型的最終輸出,即為最終的實(shí)體標(biāo)簽序列。
最初很長一段時(shí)間內(nèi),在自然語言處理方面,都是利用Word2Vec 等詞向量的方法處理文本編碼需求。但這種這種處理后的文本上下文是沒有關(guān)聯(lián)的,這樣在進(jìn)行自然突然處理任務(wù)的時(shí)候就非常局限。另外,有些詞會有多種表達(dá)意思,使用這種方法進(jìn)行預(yù)訓(xùn)練,后期也無法解決表達(dá)具體意思的問題。為了解決一個詞語會有多種表達(dá)意思的問題,ELMo 率先設(shè)計(jì)出一種可以表達(dá)文本上下文間關(guān)聯(lián)的方法。再后來,諸如GPT、BERT 之類的預(yù)訓(xùn)練模型也陸續(xù)出現(xiàn),自然語言處理進(jìn)入動態(tài)預(yù)訓(xùn)練技術(shù)時(shí)代[11]。
近期,針對BERT 模型只學(xué)習(xí)與語言文本相關(guān)的信息,并沒有把知識信息整合其中的問題,清華大學(xué)與華為的研究學(xué)者設(shè)計(jì)了ERNIE 模型,該模型利用知識圖譜提升預(yù)訓(xùn)練效果[11]。在知識驅(qū)動型的任務(wù)中ERNIE 預(yù)訓(xùn)練語言模型的效果會比BERT 模型更好。因此,結(jié)合文中需要處理土壤肥力信息并用于安徽省土壤肥力知識問答系統(tǒng),選擇通過ERNIE 處理土壤肥力語料,能夠?qū)⑸舷挛呐c知識實(shí)體的信息同時(shí)聚合,構(gòu)建知識化語言表征模型。
ERNIE 預(yù)訓(xùn)練語言模型的結(jié)構(gòu)如圖3。ERNIE 是基于多層雙向transformer 編碼器構(gòu)建,使用的是全attention 機(jī)制[12]。attention 機(jī)制與人為分析句子的方式比較相似,主要按照關(guān)鍵信息點(diǎn)來分析理解整句話表達(dá)的意思,使用的原理是
圖3 ERNIE 模型結(jié)構(gòu)
公式(1)里,Q,K,V 表示輸入字向量矩陣;dk表示輸入向量的維度。
計(jì)算時(shí),transformer 編碼器采用一個計(jì)算步驟把句子里任何兩個詞進(jìn)行聯(lián)系,再將所有的詞表示通過加權(quán)求和,權(quán)重則通過softmax 層將此詞表示和被編碼的詞表示進(jìn)行點(diǎn)積獲得[12],這樣就能夠很大程度地減小遠(yuǎn)距離依賴特征間距離,提升特征的有效使用率。
ERNIE 預(yù)訓(xùn)練語言模型經(jīng)過3 個掩碼階段處理達(dá)到對實(shí)體概念知識的學(xué)習(xí)、強(qiáng)化句子里完整概念的語義表示的功能[13]。
(1)基本遮蔽掩碼階段。把每個句子當(dāng)作基本的語言單位序列,以每個字為單位施行遮蔽[13]。此階段只是在字的層面上施行的隨機(jī)性遮蔽,對高層語義還無法完全建模。
(2)短語級遮蔽階段。把每個句子中的短語當(dāng)作基本的遮蔽單位,以短語為單位施行遮蔽。選取句子里的短語,把其含有的每個字使用[mask]標(biāo)記和預(yù)測[14]。通過這種方式能夠較好地保留短語信息。
(3)實(shí)體級遮蔽階段。先分析每句話含有的命名實(shí)體,包含人員、地點(diǎn)、組織、產(chǎn)品等[14]。再通過隨機(jī)選取的方式,選取句子里的實(shí)體,對實(shí)體里每個字使用[mask]標(biāo)記和預(yù)測。
在通過上述3 個掩碼遮蔽處理之后,獲取的詞表示形式含有豐富的語義信息,句子里成分間的關(guān)聯(lián)性以及重要成分包含的語義信息都能夠較好地保存下來。
RNN(Recurrent Neural Network)結(jié)構(gòu)由輸入層、隱藏層和輸出層3 個模塊所組成[15]。相較于其他普通的神經(jīng)網(wǎng)絡(luò)結(jié)構(gòu),該結(jié)構(gòu)特別之處是它的隱藏層之間是前后相連接的。這種相對特別的網(wǎng)絡(luò)結(jié)構(gòu)能夠保存序列里前文信息,因此RNN 結(jié)構(gòu)常被使用在命名實(shí)體識別工作中[16]。RNN 結(jié)構(gòu)在處理序列數(shù)據(jù)時(shí)對數(shù)據(jù)長度并沒有進(jìn)行限制,但是過長的序列會導(dǎo)致梯度爆炸的情況[17]。為了防止這種情況的發(fā)生,Hochreiter 等在傳統(tǒng)的RNN 結(jié)構(gòu)的基礎(chǔ)上設(shè)計(jì)了LSTM(Long Short-Term Memory)網(wǎng)絡(luò)[18]。
LSTM 單元結(jié)構(gòu)在傳統(tǒng)RNN 基礎(chǔ)上進(jìn)行了優(yōu)化,是由輸入門、遺忘門及輸出門3 個門單元模塊組成[13],其具體的結(jié)構(gòu)如圖4 所示。
圖4 LSTM 單元結(jié)構(gòu)
LSTM 結(jié)構(gòu)處理數(shù)據(jù)時(shí)把前一刻的輸入做此刻的輸出,再利用Sigmoid 激活函數(shù)來激活輸入的數(shù)據(jù),3 部分的公式分別如下:
公式(2)(3)(4)中,it、ft、ot依次表示LSTM 單元結(jié)構(gòu)中輸入門、遺忘門和輸出門3 個門單元,σ 表示Sigmoid 激活函數(shù),xt是輸入的字符向量表示,ht-1表示LSTM 結(jié)構(gòu)上個時(shí)刻隱藏層狀態(tài),Ct-1表示LSTM 結(jié)構(gòu)上個時(shí)刻的細(xì)胞狀態(tài),b 則表示偏置向量。細(xì)胞狀態(tài)的更新公式如下:
公式(5)中,·為逐元素乘法,tanh 函數(shù)即為雙曲正切激活函數(shù)。LSTM 單元隱藏層狀態(tài)的更新過程公式如下:
由上可知,一個LSTM 單元結(jié)構(gòu)針對的都是上個時(shí)刻的狀態(tài),這樣處理僅學(xué)習(xí)到文本里的歷史信息,無法學(xué)習(xí)到未來信息。但是,在實(shí)體識別工作中,實(shí)體的標(biāo)簽不僅會有歷史信息的影響,未來信息也會影響實(shí)體的標(biāo)簽。為了學(xué)習(xí)到文本里的歷史信息和未來信息,該試驗(yàn)在這一階段選用BiLSTM 模型,模型結(jié)構(gòu)如圖5 所示。
圖5 BiLSTM 結(jié)構(gòu)
該試驗(yàn)使用BiLSTM 模型將上一步驟中ERNIE 預(yù)訓(xùn)練的輸出作為輸入,對其進(jìn)行正向LSTM 訓(xùn)練與反向LSTM 訓(xùn)練,分別獲得和2 個向量,再將這兩個向量拼接,這樣得到BiLSTM 輸出序列既能夠?qū)W習(xí)到文本中的歷史信息,又能夠?qū)W習(xí)到文本中的未來信息,比單獨(dú)的LSTM更加充分地提取文本特征。
如圖6 所示,通過BiLSTM 層處理后,并不能獲取標(biāo)簽出現(xiàn)順序等限制關(guān)系并且輸出的標(biāo)簽也不能組成完整的實(shí)體序列標(biāo)簽。所以還要在預(yù)測過程中引入各標(biāo)簽的限制關(guān)系。
圖6 BiLSTM 輸出標(biāo)簽
CRF 屬于一種概率化無向圖模型。利用CRF 可以在預(yù)測過程中引入標(biāo)簽之間的限制關(guān)系,以保證最后輸出標(biāo)簽的合理性[16]。具體做法是,假設(shè)X={x1,x2,…,xn}、y={y1,y2,…,yn}分別是BiLSTM 層輸入和對應(yīng)輸出的序列。計(jì)算標(biāo)簽序列得分的公式如下:
公式(7)中,W 是轉(zhuǎn)移矩陣,yi是xi對應(yīng)的輸出,yi+1是xi+1對應(yīng)的輸出,Wyi,yi+1是表示標(biāo)簽從yi轉(zhuǎn)移到y(tǒng)i+1的得分,Pi+1,yi+1表示輸入序列第i+1 個字對應(yīng)標(biāo)簽yi+1的得分。再對標(biāo)簽序列y 的概率進(jìn)行計(jì)算,計(jì)算公式如下:
公式(8)中,YX是一切可能標(biāo)簽組成的集合。計(jì)算出概率最大的標(biāo)簽集合,將其做為最終的輸出序列標(biāo)簽。
該試驗(yàn)涉及數(shù)據(jù)集為土壤肥力數(shù)據(jù)集。土壤肥力數(shù)據(jù)集是根據(jù)中國知網(wǎng)1980 年1 月至2021 年7 月間的學(xué)術(shù)期刊文獻(xiàn),通過過濾條件“SU=(土壤)×(肥力+測土配方+土壤養(yǎng)分+全氮+全磷+全鉀+pH+有效磷+有效氮+有機(jī)質(zhì)+黏粒+砂粒+粉粒)NOT TI=(訂閱+訂購+征文+征稿+稿約+聲明+啟事+通知+須知+通訊+論文索引)”篩選出包含土壤肥力十大指標(biāo)數(shù)值的文獻(xiàn),并存為UTF-8純文本格式。將其中地址、數(shù)值、關(guān)系進(jìn)行標(biāo)注。試驗(yàn)中,訓(xùn)練集使用720 條,驗(yàn)證集使用180 條,測試集使用90 條。
ERNIE-BiLSTM-CRF 模型在處理短文本命名實(shí)體識別上具有很大的優(yōu)勢,但是在處理長文本實(shí)體識別上效果就沒有那么好。~因此在試驗(yàn)前需要將大量的土壤肥力長文本進(jìn)行處理,提取出數(shù)據(jù)集長文本里對試驗(yàn)有用的語句,去除其中的無關(guān)語句。
假如有一段這樣表述的長文本:“試驗(yàn)地區(qū)選在安徽省長豐縣崗集鎮(zhèn)周山村,時(shí)間為2020 年,該區(qū)原土壤養(yǎng)分如表2。xxxxxx,xxxxx。由圖3 可知,試驗(yàn)處理后的土壤pH為5.01,處理之后pH 下降。”其中“xxxxxx,xxxxx”代表中間還有很多漢字。
通過這段長文本內(nèi)容,找到“安徽省長豐縣崗集鎮(zhèn)周山村”這種地址字符串,一直循環(huán)下去,直到找到最近的句號,立即停止,這樣就可以獲得“試驗(yàn)地區(qū)選在安徽省長豐縣崗集鎮(zhèn)周山村,時(shí)間為2020 年,該區(qū)原土壤養(yǎng)分如表2?!边@樣含有地址的文本。之后再循環(huán)剩余的句子,找到類似“5.01”這種數(shù)值字符串,同樣,在遇到句號立即停止循環(huán),這樣循環(huán)得到最終的“由圖3 可知,試驗(yàn)處理后的土壤pH 為5.01,處理之后pH 下降。”這樣含有數(shù)值的文本。再將獲得的文本進(jìn)行拼接,得到一段新的短文本“試驗(yàn)地區(qū)選在安徽省長豐縣崗集鎮(zhèn)周山村,時(shí)間為2020 年,該區(qū)原土壤養(yǎng)分如表2。由圖3 可知,試驗(yàn)處理后的土壤pH 為5.01,處理之后pH 下降?!?/p>
通過上面的方法,可以將數(shù)據(jù)集中長文本處理為短文本,如表1 所示,與開始的長文本對比,去除了其中許多無用的文本,只提取其中與試驗(yàn)相關(guān)的短文本。再使用ERNIE-BiLSTM-CRF 模型進(jìn)行土壤肥力命名實(shí)體識別,極大地降低了長文本的干擾,提高試驗(yàn)的有效性。
表1 長文本處理后得到的短文本
該試驗(yàn)環(huán)境見下表2。
表2 試驗(yàn)環(huán)境
ERNIE-BiLSTM-CRF 模型參數(shù)設(shè)置見表3。
表3 模型參數(shù)
在該試驗(yàn)中,通過準(zhǔn)確率P、召回率R、F1值這3 個通用指標(biāo)評價(jià)土壤肥力命名實(shí)體識別的試驗(yàn)效果。3 種評價(jià)指標(biāo)越高,代表模型的準(zhǔn)確率、召回率和綜合性能越好。各評價(jià)指標(biāo)的計(jì)算公式為:
為了驗(yàn)證試驗(yàn)結(jié)果,通過長文本處理數(shù)據(jù)集后,再分別使用HMM 模型、CRF 模型、BiLSTM 模型、BiLSTM-CRF模型、ERNIE-BiLSTM-CRF 模型的土壤肥力命名實(shí)體識別實(shí)驗(yàn),結(jié)果見表4。由試驗(yàn)結(jié)果數(shù)據(jù)可知,文中使用的ERNIE-BiLSTM-CRF 模型在正確率、召回率和F1值都高于其他幾個模型,并且分別達(dá)到92.85%、92.00%、92.59%,取得了均高于92%的數(shù)值,文中使用的ERNIE-BiLSTM-CRF模型在處理土壤肥力命名實(shí)體識別中有很大的優(yōu)勢。
表4 不同模型的試驗(yàn)結(jié)果
針對傳統(tǒng)土壤肥力解析方法效率低、遷移能力差、長文本處理的問題,文中提出了ERNIE-BiLSTM-CRF 模型。為了達(dá)到更理想的土壤肥力命名實(shí)體識別,在使用模型前,將土壤肥力數(shù)據(jù)集中長文本處理為短文本。ERNIE-BiLSTM-CRF模型首先通過ERNIE 預(yù)訓(xùn)練模型生成基于上下文語義的字向量,提升了字向量的表征能力,再通過BiLSTM 層學(xué)習(xí)向量特征,最后通過CRF 層解碼得到最優(yōu)標(biāo)簽序列,提升土壤肥力命名實(shí)體識別的效果。文中模型處理了長文本命名實(shí)體識別問題,并且不需要人為制定相關(guān)規(guī)則、特征模板,實(shí)驗(yàn)結(jié)果取得了最高的F1值,為92.59%,能夠有效識別出土壤肥力的各種實(shí)體信息。本研究還利用本文提出的模型構(gòu)建土壤肥力知識圖譜,把分散的土壤肥力數(shù)據(jù)利用起來。下一步工作計(jì)劃,檢驗(yàn)文中模型在實(shí)際使用效果,根據(jù)使用情況進(jìn)一步改進(jìn)算法。另外持續(xù)地搜集新的土壤肥力數(shù)據(jù),更新數(shù)據(jù)集,提供更加準(zhǔn)確的土壤肥力數(shù)據(jù)以及更加科學(xué)的施肥建議。