






摘要:隨著“互聯(lián)網(wǎng)+農(nóng)業(yè)”的興起,計(jì)算機(jī)技術(shù)被廣泛應(yīng)用于大田農(nóng)業(yè)病蟲害防治中。以棉花病蟲害為研究對(duì)象,文章基于公開(kāi)的相關(guān)數(shù)據(jù),采用BiLSTM-CRF模型進(jìn)行實(shí)體識(shí)別,并進(jìn)行知識(shí)融合,構(gòu)建了棉花病蟲害知識(shí)圖譜。在此基礎(chǔ)上,文章進(jìn)一步結(jié)合VUE和Flask框架,設(shè)計(jì)并實(shí)現(xiàn)了一個(gè)智能問(wèn)答系統(tǒng)。系統(tǒng)采用AC自動(dòng)機(jī)和BiLSTM-CRF模型進(jìn)行問(wèn)句實(shí)體識(shí)別,使用BERT+CNN模型進(jìn)行意圖分類,將用戶問(wèn)句準(zhǔn)確映射到相應(yīng)的Cypher語(yǔ)句上,從而快速地檢索知識(shí)圖譜,為用戶提供所需的答案。
關(guān)鍵詞:棉花病蟲害;知識(shí)圖譜;問(wèn)答系統(tǒng)
中圖分類號(hào):S435.62;TP391.1文獻(xiàn)標(biāo)識(shí)碼:A
文章編號(hào):1009-3044(2024)34-0017-03開(kāi)放科學(xué)(資源服務(wù))標(biāo)識(shí)碼(OSID):
0引言
棉花是新疆支柱產(chǎn)業(yè)之一[1],而新疆棉花長(zhǎng)期受到嚴(yán)重的病蟲害困擾,產(chǎn)量和質(zhì)量影響嚴(yán)重。隨著“互聯(lián)網(wǎng)+農(nóng)業(yè)”的興起,新興的計(jì)算機(jī)技術(shù)被廣泛應(yīng)用于大田農(nóng)業(yè)病蟲害防治,但農(nóng)業(yè)安全關(guān)系重大,而傳統(tǒng)搜索引擎又存在難以準(zhǔn)確識(shí)別用戶意圖、精細(xì)化效果差,搜索結(jié)果真假參半等問(wèn)題。
因此,本文著力構(gòu)建一個(gè)基于知識(shí)圖譜的棉花病蟲害問(wèn)答系統(tǒng),旨在為農(nóng)民、農(nóng)業(yè)專家等提供更加準(zhǔn)確、有效的信息,幫助其更好地解決各種棉花病蟲害問(wèn)題,推動(dòng)新疆棉花的種植體系科學(xué)化、規(guī)模化發(fā)展。
1相關(guān)工作
高質(zhì)量的知識(shí)圖譜可以有效提高計(jì)算機(jī)理解和推理能力,因此知識(shí)圖譜被廣泛用于搜索引擎、智能問(wèn)答系統(tǒng)、推薦系統(tǒng)[2]等領(lǐng)域,在農(nóng)業(yè)、醫(yī)學(xué)、金融等學(xué)科發(fā)揮了重要作用[3-5]。此外,知識(shí)圖譜還可以應(yīng)用于數(shù)據(jù)挖掘、決策分析和知識(shí)發(fā)現(xiàn)等任務(wù)。總之,知識(shí)圖譜有著廣泛的應(yīng)用前景,為各行各業(yè)的智能化發(fā)展發(fā)揮了重要作用[6]。
棉花病蟲害智能問(wèn)答領(lǐng)域,依然存在若干亟待解決的問(wèn)題:棉花病蟲害相關(guān)語(yǔ)料較少;尚未有專門的棉花病蟲害知識(shí)圖譜及相應(yīng)的智能問(wèn)答系統(tǒng)。鑒于上述問(wèn)題,本文通過(guò)爬蟲技術(shù)獲取網(wǎng)絡(luò)上公開(kāi)數(shù)據(jù),以期為棉花病蟲害智能化防治提供新思路和新方法。
2棉花病蟲害知識(shí)圖譜構(gòu)建
2.1數(shù)據(jù)處理
本文的數(shù)據(jù)主要來(lái)自中國(guó)作物種質(zhì)信息網(wǎng)、百度百科、農(nóng)業(yè)病蟲草害圖文數(shù)據(jù)庫(kù)等公開(kāi)網(wǎng)站,本文利用基于Scrapy的Python爬蟲進(jìn)行數(shù)據(jù)爬取。本文采用正則表達(dá)式以及專家審核的方式清洗數(shù)據(jù),去除無(wú)關(guān)信息,并進(jìn)行去重和補(bǔ)全處理,保證數(shù)據(jù)的完整性和唯一性。在爬取的文本中,以句號(hào)為標(biāo)志進(jìn)行劃分,共得到1793條棉花病蟲害數(shù)據(jù),本文采用BIOES策略,對(duì)語(yǔ)料的實(shí)體進(jìn)行人工標(biāo)注。
2.2模式層構(gòu)建
模式層是知識(shí)圖譜結(jié)構(gòu)的抽象表示,定義了實(shí)體關(guān)系之間的結(jié)構(gòu)。本文采用混合構(gòu)建的方式設(shè)計(jì)模式層。通過(guò)分析棉花病蟲害致病機(jī)理和防治特點(diǎn),綜合考慮農(nóng)民需求及專家建議,最終構(gòu)建了圖1所示的模式層結(jié)構(gòu)。
2.3實(shí)體識(shí)別
爬取的數(shù)據(jù)中,主要分為結(jié)構(gòu)化數(shù)據(jù)、半結(jié)構(gòu)化數(shù)據(jù)以及非結(jié)構(gòu)化數(shù)據(jù)三大類。其中結(jié)構(gòu)化數(shù)據(jù)和半結(jié)構(gòu)化數(shù)據(jù)只需要運(yùn)用正則表達(dá)式簡(jiǎn)單處理即可。但其余絕大多數(shù)均以非結(jié)構(gòu)化數(shù)據(jù)存在。
目前,主流的處理方法是基于BiLSTM-CRF模型[7]進(jìn)行實(shí)體識(shí)別。本文將采用BIOES標(biāo)注的數(shù)據(jù)集,按照8∶2的比例隨機(jī)劃分為訓(xùn)練集和測(cè)試集。設(shè)置BiLSTM-CRF模型在的batch_size為16,學(xué)習(xí)率為0.001。
實(shí)驗(yàn)結(jié)果表明,BiLSTM-CRF模型在棉花病蟲害語(yǔ)料上F1值高達(dá)83.57%。因此,本文以該模型為基礎(chǔ),并邀請(qǐng)農(nóng)業(yè)專家進(jìn)行審核與糾正。
2.4知識(shí)融合
知識(shí)融合是保證知識(shí)圖譜準(zhǔn)確的關(guān)鍵步驟,常見(jiàn)的方法是對(duì)數(shù)據(jù)進(jìn)行實(shí)體對(duì)齊。如實(shí)體“棉鈴灰霉病”就分別出現(xiàn)在中國(guó)作物種質(zhì)信息網(wǎng)、百度百科、農(nóng)業(yè)病蟲草害圖文數(shù)據(jù)庫(kù)三個(gè)不同數(shù)據(jù)源中,這些重復(fù)實(shí)體會(huì)造成冗余和歧義的問(wèn)題,影響后續(xù)智能問(wèn)答的準(zhǔn)確性。為消除歧義,本文將實(shí)體轉(zhuǎn)化成對(duì)應(yīng)的向量,帶入余弦相似度公式,通過(guò)計(jì)算來(lái)評(píng)估兩個(gè)實(shí)體的相似度來(lái)達(dá)到實(shí)體對(duì)齊的效果。
2.5知識(shí)存儲(chǔ)及可視化
Neo4j是一款JAVA開(kāi)發(fā)的開(kāi)源圖數(shù)據(jù)庫(kù),可以直觀地刻畫知識(shí)圖譜的結(jié)構(gòu)。并且Neo4j提供的Cypher語(yǔ)言可以實(shí)現(xiàn)快捷高效地可視化檢索。本文借助Neo4j圖數(shù)據(jù)庫(kù)提供的LOADCSV語(yǔ)句,將其導(dǎo)入Neo4j數(shù)據(jù)庫(kù)構(gòu)建知識(shí)圖譜。棉花病蟲害知識(shí)圖譜(局部)如圖2所示。
3系統(tǒng)設(shè)計(jì)
3.1系統(tǒng)架構(gòu)
本系統(tǒng)整體架構(gòu)如圖3所示,自底向上共包括數(shù)據(jù)層、模型層、業(yè)務(wù)層共三部分。
數(shù)據(jù)層是全系統(tǒng)的數(shù)據(jù)基礎(chǔ),包括棉花病蟲害知識(shí)圖譜,以及用于AC自動(dòng)機(jī)匹配的實(shí)體詞典。
模型層包括問(wèn)答模塊的相關(guān)模型算法,分為實(shí)體識(shí)別和意圖分類兩部分。當(dāng)系統(tǒng)接收到用戶的查詢后,會(huì)立刻對(duì)問(wèn)句進(jìn)行解析,識(shí)別出用戶的意圖以及問(wèn)句病蟲害實(shí)體,然后在知識(shí)圖譜中檢索相關(guān)信息并反饋給用戶。
業(yè)務(wù)層主要負(fù)責(zé)人機(jī)交互頁(yè)面,包括用戶查詢窗口、問(wèn)答結(jié)果反饋、相關(guān)知識(shí)圖譜可視化展示、錯(cuò)誤信息反饋以及知識(shí)庫(kù)管理。
3.2模型層設(shè)計(jì)
模式層主要由實(shí)體識(shí)別、意圖分類、答案檢索與封裝三個(gè)模塊構(gòu)成。實(shí)體識(shí)別模塊的作用是快速識(shí)別問(wèn)句的實(shí)體,該模塊結(jié)合了AC自動(dòng)機(jī)模型和BiLSTM-CRF模型。當(dāng)AC自動(dòng)機(jī)無(wú)接匹配到問(wèn)句實(shí)體時(shí),系統(tǒng)會(huì)調(diào)用BiLSTM-CRF模型,自動(dòng)將可能的實(shí)體標(biāo)注為候選實(shí)體詞,將其向量化后與知識(shí)庫(kù)中病蟲害實(shí)體向量進(jìn)行余弦相似度評(píng)估,最后系統(tǒng)會(huì)將相似度最高的實(shí)體輸出至后續(xù)的答案檢索與封裝環(huán)節(jié)。
意圖分類模塊作用是解析用戶查詢的真實(shí)需求,識(shí)別出用戶的意圖類別,為后續(xù)的答案檢索提供方向。本文將問(wèn)句意圖劃分成詢問(wèn)病原體、詢問(wèn)分布、詢問(wèn)防治相關(guān)、詢問(wèn)害蟲相關(guān)、詢問(wèn)病蟲害相關(guān)共五類,詳細(xì)內(nèi)容如表1所示。
本模塊目的就是判斷問(wèn)句意圖,只有正確地劃分類別后,程序才能準(zhǔn)確地查詢相關(guān)的節(jié)點(diǎn)和關(guān)系,進(jìn)而組織出合適的答案。近年來(lái),預(yù)訓(xùn)練模型BERT在各種NLP任務(wù)中取得了優(yōu)秀的效果,并且在下游任務(wù)中僅需微調(diào)即可獲得良好的效果,節(jié)省了大量的訓(xùn)練資源和時(shí)間。本文選擇BERT+CNN的模型進(jìn)行分類,首先使用BERT模型對(duì)問(wèn)句進(jìn)行向量化處理,然后利用CNN對(duì)輸出的向量進(jìn)行特征提取,捕捉問(wèn)句中的局部特征,最后實(shí)現(xiàn)問(wèn)句意圖分類。
為了評(píng)估所提出模型的性能,本文將BERT+CNN模型、BERT模型以及CNN模型進(jìn)行了對(duì)比測(cè)試,實(shí)驗(yàn)證明BERT+CNN模型可以勝任問(wèn)答任務(wù),具體結(jié)果如圖4所示。
當(dāng)系統(tǒng)成功識(shí)別問(wèn)句的實(shí)體和意圖后,相關(guān)詞語(yǔ)將被插入預(yù)先設(shè)計(jì)的Cypher查詢模板中,以此對(duì)Neo4j圖數(shù)據(jù)庫(kù)執(zhí)行查詢操作。以“棉鈴蟲怎么防治?”為例,程序首先利用AC自動(dòng)機(jī)對(duì)問(wèn)句進(jìn)行匹配,從中提取出實(shí)體詞“棉鈴蟲”,同時(shí)BERT+CNN模型也將該問(wèn)句分類為“詢問(wèn)防治相關(guān)”的意圖類別。隨后,系統(tǒng)會(huì)將提取的實(shí)體和意圖類別填充到預(yù)設(shè)的Cy?pher查詢模板中,生成查詢語(yǔ)句“MATCH(m:Disease)wherem.name='{棉鈴蟲}'returnm.name,m.防治方法”,從而獲取棉鈴蟲防治方法,并將其封裝成方便理解的答案。
3.3環(huán)境配置
本系統(tǒng)基于Windows系統(tǒng),采用了B/S架構(gòu)設(shè)計(jì),前端界面采用了Vue.js框架,同時(shí),采用輕量級(jí)的Flask框架實(shí)現(xiàn)了前后端的連接。數(shù)據(jù)存儲(chǔ)方面,則選擇了Neo4j和MongoDB。VUE架構(gòu)遵循MVVM設(shè)計(jì)模式。該架構(gòu)將View層和Model層解耦和分離,View層負(fù)責(zé)與用戶交互,Model層負(fù)責(zé)處理業(yè)務(wù)邏輯,兩層之間通過(guò)ViewModel交互,提高了系統(tǒng)的可靠性。
3.4系統(tǒng)展示
如圖5所示,在對(duì)話框內(nèi)輸入“棉鈴蟲怎么防治?”,點(diǎn)擊搜索,系統(tǒng)即可根據(jù)知識(shí)圖譜,檢索并返回相關(guān)的防治方法,并顯示該部分的可視化知識(shí)圖譜。除此之外,若用戶認(rèn)為系統(tǒng)的回答不完整或存在錯(cuò)誤,可以補(bǔ)充遺漏的知識(shí)或反饋錯(cuò)誤。
此外,用戶還可以通過(guò)交互頁(yè)面管理知識(shí)庫(kù)。該頁(yè)面以表單的形式組織棉花病蟲害三元組,用戶可以對(duì)知識(shí)庫(kù)進(jìn)行增刪改查。
為驗(yàn)證該系統(tǒng)可以在實(shí)踐中的有效性,本研究進(jìn)行了三組測(cè)試實(shí)驗(yàn),每組隨機(jī)選取50條問(wèn)句進(jìn)行測(cè)試,而后分別由不同的農(nóng)業(yè)專家判斷和評(píng)估系統(tǒng)回答是否正確。評(píng)價(jià)標(biāo)準(zhǔn)包括實(shí)體是否被準(zhǔn)確識(shí)別、意圖是否被正確映射、回答結(jié)果是否正確完整三個(gè)方面。經(jīng)過(guò)實(shí)驗(yàn)分析,系統(tǒng)平均正確率約為96.67%,證明該系統(tǒng)具有較高的實(shí)用性。
4結(jié)束語(yǔ)
本文基于公開(kāi)可獲取的數(shù)據(jù)構(gòu)建了一個(gè)高質(zhì)量棉花病蟲害知識(shí)圖譜。該系統(tǒng)查詢效率和準(zhǔn)確性表現(xiàn)出色,同時(shí)其操作界面簡(jiǎn)潔友好,交互體驗(yàn)流暢自然,部署過(guò)程快捷簡(jiǎn)易。該系統(tǒng)有助于提高棉花病蟲害防治的智能化水平,為相關(guān)領(lǐng)域的知識(shí)服務(wù)提供了一種創(chuàng)新的解決方案。
參考文獻(xiàn)
[1]孫世芳,劉瑾,喬金亮,等.棉花產(chǎn)業(yè)調(diào)查[N].經(jīng)濟(jì)日?qǐng)?bào),2023-07-13(001).
【通聯(lián)編輯:朱寶貴】
基金項(xiàng)目:自治區(qū)級(jí)大學(xué)生創(chuàng)新創(chuàng)業(yè)訓(xùn)練項(xiàng)目“基于知識(shí)圖譜的新疆棉病蟲害智能問(wèn)答系統(tǒng)的構(gòu)建”(項(xiàng)目編號(hào):S202310755127);新疆維吾爾自治區(qū)重點(diǎn)研發(fā)項(xiàng)目(項(xiàng)目編號(hào):2022B01046)