白皓然,孫偉浩,金寧,馬皓冉
(1. 青島農業大學機電工程學院,山東青島,266109; 2. 沈陽建筑大學研究生院,沈陽市,110168)
隨著信息技術的迅猛發展,特別是互聯網的普遍應用,為用戶帶來了豐富的信息知識,但如何從海量的互聯網信息中迅速且準確地獲取想要的信息,成為了目前的難題。同樣,在農業領域中,如何讓大量的農業信息更好地高效地為農業領域工作人員服務,也是目前農業信息化待解決的難題。Baidu和Google等傳統的搜索引擎[1],包含大量信息的同時,也有大量的廣告,使人難以分辨,效率低且速度慢。智能問答系統是人工智能和自然語言處理領域的研究熱點,讓計算機根據用戶提出的問題,定位搜索意圖,快速準確地獲得答案[2]。
如今,市面上已存在多種智能問答機器人,比如蘋果的Siri、華為的小E等,這類問答語音助手只能回答一些非專業問題,當被詢問特定領域的問題時,它們不能給出準確的回答。然而通過構建某一領域的知識圖譜,對該領域的知識進行結構化處理,就能夠有效地提高問答的實用性和準確性[3]。在農業信息化的大潮流下,眾多學者投身其中。李忠義等[4]對紫云英植被的相關文獻和研究現狀進行可視化分析,形成相應的學科知識圖譜。李忠義等[5]借助CiteSpace工具,對我國農業綠肥相關文獻分析總結,更直觀地描繪了我國農業綠肥研究樣貌。John等[6]將農業數字服務聚合平臺概念化為一種特殊形式的數字平臺,從行業層面提高了農業數字技術的價值。劉波等[7]搭建了湖南省農業農村信息化服務平臺,為信息化平臺的建設提供了新思路,推動了湖南省農業信息化服務發展進程。閆麗華[8]提出基于Bi-LSTM-CRF的知識圖譜概念構建模式,其性能優于HMM、CRF等傳統模型。Luo等[9]結合模糊大數據和LSGDM,優化了農產品供應鏈管理,為農業供應鏈研究提供了可靠依據。Qin等[10]提出了知識圖譜的智能自動和手動雙模構建方法,使圖譜更加規范和準確。目前知識圖譜應用在農業領域的應用還比較少,用戶想要查詢農作物相關知識、病蟲害治理方法等信息還是要借助傳統的搜索引擎,效率很低。因此,本文面向農業領域,構建知識圖譜,為農業問答系統研究提供了新思路。
知識圖譜的構建流程如圖1所示。

圖1 知識圖譜的構建流程
知識圖譜是一個大規模多關系的知識結構,可以看成是語義網的工程實現,主要是描述實體、概念及之間的關系[11]。知識圖譜的優勢在于實體多樣,關系清晰,同時也是大規模的知識庫,可以用于很多人工智能的任務。
由于目前還沒有開放的中文農業領域數據集可供使用,本文數據的來源主要是通過網絡爬蟲來獲取互聯網上的農業信息數據。本文爬蟲采用快速、高層次的Scrapy框架,爬取中國農業信息網、農業農村部網站上的開源農業信息,包括“農科講堂”“作物病蟲害”“會訊公告”“專題專欄”等標簽內的內容,獲得知識圖譜的各類節點,結合python進行數據的清洗和處理,將爬取到的內容經整理后,以json文件格式進行保存。本文爬取的農業數據庫語料大概有20 000條,基本滿足人們對農業領域信息的需求。表1列出了農業知識圖譜部分要素。

表1 農業知識圖譜部分要素Tab. 1 Some elements of the agricultural knowledge map
常見的圖數據庫存儲系統有Neo4j、InfoGrid、InfinteGraph等,本文采用Neo4j圖數據庫來儲存所建的農業知識圖譜,Neo4j是目前最流行的圖數據庫[11],對連接的數據進行檢索和遍歷是非常方便和快捷的,同時能夠很容易地表示半結構化數據,因此本文選用Neo4j來存儲構建的農業知識圖譜(圖2)。

