?

基于知識圖譜的農作物良種問答系統的設計與實現

2024-01-20 06:59李成林趙珍威李國厚侯志松
關鍵詞:爬蟲本體農作物

李成林,趙珍威,李國厚,侯志松

(河南科技學院信息工程學院,河南 新鄉 453003)

農業是國民經濟的基礎,是人類的衣食之源、生存之本[1].隨著全球人口的不斷增長,糧食供應和糧食安全問題變得日益嚴峻,已成為全球面臨的重要挑戰之一.在農業生產中,種子作為重要的生產資料,直接影響著農作物的生長、產量和質量[2].因此,在解決糧食供應和安全問題的過程中,選用高品質的種子,并對其進行科學的保護和繁育,是確保農作物高產優產的核心環節.

隨著基因編輯技術的發展,育種效率得到了顯著提高[3].但是,由于市面上農作物品種繁多,農戶缺乏相關知識,往往難以選擇適合當地生態環境種植的品種.針對這一問題,應當充分考慮農民對農作物品種信息獲取的需求,為其提供高效、準確的信息獲取渠道,以更好地促進農業生產的發展.傳統的農業信息獲取方式主要通過農業書籍、雜志、報紙等印刷媒體,或者利用搜索引擎、農業網站等網絡媒體獲取農作物品種相關信息.但是,這些方式在信息獲取效率、實用性、時效性等方面存在一些不足,難以更好滿足農民在農業生產過程中的信息需求.隨著信息技術的發展,問答系統為農民更好地獲取作物品種信息和種植知識提供了新的思路和方法[4].

近年來,在人工智能技術的支持下,問答系統逐漸應用到農業領域.例如,白皓然等[5]提出了一種改進的BiLSTM-CRF(Bidirectional Long Short-Term Memory- Conditional Random Fields,BiLSTM-CRF)模型,設計并開發了農業信息智能問答系統,實現了農業知識的信息化.薛慧芳[6]采用自然語言處理技術和機器學習技術,通過分析用戶的歷史提問記錄和搜索行為,建立了用戶偏好模型,利用模型對問題進行分類并推薦相應的技術.Chen Y 等[7]人利用自然語言處理技術和深度學習技術,自動識別非結構化文本中的農業實體,并構建知識圖譜,為農業領域的下游任務提供了參考依據.在水稻專家的指導下,Wang H 等[8]利用人工收集和公開數據兩種方式獲取水稻數據,并成功構建了水稻知識圖譜,為農民提供了更加全面的水稻種植技術指導.

雖然問答系統成為人機交互的重要方式,但現有的問答系統大多是基于自然語言處理技術,存在著語義理解和知識表示方面的局限性.相比之下,知識圖譜技術可以將數據和知識以圖譜的形式進行建模和表示,形成結構化、語義化的知識庫,為問答系統提供更加準確、全面的知識支持.然而,盡管基于知識圖譜的問答系統具有廣闊的應用前景和研究價值,但目前在農業相關研究方面相對較少,需要更多的探索和實踐.因此,本文基于知識圖譜構建了一個農作物良種問答系統,旨在幫助農民更好地選擇和種植適宜的農作物品種.本文的主要研究內容如下:①農作物品種知識圖譜的構建;②通過問題預處理模塊、問題分析模塊和問題求解模塊對用戶提出的問題進行分析和返回最佳答案;③農作物良種知識問答系統的設計與實現.

1 相關工作

1.1 Scrapy 爬蟲

Scrapy 是一個基于Twisted 異步網絡庫的爬蟲框架[9],提供了一組包括調度器、下載器、爬蟲序列、實體管道等組件.其框架如圖1 所示.

Scrapy 網絡爬蟲框架各流程功能如下:

Scrapy 引擎:引擎承擔著整個爬蟲系統的協調、調度和控制任務.它用于控制整個爬蟲系統的數據流處理,并觸發各種事務.

調度器:調度器用于管理爬蟲請求的順序、處理重復請求以及控制爬蟲速度等,通過將爬蟲生成的請求發送給下載器下載對應的頁面.

