劉合兵,張德夢,熊蜀峰,馬新明,席 磊+
1.河南農業大學 信息與管理科學學院,鄭州450046
2.農田監測與控制河南省工程實驗室,鄭州450002
小麥是全球最重要的糧食作物之一。在小麥種植過程中,會出現各種各樣的病蟲害,病蟲害的發生將直接影響小麥的產量和品質。小麥病蟲害防治的相關信息存在于海量非結構化的專業書籍和文獻中,人們無法快速獲取到準確的病蟲害防治信息,無法進行精準預防。構建小麥病蟲害領域知識圖譜,以結構化的形式表述病蟲害和防治藥劑數據,可以幫助人們高效準確地定位到有價值的信息,對小麥病蟲害的精準防治具有重要意義。小麥病蟲害命名實體識別是構建小麥病蟲害領域知識圖譜的關鍵步驟,旨在從這些非結構化數據中識別和分類出相關命名實體,識別結果的好壞直接決定知識圖譜的質量[1-2]。
近年來,命名實體識別(named entity recognition,NER)已廣泛應用于垂直領域,并且隨著深度學習的發展,基于深度學習的方法成為中文命名實體識別的主流模型。劉新亮等[3]提出BERT(bidirectional encoder representation from transformer)與CRF(conditional random field)相結合的模型,實現了生鮮蛋供應鏈領域的命名實體識別,準確率達到91.82%。羊艷玲等[4]將BiLSTM(bi-directional long short-term memory)與CRF 結合實現了中醫案例領域的命名實體識別。許力等[5]提出基于BERT-BiLSTM-CRF(bidirectional encoder representation from transformer+bidirectional long short-term memory+conditional random field)模型,進行生物醫學領域的命名實體識別,有效地解決了靜態詞向量表征語義識別準確率不高的問題。沈同平等[6]提出基于BERT-BiLSTM-CRF 模型,在MSRA和人民日報語料庫均取得優異結果。上述模型在其領域訓練語料充足的情況下均達到了很好的識別效果,但無法直接用于語料匱乏的小麥病蟲害領域。
在農業領域,Malarkodi等[7]、Guo等[8]通過卷積神經網絡(convolutional neural network,CNN)提取文本的局部特征,再結合BiLSTM+CRF 模型實現農業病蟲害領域的命名實體識別。閆麗華[9]、于合龍等[10]使用BiLSTM+CRF模型分別實現對葡萄病蟲害和水稻病蟲害的命名實體識別。文獻[7-10]中的方法均取得了不錯的結果,但傳統詞向量模型易受分詞結果的影響,無法表征一詞多義現象。李悅[11]、任妮等[12]、鄭泳智等[13]將BERT 預訓練語言模型和BiLSTM+CRF 模型相結合,實現農業病蟲害領域的命名實體識別。文獻[11-13]中使用BERT 代替傳統的詞向量模型,有效地降低了分詞錯誤帶來的影響,解決了一詞多義問題,但是BERT 模型依賴上億級的參數量,訓練耗時長、成本高。
以上垂直領域命名實體識別方法為本文開展小麥病蟲害領域的實體識別提供了參考,但這些文獻通常只識別病害、蟲害、品種、防治藥劑和危害部位等實體類別,在其類別較少的情況下識別效果較好。目前,在農業病蟲害領域命名實體識別的研究中,缺乏對實體語料庫的研究,該領域存在訓練數據匱乏、實體類型多樣、實體結構復雜及實體分布不均勻等問題,以上實體類別無法充分提取文本中隱含的信息,不足以說明農業病蟲害領域的命名實體問題。
為了解決小麥病蟲害領域的命名實體識別問題,本文構建了小麥病蟲害命名實體識別語料庫(wheat pests and diseases Chinese named entity recognition,WpdCNER)和小麥病蟲害領域詞典(wheat pests and diseases dictionary,WpdDict),并提出一種融合規則的深度學習模型WPD-RA(wheat pests and diseaserules amendment model),該模型采用輕量級動態詞向量模型ALBERT(a lite bidirectional encoder representation from transformer)與BiLSTM-CRF 模型相結合的策略。針對病原、麥區等實體類別數據較少的問題,本文提出兩種數據增廣方法,通過相似詞替換來補充句子語義,以彌補訓練數據的匱乏,有效地提高了小樣本的情況下小麥病蟲害命名實體識別的結果。針對防治藥劑、癥狀等邊界模糊的特殊實體定義具體規則來校準實體邊界,進一步提高模型整體識別結果,從而為小麥病蟲害知識圖譜構建和小麥病蟲害知識問答等下游任務提供支撐。
針對小麥病蟲害命名實體識別的研究,本文通過語料采集與預處理、語料標注兩個步驟構建小麥病蟲害領域的實體語料庫WpdCNER。
1.1.1 語料采集與預處理
為了保證數據正確可靠,小麥病蟲害數據來源于兩部分:一是《小麥病蟲害識別與防治》和《小麥病蟲害診斷與防治圖譜》兩本權威書籍;二是通過爬蟲從中國作物種質信息網、國家農業科學數據中心、百度百科等權威網站抓取的數據。首先通過OCR(optical character recognition)識別算法對兩本書籍作電子化和文本格式轉換處理,人工修改錯別字和亂碼;其次人工對網頁數據去除空格、空行及特殊符號;最后去除重復數據和無效數據,最終構建了包含病害、蟲害、防治措施等6 000多條樣本的數據集,約22萬字符。
1.1.2 語料標注
在領域專家的指導下,深入剖析小麥病蟲害的數據本身特征,充分挖掘其隱含知識,將小麥病蟲害實體類別細粒度劃分為16 類,以保證WpdCNER 實體類別的完整性,包括病害、蟲害、害蟲生育期、病原、病原類型、小麥器官、防治藥劑、小麥生育期、小麥品種、麥區、癥狀、器官癥狀、危害作物、危害地區、屬目、屬科。
使用BIO(begin inside outside)標記方案對小麥病蟲害原始語料庫WpdCNER 進行標記。特定領域實體識別語料標注任務常采用純人工標注的模式,這種標注模式效率低、錯誤率高[14]。為了降低標注成本,保證實體標注的一致性,本文采用基于詞典匹配與人工修正相結合的半自動標注方式,構建小麥病蟲害實體識別語料庫。首先,結合領域專家知識,在數據預處理的過程中提取公共實體及其同類詞,構建了一個包含4 125 個實體名和實體標簽的領域詞典WpdDict。其次,根據構建的領域詞典WpdDict對原始語料庫進行字符匹配,實現自動標記實體。最后,針對詞典匹配結果中出現的標注錯誤、漏標實體等問題,通過人工修正的方式進一步調整和改進,并在此過程中動態更新領域詞典WpdDict。具體的標注過程如圖1所示。
經過以上處理,最終構建了小麥病蟲害實體識別語料庫WpdCNER,包含16類實體類別11 670個實體,各實體類別的數量分布如表1所示。標注示例如表2 所示,其中B-表示實體的起始位置,I-表示實體的中間或終止位置,O表示非實體。