圖2 知識圖譜中梨的關系圖
Neo4j圖形數據庫中的節點,關系和屬性在數據庫中彼此獨立存在。因此,必須引入一個索引才能有效地查詢數據。當前,常用LOADCSV方法將數據導入Neo4j[12]。雖然Neo4j本身是關于關系的索引,但為了加快數據檢索,需要對數據庫建立索引,所以本文對數據庫中的實體節點的屬性創建索引。以“梨”為例,本文知識圖譜中梨的關系如圖2所示。
在本文中,將農業信息問答系統分為知識圖譜構建模塊、問題預處理模塊以及答案生成模塊三個模塊[13],整體的架構如圖3所示。
知識圖譜構建模塊:數據經過預處理后,以(實體1,關系,實體2)、(實體,屬性,屬性值)的格式存入Neo4j[14]。
問題預處理模塊:本模塊是對用戶輸入的中文問題進行實體識別,得到問題語句關鍵詞[15]。然后經過問題分類器,把用戶問題近似看成分類問題,根據問題分類器的結果,選擇概率最大的確定問題類別。
答案生成模塊:本模塊是將分類問題通過的Cypher查詢模塊,在建立的知識圖譜中進行搜索查找,給出相匹配的答案。

圖3 智能問答系統流程圖
由于中文文字存在多義性,尤其是農業領域有一些名詞存在一詞多義現象[16],經典的實體識別模型不能很好地解決這類問題,因此本文提出改進的Bi-LSTM-CRF神經網絡模型,意在從詞向量入手,提高實體識別準確率,改進后的模型框架如圖4所示,在經典的命名實體識別框架Bi-LSTM-CRF架構上,結合基于語料庫預訓練的BERT模型,對字的混合語義表示進行建模,根據當前詞左右兩邊信息解決多義性問題,進而提高經典命名實體識別模型的性能。改進后的模型流程如下,首先經過預訓練的BERT模型,獲得問句中所有字的向量表示,然后將字向量作為輸入,在Bi-LSTM中語義編碼,最后再經過CRF層,輸出整體概率最大的實體標注序列。試驗表明,改進后的命名實體識別模型具有更好的識別效果,識別的準確率更高,從而驗證了本文改進模型的有效性和可行性。

圖4 基于改進Bi-LSTM-CRF的命名實體識別模型圖
在知識圖譜問答系統中,命名實體識別是最重要的任務[17],該任務是確定問題中的識別詞,以供在知識圖譜中搜索查詢。針對爬取的農業知識數據集,本文采用BIO(B-begin,I-inside,O-outside)實體標注方法,B表示實體的開頭,I表示實體的中間,O表示非實體[18]。
BERT模塊:BERT采用Transformer編解碼結構,結構如圖5所示,利用self-attention機制實現高效地并行化,改進了傳統RNN訓練速度慢的缺點。Self-attention通過將輸入矩陣X和訓練的權重矩陣W點乘來計算Q、K、V矩陣[19],通過式(1)得到Self-attention層的輸出,dk表示K向量維度。
(1)
將輸入矩陣X投影到不同表示的子空間中,可以有效地拓展模型關注不同位置的能力,同時transformer引入多頭機制連接attention輸出,并與矩陣W0相乘得到最終結果。
MultiHead(Q,K,V)=Concat(head1,head2,…,
headh)W0
(2)
(3)