下載器:下載器是從互聯網上下載農作物品種網頁內容,為構建農作物品種知識圖譜提供數據源.

爬蟲序列:爬蟲序列是從特定的網頁中提取所需信息的規則集合,為爬蟲提供了數據抓取和處理的基礎.

項目管道:項目管道負責處理爬蟲從網頁中抽取的項目數據,為爬蟲的數據處理和存儲提供了關鍵支持.

1.2 知識圖譜

知識圖譜是一種表示和組織知識的方式,將現實世界中的實體、概念以及它們之間的關系抽象為可視化形式,從而構建一個系統、全面、準確的知識體系[10].知識圖譜已成為自然語言處理[11-12]、推薦系統[13-14]、智能問答[15-16]等領域中重要的研究方向,引起了學術界和企業界的廣泛關注.企業可以利用知識圖譜技術構建本身的知識圖譜,為用戶提供更精準、更智能的服務.例如,在搜索引擎領域[17],知識圖譜可以提高搜索準確率和檢索效率,為用戶快速找到自己需要的信息提供幫助.在醫學領域[18],知識圖譜可以幫助醫生快速準確地了解疾病的診斷、治療和預后,從而更好地支持臨床決策和醫療工作.在農業領域[19],農業人員可以獲得全面、精準、及時的農業知識.

1.3 BiLSTM-CRF 模型

BiLSTM-CRF 應用于自然語言處理領域,是一種結合了雙向長短時記憶網絡和條件隨機場的神經網絡模型,用于解決序列標注任務[20].BiLSTM-CRF 模型主體包括嵌入層、BiLSTM(Bidirectional Long ShortTerm Memory,BLSTM)層和CRF(Conditional Random Fields,CRF)層,模型圖如圖2 所示.

輸入層:模型的輸入為序列文本,本文使用農作物品種的字符序列作為輸入.

嵌入層:嵌入層的工作是將字符序列中的數據轉換為計算機可以處理的向量表示,為BiLSTM層做序列編碼的鋪墊.

BiLSTM層:BiLSTM層由前向LSTM層和后向LSTM層組成,它可以同時考慮前向和后向的上下文信息,從而更好地捕捉序列中的依賴關系和語義信息.BiLSTM層輸入的是嵌入層輸出的向量序列,輸出的是一個包含上下文信息的隱藏狀態序列,可作為CRF 層的輸入.

CRF 層:CRF 層用于對輸入序列進行標注,并考慮標簽之間的依賴性關系,以提高標注的準確性和泛化性.

輸出層:輸出層的功能是將BiLSTM層提取的上下文信息和CRF 層建模的標簽之間的依賴關系結合起來,生成對輸入序列進行標注的最終輸出標簽序列.

2 農作物品種知識圖譜構建

在構建農作物品種知識圖譜的過程中,通常采用由農業專家設計的本體模式來描述農作物品種的各種屬性和關系.本文結合了農業專家的指導,參考朱銀等[21]和Jarvis 等[22]在農業領域的工作,并在此基礎上增加了農作物品種特有屬性.為了保證知識圖譜的準確性,本文進行了本體層構建、數據預處理、知識抽取和知識融合等步驟.經過這些步驟,最終構建了農作物品種知識圖譜,為下游的問答系統提供了高質量的知識支持.農作物知識圖譜構建流程圖如圖3 所示.

2.1 本體層構建

本體構建的準確性和覆蓋性對整個知識圖譜的構建至關重要.本文根據農作物品種關鍵詞,結合農業專家的建議,考慮真實情況選出具有代表性的農作物品種的核心類目,然后使用本體構建工具,采用七步法進行農作物品種本體構建.具體步驟如下:

(1)確定農作物品種本體的構建范圍.根據農業專家的建議和需求分析確定構建本體的對象,以中國種業大數據平臺作為數據的主要來源,確定以農作物品種內容要素為研究對象.

(2)考慮復用現有的本體.在構建農作物品種本體之前,本文通過研究DBpedia 和Wikidata 中已有的農業本體,并根據我們的需求和目標進行篩選和修改,構建農作物品種本體.