表2 BIO標注示例Table 2 Annotation example of BIO
1.1.3 語料特點分析
通過對小麥病蟲害語料庫WpdCNER 的全面剖析,發現該領域命名實體的特點主要體現在以下四方面:
(1)小麥病蟲害語料庫中部分實體邊界特征不明顯,容易拆分錯誤。例如,“33%多·酮可濕性粉劑”。
(2)小麥病蟲害實體結構復雜,部分實體由數字、字母和漢字共同組成。例如,“鄭州8915”“5%溴氰菊酯乳油”等實體。
(3)小麥病蟲害語料庫中部分實體之間存在嵌套情況。例如,病原實體“小麥紅矮病毒”中嵌套病害實體“小麥紅矮病”等。
(4)小麥病蟲害語料庫包含的實體類別多。構建的語料庫WpdCNER 包含16 類實體,多于同一領域語料庫JE-DPW[15]。
本文采用基于數據增廣的WPD-RA 模型進行小麥病蟲害命名實體識別,該模型采用ALBERTBiLSTM-CRF與規則修正相結合的策略,模型總體架構如圖2所示。

圖2 基于數據增廣的WPD-RA模型總架構Fig. 2 Overall architecture of WPD-RA model based on data augmentation
首先針對病原、麥區等數量較少的實體類別作數據增廣以擴充其語義信息,并將增廣后的語料庫WpdCNER作為ALBERT的輸入;其次通過輕量級預訓練模型ALBERT生成包含上下文信息的動態詞向量,有效緩解了一詞多義問題;同時為了提升ALBERT層輸出特征的準確度,將該詞向量輸入到BiLSTM層進一步建模上下文特征;最后通過CRF 和規則共同對BiLSTM層輸出的序列標簽進行約束和修正,得到最終的預測標簽序列。
1.2.1 數據增廣
近年來,基于深度學習的實體識別方法已廣泛應用于很多領域,但是深度學習模型需要大量的訓練數據。在小麥病蟲害領域,由于訓練數據匱乏、實體結構復雜、實體類型多樣及實體分布不均勻等問題,該領域命名實體識別的研究具有一定挑戰性。目前,面向少量標注數據的命名實體識別方法分為知識鏈接(knowledge linkage)、遷移學習(transfer learning)、數據增廣(data augmentation,DA)、特征變換(feature transformation)這4 類[16]。針對特定領域的實體識別任務,數據增廣是應用最廣泛的一種數據擴充方法[17]。該類方法采用的策略是篩選出高質量訓練樣本擴充數據集規模,豐富句子的語義信息,進而彌補標注數據的匱乏。
因此,針對小麥病蟲害領域命名實體識別存在的問題,在確保不丟失句子語義信息的前提下,提出兩種改進的數據增廣方法,其主要思想是在傳統數據增廣的基礎上,將增廣后的文本重新復制回原數據集,進而增加目標實體的數量,豐富訓練樣本的多樣性,擴充數據集規模,提高小麥病蟲害領域命名實體的識別結果。
(1)數據增廣方法1,簡稱DA1:最大限度保證句子序列完整性的情況下,隨機打亂原數據集中的文本段落,并將打亂后的段落重新復制回原數據集。該方法的主要目的是為了擴充數據集規模,豐富訓練樣本多樣性,增加實體數量。
(2)數據增廣方法2,簡稱DA2:從小麥病蟲害文本數據中隨機選擇一個實體,然后從自建的領域詞典WpdDict 中隨機選擇該實體的一個同義詞進行替換,并將替換后的文本數據復制回原數據集。該方法的目的是為了豐富上下文的語義信息,擴充訓練樣本。
1.2.2 ALBERT層
在NLP(natural language processing)領域中,將文本數據轉化為詞向量常用的語言模型有Word2Vec[18]、GloVe(global vectors for word representation)[19]、One-Hot 等模型,但上述模型訓練輸出的詞向量是靜態的,無法表征一詞多義的現象。
BERT是谷歌提出的一種預訓練語言模型,它是一種基于Transformer[20]神經網絡構造的雙向的編碼器網絡,不僅可以獲取到包含上下文信息的詞級特征,還能有效捕捉句子級別特征[21]。相比傳統的詞向量模型,由BERT模型訓練得到的詞向量是基于上下文信息生成動態詞向量,有效地解決了一詞多義的問題。盡管BERT在各項任務中的表現十分優異,但其參數量達到1.08×108,訓練時需要大規模語料,成本較高。
為解決BERT 參數量的問題,Lan 等[22]提出了一種輕量級預訓練語言模型ALBERT。在模型結構上ALBERT 與BERT 相差無幾,但參數量僅是BERT 的1/9。在保證BERT 模型性能的基礎上,它還作了以下三點改進,極大地減少了模型的占用空間,訓練速度明顯提升。
(1)對詞嵌入作因式分解:ALBERT 中先將One-Hot 向量映射到一個低維空間,再將其映射到隱藏層,BERT模型到ALBERT模型的參數量計算復雜度變換如式(1):
其中,V是詞匯表長度,H是隱藏層維度,E是詞嵌入維度。在BERT中E=H,而在ALBERT中,E?H。
(2)跨層參數共享:ALBERT 中在全連接層和注意力層均進行參數共享,也就是共享Encoder內所有的參數,極大地減少了模型參數量,提升了訓練速度,但模型參數量的減少使其性能也有所降低。
(3)句間連貫性預測:為了彌補參數量減少帶來的性能損失,ALBERT 提出句間連貫性預測(sentence order prediction,SOP)來提升模型性能。不同于BERT 模型原有的下一句預測(next sentence prediction,NSP)任務,SOP 去除了主題預測的影響,只保留關系一致性預測。
1.2.3 BiLSTM層
ALBERT 的Encoder 部分采用Self-Attention 機制,導致抽取的相對位置信息不準確,輸出的特征缺乏順序性。因此,本文采用BiLSTM模型進一步建模上下文特征。
LSTM(long short-term memory)[23]在RNN(recurrent neural network)的基礎上作了改進,有效地解決了長序列文本中出現的梯度爆炸或梯度消失的問題。然而,單向的LSTM 只能學習前向信息,而無法學習后向信息。因此,Graves等[24]提出由前向LSTM和后向LSTM 組成的BiLSTM。其基本思想是對序列中的每個詞都分別進行前向傳播和后向傳播,然后將結果連接起來輸出,進而更好地捕獲長序列文本的雙向信息。BiLSTM模型的結構如圖3所示。