圖5 BERT結構模型圖
Bi-LSTM模塊:Bi-LSTM的基本思想是對每個詞序列分別采取前向和后向LSTM,然后將同一個時刻的輸出進行合并。因此,每一個時刻,都對應著前向和后向的信息。
Bi-LSTM在本文實體識別中主要起以下兩個作用,第一,在農業語料庫預訓練的基礎上提取的包含農業領域文本特征的空間向量,經過BERT預訓練模型處理后,由Bi-LSTM接收;第二,Bi-LSTM模型能夠基于前后時序建模,從而進一步捕捉農業領域數據集文本的上下文信息,為農業領域實體識別任務提供了良好的特征提取手段。相比于其他深度學習模型,Bi-LSTM模型能夠同時捕獲文本數據的歷史信息和反向語義,其優異的上下文建模能力,為后續CRF層序列標注提供了有效的輸入。
CRF模塊:在命名實體識別任務中,CRF能通過鄰近標簽的關系獲得最優的預測序列,彌補Bi-LSTM無法處理相鄰標簽之間的依賴關系的缺點。對于任一個序列X=(x1,x2, …,xn),P是Bi-LSTM的輸出得分矩陣,大小是n×k,n為詞個數,k為標簽個數,Pij表示第i個詞的第j個標簽的分數,對預測序列Y=(y1,y2, …,yn)而言,分數函數
(4)
A是轉移分數矩陣,大小是k+2,Aij是標簽i轉移為標簽j的分數,預測序列Y產生的概率
(5)
兩頭取對數得到預測序列的似然函數
ln(p(Y|X))=s(X,Y)-ln(∑s(X,Y))
(6)
將農業領域常遇到的問題分類,在不同的類中,將用戶的各種問法抽象表示,例如將“蘋果樹腐爛病的治理方法是什么”抽象地分類到病害治理方法。問題類別集合為Y={y1,y2, …,yn},問題特征集合為X={x1,x2,…,xm},貝葉斯公式如式(7)所示。
(7)
樸素貝葉斯是基于貝葉斯定理與特征條件獨立假設的分類方法。用一組關鍵詞來表示數據集中某一類問題的特征,這組關鍵詞就是這類問題的特征向量X。輸入問句后,求出具有最大后驗概率P(yi|X)的類,即可確定問句的所屬分類。公式(7)的分母可以被認為是常數,因此,樸素貝葉斯公式
i=1,2,…,n
(8)
依據不同的問題分類,制定不同的答案模板,將Neo4j數據庫中查詢到的答案匹配到對應的回答模板中,例如“北京是什么氣候?”,經過預處理模塊被分類到“城市氣候”,在數據庫內查詢到答案“北溫帶大陸性季風氣候”,問題的答案是“北京的氣候是北溫帶大陸性季風氣候”。若答案不是單一的,系統會返回所有答案。例如“蘋果的植物學分類是什么?”在數據庫中查詢到答案,將其隔開成“薔薇科、蘋果屬、被子植物門、雙子葉植物綱、薔薇目、薔薇亞科等”。回答是“蘋果的植物學分類是薔薇科、蘋果屬、被子植物門、雙子葉植物綱、薔薇目、薔薇亞科等”。智能問答演示如圖6、圖7所示。

圖6 智能問答系統演示圖

圖7 智能問答系統演示圖
本試驗是基于Tensorflow平臺搭建,試驗配置環境如表2所示。

表2 試驗配置環境Tab. 2 Experimental configuration environment
訓練過程中,模型學習率設置為0.001,LSTM_dim為200,batch_size為64,max_seq_len為128,同時,在Bi-LSTM的輸入輸出中使用Dropout,取值為0.5,可以防止過擬合問題,模型的超參數設定如表3所示。本文采用前期爬取的農業領域相關信息作為實驗的數據集,共16 536句,將其按照7∶3劃分為訓練集和測試集,即11 575句為訓練集,4 961句為測試集。

表3 模型參數表Tab. 3 Model parameter table
為了更直觀地比較各模型的測試結果,本文使用精確率P、召回率R、F1值衡量模型的性能[20]。各個模型測試結果如表4所示。
(9)
式中:TP——識別出的正確的實體的個數;
FP——識別出的不正確的實體數;
Fn——未識別出的實體數;
P——識別出的正確實體數與識別出的實體數的比值;
R——識別出的正確實體數與樣本實體數的比值;
F1值——P和R的調和平均值。