(3)列出本體所涉及的農作物品種的重要術語.提取農業領域的專業術語的路徑主要有3 個:①從農業著作和論文等文獻中進行人工篩選;②從農業詞庫中提??;③從網頁中進行爬蟲.通過以上途徑獲取的專業術語經過農業領域專家的審核和確定,對農作物相關知識進行系統性的分析.

(4)定義分類概念和概念分類層次.本文使用混合的方法構建農作物品種知識圖譜.

(5)定義屬性和關系.本文通過定義屬性和關系,可以更加準確和詳細地描述農業領域的內部結構和成員之間的關系.

(6)定義本體屬性約束.在將農業加入到本體中時,可以通過定義本體屬性約束限制和規范農業領域內部屬性值的取值范圍和類型,以確保本體的準確性和一致性.

(7)構建農作物品種本體實例.完成對農作物品種本體類、對象屬性和數據屬性的添加,利用本體構建工具對農作物品種相關的審定內容、特征特性、農作物病害等實例和屬性值進行添加,最終形成農作物品種知識組織體系,如圖4 所示.

圖4 大豆品種本體建模設計Fig.4 Design diagram of soybean variety ontology modeling

圖4 為本文構建的大豆品種本體建模設計圖,小麥、玉米、水稻和花生與大豆品種本體建模設計類似.圖4 展示了每一種農作物品種的實體之間的關系,例如:大豆病害與發病階段之間存在“發病”的關系、審定內容與申請者之間存在“審定”關系等.

2.2 數據獲取與預處理

2.2.1 數據獲取本文通過Scrapy 框架在中國種業大數據平臺獲取了包括小麥、玉米、大豆、棉花和水稻5 種農作物在內的、共計1 634 個農作物品種數據.不同農作物的信息來源和數量如表1 所示.

表1 農作物信息來源和數量Tab.1 Crop information sources and number of varieties

2.2.2 數據預處理為構建農作物品種知識圖譜,本文采用爬蟲技術獲取大量文本數據.然而,由于這些數據存在繁體字、非文本信息、停用詞和單位量詞不統一等問題,因此為提高數據質量和準確性,本文對文本數據預處理的具體方法如表2 所示.

表2 數據預處理方法Tab.2 Data processing method

經過數據預處理,定義了5 類實體和69 個屬性,具體信息如表3 所示.其中第一行為小麥、玉米、大豆等5 種農作物的公共屬性,而第二至第六行分別為這些農作物各自的特有屬性.

表3 實體類型及其屬性表Tab.3 Entity types and their attributes

2.3 知識融合

多源異構的數據源能夠豐富知識圖譜的數據量,但數據源中經常存在許多重復、異名同義的實體.如果直接使用預處理后的數據構建知識圖譜,必然會產生知識沖突與冗余.為保證設計問答系統的準確性,需要通過知識融合相關技術對數據進行處理,獲取后的數據可以構建知識圖譜的數據.本文利用規則和實體對齊方法構建了一套農作物品種別名實體庫,并在此基礎上通過實體映射融合多源數據.本文使用的部分實體別名如表4 所示.

表4 部分實體別名表Tab.4 List of partial entity names

2.4 知識存儲及可視化

為了實現農作物品種知識圖譜的查詢和分析,本文采用適當的存儲和管理技術.Neo4j 圖數據庫是一種高效的知識圖譜存儲和管理技術,可以提高查詢和處理效率,優化知識圖譜的可視化效果.

Neo4j 采用Cypher 語言進行數據庫管理和查詢.為了構建農作物品種知識圖譜,將預處理后的數據按照Cypher 語句要求的CSV 格式進行轉換.轉換完成后,通過Python 的Py2neo 庫將整理好的CSV 文件導入Neo4j 圖數據庫中,從而完成農作物品種知識圖譜的構建.農作物品種知識圖譜局部結構圖如圖5 所示.

圖5 農作物品種知識圖譜局部結構圖Fig.5 Partial Structure Diagram of Crop Variety Knowledge Graph