圖3 BiLSTM模型Fig. 3 BiLSTM model
1.2.4 CRF層
雖然BiLSTM層能夠進一步學習上下文特征,但其未考慮相鄰標簽之間的依賴關系,總是選擇概率最大的標簽作為輸出,可能會出現B-lable1 后接Ilabel2 的情況。由于CRF 模型可以學習相鄰標簽之間的依賴關系,在BiLSTM 層之后,引入CRF 以提高模型預測的準確率。
CRF 由Lafferty 等[25]首次提出,主要用于序列標注。在模型訓練過程中,CRF 可以自動學習句子之間的約束,得到標簽轉移概率,進而保證預測標簽的合法性,減少錯誤的預測序列,具體約束有以下三點:
(1)句子中第一個詞總是以標簽“B-”或“O”開始,而不是“I-”。
(2)標簽“B-label1 I-label2 I-label3 I-…”,label1、label2、label3 應該屬于同一類實體。例如,“B-DIS IDIS”是合法標簽序列,而“B-DIS I-DRU”是非法標簽序列。
(3)實體的首個標簽應該以“B-”開始,而不是“I-”。例如,“O B-DIS”是合法標簽序列,而“O IDIS”是非法標簽序列。
在本研究中,CRF層主要是對BiLSTM層輸出的標簽序列進行條件約束,從而得到具有最大概率的合理序列。
1.2.5 規則修正
根據小麥病蟲害領域數據本身的特點,并全面剖析ALBERT-BiLSTM-CRF模型識別結果中預測錯誤的實體標簽,針對病害、蟲害、防治藥劑、器官癥狀4類實體,通過人工定義3類規則,本文對模型初步預測結果進行修正,旨在進一步提升這4類實體的識別結果,從而優化模型整體識別性能。規則之間是互補關系,不同時執行,具體規則如下:
(1)對于病害實體、蟲害實體,若其前邊出現危害作物實體,則將其整體修正為病害實體、蟲害實體;對于癥狀實體,若其緊鄰詞匯出現了器官實體,則將其整體修正為器官癥狀實體。
在規則修正過程中,以目標實體“病害、蟲害、癥狀”為中心,設置大小為1的滑動窗口,對上下文搜索1 個實體,若相鄰預測標簽是“危害作物、器官”類型實體,則查找對應規則將其整體修正為“病害、蟲害、器官癥狀”3 類正確實體;否則以原目標實體為準。具體規則如表3所示。