表4 模型對比Tab. 4 Model comparison %
從模型對比試驗指標可以看出,BERT-CRF模型比CRF模型相比,F1值提高了2.63%,證明BERT經過多層雙向轉換解碼,在初始化隨機參數以及獲得字向量的語義表示方面具有一定的優勢;Bi-LSTM-CRF模型比CRF模型的F1值提高了4.27%,說明加入了神經網絡后,能夠利用雙向結構獲取上下文序列信息,獲得更好的實體識別效果;而將BERT-Bi-LSTM-CRF與Bi-LSTM-CRF模型相比,F1值提高了1.19%,從而證明了BERT模型能夠使預訓練的詞向量更好地表征不同語境下的語義信息,增強模型泛化能力,對農業領域實體識別效果有明顯的提升。
此外,在搜索問答時,輸入的問題通過樸素貝葉斯分類器進行分類。本文問題搜索的意圖分類試驗結果如表5所示。與其他分類算法對比,本文意圖分類使用的樸素貝葉斯算法在數據集中具有更高的準確性。對比結果如表6所示,樸素貝葉斯算法(NB)的F1值最高,比支持向量機(SVM)高14.4%,比決策樹算法(DT)高24.1%。

表5 搜索系統實體識別與意圖分析Tab. 5 Search system entity recognition and intention analysis

表6 意圖分類對比Tab. 6 Comparison of intention classification %
農業信息智能問答系統的整體使用技術路線圖如圖所示,由深度學習的卷積神經網絡和Django框架構成,構建了知識圖譜和問題的實體識別標注模型。數據庫使用關系型sqlite3和非關系型MongoDB數據庫儲存數據,Python作為網頁都見的服務端,基于Html、jQuery和Css(Cascading Style Sheets)搭建,其中Html是網站構建的超文本標記語言,jQuery是一個簡潔快速的框架,優化Html操作,CSS用來靜態地修飾網頁,對網頁各元素格式化;后端工作由Django以及深度學習Tensorflow和Keras實現。基于知識圖譜的農業信息智能問答系統網站技術路線圖如圖8所示。

圖8 基于Django的農業信息智能問答系統網站技術路線圖
本系統運行后,在本地http://127.0.0.1:8000/端口啟動服務器,點擊進入瀏覽器打開,會進入本系統農業信息智能問答首頁,如圖9所示,能夠實現實體識別、實體查詢、關系查詢以及農業知識問答等基本功能。

圖9 網站首頁
在本系統網頁端左側,點擊實體識別模塊,文本框內輸入內容如“蘋果樹的主要病害有蘋果白粉病、根腐病、褐斑病、腐爛病等,主要蟲害有葉螨類、蚜蟲、介殼蟲、金紋細娥、卷葉蛾和金龜子等”,點擊提交,在查看識別結果之下,可以看到本系統進行的農業實體識別,將鼠標停放在“蟲害”上,可以看到其實體類別屬于“自然災害”。
本文對農業領域知識圖譜的構建及改進Bi-LSTM-CRF模型在農業領域命名實體識別的研究,得到了以下結論與成果。
1) 采用Scrapy框架對開源網站上的農業信息進行爬取,然后對其進行數據清洗,經過實體抽取、關系抽取、屬性抽取等過程,最后通過LOADCSV方法將數據導入圖數據庫Neo4j中,構建農業領域知識圖譜。
2) 經過試驗驗證,改進后的BERT-Bi-LSTM-CRF模型具有較好的命名實體識別效果,其優勢在于能夠增強模型泛化能力,使預訓練的詞向量更好地表征不同語境下的語義信息,其精確率、召回率和F1值與傳統的Bi-LSTM-CRF模型相比分別提升了1.71%、0.65%和1.19%,達到了93.23%、91.08%和92.16%,起到了提高農業領域實體識別的效果。
3) 采用Python開發程序和Django框架網站構建,設計了農業信息智能問答系統,實現了農業領域實體查詢、實體分類、農業知識問答等功能,并最終以知識圖譜的形式展現,實現了農業知識的信息化和可視化,對農業的信息化發展具有一定的推動作用。