圖5 為農作物品種知識圖譜局部結構圖.該知識圖譜包含了39 933 個實體節點,297 308 條關系.其中,a 為大豆品種,b 為農作物審定內容,c 為農作物特征,d 為種植技術,e 為大豆的特性.農作物品種知識圖譜提供了更好地了解農作物品種、特征和種植技術等信息,能夠為農業領域的數據分析、知識發現和智能決策等方面提供強有力的基礎數據支持.

3 基于知識圖譜的農作物良種問答系統

本文設計并開發的農作物良種問答系統總體架構圖如圖6 所示,主要包括前端和后端兩大模塊.前端模塊主要包括問題的輸入和答案的輸出;后端模塊主要包括問題預處理、問題分析和問題求解三部分.首先,對問題進行中文分詞、詞性標注和實體識別等預處理;其次,通過對用戶輸入的問題進行分類,根據分類的結果進行問句模板的匹配;最后,將匹配的問句模板,生成查詢語句,在Neo4j 圖數據庫中進行答案查詢并返回最終的答案.

圖6 農作物良種問答系統架構圖Fig.6 Architecture Diagram of Crop Elite Variety Question-Answering System

3.1 中文分詞

分詞是中文加工的第一步.它將一段連續的自然語言文本按照一定的規則或算法進行切割,將文本劃分為具有語義的單元.中文分詞是自然語言處理中的一個重要環節,為后面的詞性標注、句法分析及文本分析打下堅實的基礎.目前常見的分詞工具主要有Jieba、HanLP、NLPIR、LTP、THULAC 等.本文使用由清華大學自然語言處理與社會人文計算實驗室研發的THULAC 分詞工具[23]進行中文分詞和詞性標注.詞性標注示例表如表5 所示.

表5 詞性標注示例表Tab.5 Examples of part-of-speech tagging

3.2 農作物品種實體識別

中文分詞和詞性標注后,將標注好的數據輸入到BiLSTM-CRF 模型中[24].由于BIO 標注[25]提供模型需要的真實標簽,因此本文采用BIO 標注方案對農作物品種實體識別進行標注,其中B(Begin)代表的是一個實體的開始,I(Inner)代表的是一個實體的中間,O(Other)代表的是非實體.根據問答系統最后測評的準確率可以得出還需要進一步改進BiLSTM-CRF 模型.

3.3 語義依存分析

本文在農作物品種實體識別后,使用LTP-parser 對問句依存句法分析,得到問題與實體之間的關系.LTP-parser 是一種基于語言技術平臺的詞組分析工具,可以幫助用戶分析句子中的詞組,并獲取詞組的依存句法關系,從而更好地理解句子的含義.依存句法分析標注關系及含義如表6 所示.

表6 依存句法分析標注關系及含義Tab.6 Dependency parsing tagging relationship and meaning

如問題“中豆49 使用什么藥物來預防病害?”依存句法分析如圖7 所示.在農作物品種命名實體識別之后可得到“中豆49”品種實體,與“中豆49”實體關聯的動詞是“使用”,“使用”的賓語是“藥物”.動詞“使用”這個詞使“中豆49”與“藥物”之間建立了關系,形成了<中豆49,使用關系,藥物>的三元組.

圖7 依存句法分析Fig.7 Dependency parsing

3.4 問題分類

根據獲取到的農作物品種數據,本文將常見問題分為四類:審定信息類問題、品種特征類問題、品種病蟲害類和品種種植技術類問題.審定信息類問題主要回答“品種審定的基本信息”;品種特征類問題主要回答“品種的特性”;品種病蟲害類問題主要回答“品種生長過程中可能有哪些病蟲害”;品種種植類問題主要回答“品種種植過程中的栽培技術要點”.農作物品種問題分類如表7 所示.

表7 農作物品種問題分類表Tab.7 Classification of crop varieties

3.5 問題模板匹配

為了在農作物品種知識圖譜中查詢到問題的答案,將問題三元組轉換為問題類別分別對應的Cypher 查詢語句.農作物品種部分特征查詢模板如下:

(1)生育期類問題Cypher 查詢模板

MATCH(a:wcros)- [rel:生育期]->(b:wcros_growthperiod)where a.name="{name}" return b.growthperiod'