表3 病蟲害和器官癥狀規則Table 3 Rules of diseases and pests and organ-symptoms
(2)病害名稱常以“病”字結尾,將該類實體的最后一個字“病”與其緊鄰的下一個字進行拼接,若能作為一個整詞分割,則將其整體修正為病原實體;防治藥劑常由濃度和藥劑名稱組成,而濃度常由數字和符號組成,難以正確識別,人工編寫Regex將數字、符號和漢字作為整體識別。具體規則如表4所示。

表4 病害和防治藥劑實體規則Table 4 Rules of diseases and drugs
(3)對ALBERT-BiLSTM-CRF 模型所有的預測結果進行修正,如將“I-label”標記開頭的錯誤實體修正為“B-label”標記開頭;“B-label1 I-label2”中label1和label2屬于不同類型實體的錯誤預測,將其整體修正為label1類型實體。
實驗研究依賴的硬件環境是Intel?Xeon?Silver4116 CPU@2.10 GHz;軟件環境是Python3.6 和tensorflow1.14。模型參數設置如下:基于ALBERT_Base 版本,含有12 個transformer 層,768 維隱藏層和12 頭多頭注意力機制。最大序列長度為256,BiLSTM 包含256 維隱藏層,學習率為5E-5,訓練批次為64,dropout為0.5,clip為0.5,優化器選擇Adam,迭代次數為100。通過準確率(Precision,P)、召回率(Recall,R)和F1 值3 個指標來評測模型識別結果。具體公式如式(2)~(4)所示:
其中,TP表示預測正確的正樣本個數,FP表示預測錯誤的正樣本個數,FN表示預測錯誤的負樣本個數。
將構建的語料庫WpdCNER,按照8∶1∶1 的比例劃分為訓練集、測試集和驗證集。根據2.1節提出的3個評測指標來比較不同模型的識別結果。
2.2.1 不同模型的性能對比
針對劃分好的訓練集、測試集和驗證集,設置4組模型Word2Vec-IDCNN-CRF、Word2Vec-BiLSTMCRF、BERT-BiLSTM-CRF、ALBERT-BiLSTM-CRF分別進行實驗,實驗結果如表5所示。

表5 模型性能評價結果Table 5 Evaluation results of model performance 單位:%
從表5 可以看出,基于Word2Vec-BiLSTM-CRF的識別效果明顯優于Word2Vec-IDCNN-CRF,這是因為IDCNN 只能獲取局部特征,而BiLSTM 能獲取全局特征,在長文本序列的情況下,BiLSTM 的識別效果更好,該模型的準確率、召回率和F1值分別提升了2.04個百分點、3.71個百分點和2.88個百分點。以BiLSTM-CRF 為基準模型,比較Word2Vec 和BERT兩種向量嵌入模型。從表5可以發現,基于BERT模型的召回率提升了2.43 個百分點,F1 值提升了1.43個百分點,證明BERT 能有效表征一詞多義,提升模型識別效果。
在BERT 和ALBERT 兩個預訓練語言模型之間進行對比發現,基于ALBERT模型的整體表現更優,準確率和F1值分別提升了1.33個百分點和0.06個百分點。除此之外,BERT-BiLSTM-CRF模型迭代訓練100 次所需時間長達25.30 h,而ALBERT-BiLSTMCRF 的訓練時間為18.17 h,這說明參數量的減少使ALBERT模型的訓練速度有明顯提升。
2.2.2 不同DA方法識別結果對比
從2.2.1 小節中4 組模型的實驗結果來看,ALBERT-BiLSTM-CRF 模型在小麥病蟲害數據集WpdCNER中取得最高的F1值91.45%。本小節將在該模型基礎上,引入兩種數據增廣方法以擴展數據集WpdCNER的規模,增廣后的實驗結果如表6所示。

表6 數據增廣后模型總體性能Table 6 Model performance after data augmentation 單位:%
從表6可以看出,兩種數據增廣方法均能提高模型的整體識別結果。兩種方法的F1 值分別提升了1.02 個百分點和0.56 個百分點,說明DA1 對模型性能有更大的提升:一部分原因是DA1 在更大程度上增加了數據集規模;另一部分原因是DA1改變了文本結構,豐富上下文語義信息,提升了模型的泛化性。將兩種數據增廣方法結合后,ALBERT-BiLSTM-CRF模型在擴展后的WpdCNER上取得了最高的準確率、召回率和F1值,分別為93.01%、94.89%和93.94%。
2.2.3 各實體識別結果
結合兩種數據增廣方法對原數據集WpdCNER進行增廣后,基于ALBERT-BiLSTM-CRF 模型進行小麥病蟲害命名實體的識別,16 類實體具體的準確率、召回率和F1值如表7所示。