(2)穗粗類問題Cypher 查詢模板

MATCH(a:wcros)- [rel:穗粗cm]->(b:c_eardiameter)where a.name="{name}"return b.eardiameter'

(3)株高類問題Cypher 查詢模板

MATCH(a:wcros)-[rel:穗位高cm]->(b:c_spikeheight)where a.name="{name}"return b.spikeheight

(4)衣分類問題Cypher 查詢模板

MATCH(a:wcros)-[rel:衣分]->(b:co_ginningoutturn)where a.name="{name}"return b.ginningoutturn

(5)株型類問題Cypher 查詢模板

MATCH(a:wcros)- [rel:株型]->(b:wcros_planttype)where a.name="{name}"return b.planttype

3.6 答案生成

農作物品種問答系統利用Py2neo 模塊實現了Neo4j 數據庫的查詢接口,并使用Cypher 查詢語句在知識圖譜中查詢相關的三元組.根據用戶提出的問題類別,系統選擇不同的查詢模板,并根據查詢結果將最佳的答案返回給用戶.

4 實驗驗證

4.1 問答系統演示

本文面向農業領域開發了一種基于知識圖譜的農作物良種問答系統.該系統使用Flask 框架作為Web 框架,Neo4j 作為后端數據庫,主要使用Python 語言,可視化界面使用的技術是HTML、JQuery、CSS.問答系統界面如圖8 所示.用戶可以提問農作物品種相關的問題,系統將自動回答用戶提問的問題.

圖8 問答系統界面Fig.8 Interface of Question Answering System

4.2 系統性能分析

為了測試農作物品種問答系統的準確性,在專家指導下,設計了300 個與農作物品種有關的問題作為問答系統的測試數據,對系統返回的答案進行測評,以檢驗問答系統的性能.本文使用準確率進行分析.分析見式(1)

式(1)中:P 代表準確率,t 代表回答正確問題的條數,T 代表測試問句的條數.

農作物品種數據集下問答系統測評結果見表8.

表8 農作物品種數據集下問答系統測評結果Tab.8 Evaluation results of question and answer system under crop variety data set

通過表8 可知,在專家指導下設計的4 類問題中,審定信息類問題回答效果最好,品種特征類問題回答效果較差,系統的平均回答準確率為87.67%.分析得出,本文開發的問答系統能夠較好地回答農作物品種方面的問題.由于數據集中品種特征類問題的數據存在大量缺失值,因此該類問題的回答準確率較低.

5 結論

基于中國種業大數據平臺,通過數據預處理、本體構建和知識融合等步驟,本文構建了一個農作物品種知識圖譜.該知識圖譜包含了審定信息、品種特征、品種病蟲害等信息,結合BiLSTM-CRF 模型實體識別、LTP-parser 依存句法分析和Cypher 查詢語句等技術構建了一個農作物良種問答系統.該系統能夠根據用戶的需求和條件,推薦適合當地生態環境的良種.實驗表明,本文構建的農作物良種問答系統在回答準確性和推薦效率方面表現優異,回答準確率達87.67%,能夠滿足農戶的生產需求.未來的研究工作將進一步完善農作物品種知識圖譜,包括擴充數據集、增加屬性等.同時,不斷優化推薦算法,探索更加精細、個性化的推薦策略,提高系統的推薦準確性和效率,為提高農業生產效率做出更大貢獻.

猜你喜歡
爬蟲本體農作物
Abstracts and Key Words
高溫干旱持續 農作物亟須“防護傘”
利用網絡爬蟲技術驗證房地產灰犀牛之說
俄發現保護農作物新方法
夏季農作物如何防熱害
厲害了!農作物“喝”上環保酵素
基于Python的網絡爬蟲和反爬蟲技術研究
對姜夔自度曲音樂本體的現代解讀
利用爬蟲技術的Geo-Gnutel la VANET流量采集
大數據環境下基于python的網絡爬蟲技術
91香蕉高清国产线观看免费-97夜夜澡人人爽人人喊a-99久久久无码国产精品9-国产亚洲日韩欧美综合