表7 各實體識別結果Table 7 Recognition results of each entity 單位:%
從表7 可以看出,害蟲生育期、小麥生育期、麥區、屬目、屬科的召回率均為100%,因為這5 類實體均有明確的邊界特征,分別以“蟲”“期”“區”“目”和“科”字結尾。病原類型、癥狀和器官癥狀的準確率均低于90%,因為這3 類實體靈活多樣難以識別。除了這3類實體,其他13類實體的準確率、召回率和F1值均高于90%,且屬目和屬科的F1值達到了100%,說明ALBERT-BiLSTM-CRF模型整體識別性能較好。
2.2.4 規則修正前后識別結果對比
從2.2.2 小節的識別結果來看,結合兩種數據增廣方法擴展數據集WpdCNER后,ALBERT-BiLSTMCRF 模型的識別結果最優。在此基礎上,加入1.2.5小節制定的規則,修正病害、蟲害、防治藥劑、器官癥狀4類實體的預測結果,以進一步提高這4類實體的預測結果,從而提升模型整體識別性能。
規則修正后模型識別準確率達到94.72%,召回率達到95.23%,F1 值達到94.97%,相比規則修正前準確率提升1.71 個百分點,召回率提升0.34 個百分點,F1值提升1.03個百分點,說明規則修正在一定程度上優化了模型識別性能,修正了部分預測錯誤的實體標簽,且修正正確的標簽數量多于修正錯誤的標簽數量。病害、蟲害、防治藥劑、器官癥狀4類實體的具體識別結果如表8所示。

表8 WPD-RA模型識別結果Table 8 Recognition results of WPD-RA model 單位:%
病害、蟲害、防治藥劑、器官癥狀4類實體加入規則修正前后的結果對比如圖4 所示。從圖4 中可以看出,對ALBERT-BiLSTM-CRF 模型定義規則修正后,蟲害、防治藥劑兩類實體的召回率并未改變,這是因為規則修正導致部分實體邊界預測錯誤,影響規則修正的結果。但4類實體的F1 值均有不同程度的提升,分別提升了1.24 個百分點、1.22 個百分點、1.22個百分點、1.7個百分點,其中器官癥狀的提升最明顯。

圖4 規則修正前后識別結果對比Fig. 4 Recognition result comparison before and after rule amendment
(1)針對小麥病蟲害領域命名實體識別任務中訓練數據匱乏、實體結構復雜、實體類型多樣及實體分布不均勻等問題,提出基于數據增廣的WPD-RA模型。該模型結合兩種數據增廣方法擴展句子語義信息,提升了模型對數量較少的實體類別的準確率,有效解決了小樣本情況下命名實體識別的問題,模型識別準確率為94.72%,召回率為95.23%,F1 值為94.97%。
(2)基于輕量級ALBERT 模型預訓練得到動態的詞嵌入向量,能夠捕獲實體上下文形態特征,豐富小麥病蟲害文本的語義表示,有效緩解一詞多義的表征問題,提升模型識別性能。
(3)定義具體規則修正ALBERT-BiLSTM-CRF模型的預測結果,通過實驗證明規則修正緩解了實體邊界模糊、實體間嵌套的問題,在一定程度上優化了模型性能。
與通用語料庫相比,本文構建的包含16 類實體類別的小麥病蟲害語料庫WpdCNER,對實體分類更精細。根據小麥病蟲害文本特點,有針對性地提出基于數據增廣的WPD-RA模型,實驗結果表明,與其他NER 模型相比,該模型能夠更好地識別小麥病蟲害領域命名實體,為食品安全、生物等其他領域命名實體識別提供了一種可借鑒的思路。