版權(quán)說(shuō)明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請(qǐng)進(jìn)行舉報(bào)或認(rèn)領(lǐng)
文檔簡(jiǎn)介
[19]。大語(yǔ)言模型在實(shí)體識(shí)別任務(wù)中通常通過(guò)生成式方法,有些方法將實(shí)體識(shí)別轉(zhuǎn)化為生成任務(wù)來(lái)完成實(shí)體識(shí)別任務(wù)。大語(yǔ)言模型內(nèi)部通過(guò)自注意力機(jī)制和Transformer架構(gòu)來(lái)完成生成任務(wù)。模型通過(guò)對(duì)輸入文本進(jìn)行編碼,然后使用解碼器生成輸出序列。在生成任務(wù)中,模型會(huì)預(yù)測(cè)下一個(gè)詞或標(biāo)記,同時(shí)保持上下文的一致性和連貫性,缺點(diǎn)是會(huì)導(dǎo)致在生成任務(wù)中,若沒(méi)有提示詞或額外的限制,面對(duì)不同的輸入,模型的輸出會(huì)不穩(wěn)定,然而,由于大模型本身參數(shù)龐大,在其訓(xùn)練的時(shí)候訓(xùn)練數(shù)據(jù)量大,因此在普通、簡(jiǎn)單的實(shí)體識(shí)別任務(wù)中也有不錯(cuò)的表現(xiàn)。2.5本章小結(jié)本章主要介紹了知識(shí)圖譜、意圖識(shí)別和實(shí)體識(shí)別的理論知識(shí),講述了在本系統(tǒng)中意圖識(shí)別與實(shí)體識(shí)別的實(shí)現(xiàn)方式。本文以知識(shí)圖譜和實(shí)體識(shí)別為核心,在此基礎(chǔ)上完成了各種功能,完成了整個(gè)系統(tǒng)功能的實(shí)現(xiàn)。3系統(tǒng)分析與設(shè)計(jì)3.1可行性分析3.1.1技術(shù)可行性知識(shí)圖譜作為一種結(jié)構(gòu)化的知識(shí)表示形式,能夠存儲(chǔ)豐富的實(shí)體、關(guān)系及其屬性信息。結(jié)合大模型,系統(tǒng)可以利用知識(shí)圖譜提供的精確背景知識(shí),提升問(wèn)答系統(tǒng)的準(zhǔn)確性和泛化能力,知識(shí)圖譜結(jié)合大模型進(jìn)行問(wèn)答的技術(shù)成熟度高,已有眾多成功案例,且相關(guān)工具、模型和服務(wù)易于獲取和集成,技術(shù)可行性較強(qiáng)。將用戶輸入的問(wèn)題與數(shù)據(jù)庫(kù)中已存儲(chǔ)的問(wèn)題轉(zhuǎn)化為向量表示,通過(guò)計(jì)算兩向量間的點(diǎn)積衡量其語(yǔ)義相似度,從而實(shí)現(xiàn)對(duì)用戶可能感興趣問(wèn)題的預(yù)測(cè)與推薦。使用Pyecharts對(duì)用戶對(duì)話的數(shù)據(jù)和文件數(shù)據(jù)進(jìn)行可視化,Pyecharts支持豐富的圖表類型,如柱狀圖、折線圖、餅圖、熱力圖等,適用于展示用戶對(duì)話數(shù)據(jù)和文件數(shù)據(jù)的統(tǒng)計(jì)分析結(jié)果。采用SQLite數(shù)據(jù)庫(kù)可以實(shí)現(xiàn)對(duì)用戶賬戶和其他信息進(jìn)行有效地管理,結(jié)構(gòu)化的數(shù)據(jù)可以方便后續(xù)對(duì)各種功能進(jìn)行開發(fā)。3.1.2社會(huì)可行性本系統(tǒng)服務(wù)的目標(biāo)人群范圍廣泛,因此采用了簡(jiǎn)單的交互設(shè)計(jì)模式,符合用戶的操作習(xí)慣,用戶只需要了解如何利用電子設(shè)備進(jìn)行上網(wǎng)即可使用本系統(tǒng),不需要花費(fèi)更多的時(shí)間來(lái)學(xué)習(xí)對(duì)該系統(tǒng)的具體操作。由于當(dāng)前各種相關(guān)資料在網(wǎng)絡(luò)上分布散亂,農(nóng)業(yè)從業(yè)者需要花費(fèi)大量時(shí)間搜索信息和過(guò)濾信息,效率較為低下,因此需要一個(gè)平臺(tái)能提供相關(guān)的百科知識(shí)以及問(wèn)題咨詢,來(lái)幫助用戶提高工作效率和了解更多知識(shí)。3.1.3經(jīng)濟(jì)可行性本項(xiàng)目在技術(shù)選型與實(shí)施成本控制方面,展現(xiàn)出高度的經(jīng)濟(jì)可信性,項(xiàng)目全面采用開源技術(shù)棧,這一決策不僅確保了系統(tǒng)的開放性、可擴(kuò)展性與持續(xù)創(chuàng)新潛力,更顯著降低了軟件購(gòu)置與授權(quán)費(fèi)用,實(shí)現(xiàn)了初期投入與長(zhǎng)期運(yùn)維成本的雙軌優(yōu)化。開源解決方案的廣泛適用性與社區(qū)支持,確保了項(xiàng)目在不犧牲功能完備性與技術(shù)支持的前提下,得以大幅削減依賴商業(yè)軟件可能導(dǎo)致的高昂開支,為項(xiàng)目整體經(jīng)濟(jì)性奠定了堅(jiān)實(shí)基礎(chǔ)。項(xiàng)目所需要的成本為硬件成本與時(shí)間成本,硬件成本主要來(lái)自于加載大模型,能夠讓大模型在設(shè)備上成功運(yùn)行,而時(shí)間成本主要來(lái)源于有新數(shù)據(jù)時(shí)構(gòu)造添加新的知識(shí)圖譜,由于要提取實(shí)體、關(guān)系、屬性等內(nèi)容,還要構(gòu)造索引,所花費(fèi)的時(shí)間取決于數(shù)據(jù)量的大小。3.2需求與功能分析3.2.1系統(tǒng)需求分析基于知識(shí)圖譜的農(nóng)業(yè)種養(yǎng)殖技術(shù)服務(wù)系統(tǒng)主要的目的是構(gòu)建知識(shí)圖譜以及基于該知識(shí)圖譜構(gòu)建信息可視化和其他功能,該系統(tǒng)的主要功能需求如下:系統(tǒng)數(shù)據(jù)管理,系統(tǒng)數(shù)據(jù)包括系統(tǒng)用戶信息管理、知識(shí)圖譜數(shù)據(jù)管理、推薦問(wèn)題庫(kù)的數(shù)據(jù)管理以及農(nóng)業(yè)種養(yǎng)殖資料結(jié)構(gòu)化管理。對(duì)用戶的輸入進(jìn)行意圖識(shí)別的模型構(gòu)建,首先要設(shè)計(jì)意圖的總數(shù)量以及意圖的種類,之后收集文本樣本數(shù)據(jù),對(duì)意圖識(shí)別模型進(jìn)行訓(xùn)練和驗(yàn)證,最終達(dá)到可以落地應(yīng)用的效果。對(duì)于知識(shí)圖譜可視化,需要設(shè)計(jì)針對(duì)特定領(lǐng)域的提示詞,讓大語(yǔ)言模型提取出用戶輸入文本中的實(shí)體,然后生成Cypher語(yǔ)句對(duì)圖數(shù)據(jù)庫(kù)進(jìn)行檢索,返回檢索到的實(shí)體和關(guān)系,最后通過(guò)開源的知識(shí)圖譜展示庫(kù)可以實(shí)現(xiàn)將實(shí)體與關(guān)系在前端頁(yè)面進(jìn)行可視化。對(duì)種養(yǎng)殖業(yè)的物種百科信息展示,需要設(shè)計(jì)信息數(shù)據(jù)的存儲(chǔ)方式,并且在展示物種信息百科的同時(shí),需要將對(duì)應(yīng)的知識(shí)圖譜進(jìn)行可視化。構(gòu)建知識(shí)圖譜與實(shí)體關(guān)系查詢,設(shè)計(jì)一個(gè)獨(dú)立的頁(yè)面,用于給用戶上傳實(shí)體與關(guān)系,構(gòu)建知識(shí)圖譜,并且可以讓用戶輸入實(shí)體,查詢與該實(shí)體關(guān)聯(lián)的其他實(shí)體與對(duì)應(yīng)的關(guān)系。對(duì)于知識(shí)圖譜結(jié)合大語(yǔ)言模型的問(wèn)答功能,大模型可以從用戶的自然語(yǔ)言中提取出主要實(shí)體,然后轉(zhuǎn)換成cypher查詢語(yǔ)句從數(shù)據(jù)庫(kù)中進(jìn)行數(shù)據(jù)查詢并且生成知識(shí)圖譜進(jìn)行可視化,之后將查詢到的數(shù)據(jù)返回給大模型,再通過(guò)結(jié)合回復(fù)模版,對(duì)用戶的問(wèn)題進(jìn)行合成回復(fù)并以流式傳輸?shù)男问椒祷亟o用戶。構(gòu)建推薦問(wèn)題數(shù)據(jù)集,將推薦問(wèn)題數(shù)據(jù)集保存在向量數(shù)據(jù)庫(kù)中,當(dāng)用戶每一次問(wèn)問(wèn)題時(shí)檢索數(shù)據(jù)集中最接近的問(wèn)題,然后返回前三個(gè)問(wèn)題給用戶,預(yù)測(cè)用戶感興趣的、要問(wèn)的問(wèn)題。構(gòu)建一個(gè)咨詢專家的功能,用戶可以通過(guò)指定不同領(lǐng)域的專家,填寫所遇到的問(wèn)題或者困難,并發(fā)送郵件求助該專家。日志記錄與告警模塊的實(shí)現(xiàn),對(duì)系統(tǒng)日志進(jìn)行監(jiān)控,當(dāng)系統(tǒng)報(bào)錯(cuò)時(shí),會(huì)自動(dòng)通知開發(fā)者系統(tǒng)報(bào)錯(cuò)和發(fā)送給開發(fā)者報(bào)錯(cuò)信息,并提醒用戶已經(jīng)將報(bào)錯(cuò)信息發(fā)送給開發(fā)者。3.2.2系統(tǒng)功能模塊分析系統(tǒng)功能模塊圖如圖5所示:圖5系統(tǒng)功能模塊圖用戶管理,用戶管理能夠保存不同用戶的賬號(hào)信息,并且根據(jù)用戶信息判斷是管理員賬戶還是普通賬戶。百科展示主要針對(duì)種植業(yè)、畜牧業(yè)和水產(chǎn)業(yè)的物種進(jìn)行信息展示,用戶可以通過(guò)輸入指定的物種進(jìn)行查詢,然后通過(guò)數(shù)據(jù)庫(kù)檢索得到該物種的百科信息,以及對(duì)和它關(guān)聯(lián)的實(shí)體和對(duì)應(yīng)的關(guān)系進(jìn)行知識(shí)圖譜展示。物種信息搜索能夠讓用戶搜索某個(gè)物種的相關(guān)問(wèn)題,然后通過(guò)大語(yǔ)言模型對(duì)檢索到的相關(guān)信息進(jìn)行潤(rùn)色,最后回復(fù)給用戶,并且可以將檢索到的相關(guān)數(shù)據(jù)通過(guò)知識(shí)圖譜的方式進(jìn)行可視化。技術(shù)安全知識(shí)問(wèn)答,涵蓋了農(nóng)業(yè)數(shù)據(jù)安全、農(nóng)業(yè)應(yīng)用軟件安全、農(nóng)業(yè)信息安全管理、農(nóng)業(yè)物聯(lián)網(wǎng)安全以及各種安全政策的相關(guān)資料,使用檢索增強(qiáng)生成技術(shù),讓用戶可以通過(guò)對(duì)話和知識(shí)圖譜展示的方式了解更多關(guān)于農(nóng)業(yè)安全的知識(shí)。數(shù)據(jù)分析,收集用戶的文本輸入、點(diǎn)擊行為等數(shù)據(jù)信息,進(jìn)行可視化展示,并且可以支持用戶傳入數(shù)據(jù)文件,對(duì)文件的數(shù)據(jù)進(jìn)行可視化分析。構(gòu)建圖譜,可以讓用戶手動(dòng)輸入實(shí)體和對(duì)應(yīng)關(guān)系,手動(dòng)新增上傳,更新圖譜數(shù)據(jù),還支持用戶輸入實(shí)體,查詢實(shí)體關(guān)聯(lián)的所有其他實(shí)體和關(guān)系,并且能夠讓用戶輸入一條語(yǔ)句,由模型識(shí)別提取出文本中的實(shí)體。交流反饋,提供給用戶一個(gè)與其他人分享經(jīng)驗(yàn)的平臺(tái),用戶可以通過(guò)發(fā)帖和回復(fù)帖子分享交流,而管理員賬戶還可以審核帖子和刪除帖子。當(dāng)用戶有反饋意見(jiàn)時(shí),可以通過(guò)反饋通道進(jìn)行反饋,遇上困難或不懂的地方時(shí),可以通過(guò)咨詢專家功能像專家發(fā)送求助信息。意圖識(shí)別:能夠識(shí)別用戶是否在詢問(wèn)農(nóng)業(yè)信息安全相關(guān)的問(wèn)題,或者用戶是在與對(duì)話系統(tǒng)進(jìn)行日常的打招呼,對(duì)于其他的意圖,系統(tǒng)可以拒絕回答。實(shí)體抽取:通過(guò)抽取用戶語(yǔ)句中的主體,對(duì)該主體在圖數(shù)據(jù)庫(kù)中進(jìn)行檢索。數(shù)據(jù)庫(kù)檢索召回:通過(guò)抽取出來(lái)的實(shí)體轉(zhuǎn)換成圖數(shù)據(jù)庫(kù)檢索所需要的cypher語(yǔ)句,然后在圖數(shù)據(jù)庫(kù)中進(jìn)行檢索,另外將用戶輸入轉(zhuǎn)換成向量嵌入表示,并計(jì)算Faiss數(shù)據(jù)庫(kù)中與其他向量的向量相似度,最終返回圖數(shù)據(jù)庫(kù)檢索的結(jié)果以及向量相似度檢索的結(jié)果。重排序:對(duì)兩個(gè)數(shù)據(jù)庫(kù)檢索出來(lái)的結(jié)果進(jìn)行重排序,由于數(shù)據(jù)庫(kù)與分?jǐn)?shù)計(jì)算方式不同,所以采用混合檢索重排序的方法對(duì)結(jié)果進(jìn)行重新排序,將前兩個(gè)檢索結(jié)果作為最終檢索答案。生成回答:將最終檢索出來(lái)的答案匹配到回復(fù)模版中,然后將回復(fù)模版交給大模型進(jìn)行合成回復(fù),最終生成準(zhǔn)確度高、內(nèi)容精細(xì)的答案。3.3系統(tǒng)架構(gòu)設(shè)計(jì)本系統(tǒng)基于高內(nèi)聚低耦合的設(shè)計(jì)原則,采用模塊化開發(fā)方法,構(gòu)建了一個(gè)松耦合、易于維護(hù)、靈活擴(kuò)展的軟件架構(gòu)。如圖為本系統(tǒng)的系統(tǒng)架構(gòu):圖6系統(tǒng)架構(gòu)圖以下詳細(xì)闡述各模塊劃分及其功能職責(zé):數(shù)據(jù)獲取層:基于Python的Requests庫(kù)進(jìn)行數(shù)據(jù)的爬取,并且在國(guó)家農(nóng)業(yè)科學(xué)數(shù)據(jù)中心、農(nóng)業(yè)信息共享平臺(tái)等公開的數(shù)據(jù)網(wǎng)站上對(duì)數(shù)據(jù)資源進(jìn)行下載,從而獲取系統(tǒng)所需的數(shù)據(jù)。數(shù)據(jù)處理層:數(shù)據(jù)處理層主要是對(duì)獲取到的非結(jié)構(gòu)化數(shù)據(jù)進(jìn)行數(shù)據(jù)清洗,減少臟數(shù)據(jù),并且對(duì)不同領(lǐng)域的數(shù)據(jù)進(jìn)行分類,將PDF、圖片等非結(jié)構(gòu)化數(shù)據(jù)進(jìn)行轉(zhuǎn)換,將數(shù)據(jù)轉(zhuǎn)為方便存儲(chǔ)在數(shù)據(jù)庫(kù)中的格式。數(shù)據(jù)管理層:將收集到的實(shí)體與關(guān)系存放在圖數(shù)據(jù)庫(kù)中,并且建立索引,將索引保存在本地硬盤上,將用戶數(shù)據(jù)、表格數(shù)據(jù)等存放在結(jié)構(gòu)化數(shù)據(jù)庫(kù)中,方便后續(xù)數(shù)據(jù)的調(diào)用。自然語(yǔ)言處理層:這里主要是調(diào)取數(shù)據(jù)庫(kù)中的數(shù)據(jù)進(jìn)行處理,以實(shí)現(xiàn)各種服務(wù)核心功能,為應(yīng)用服務(wù)的各種功能做準(zhǔn)備。應(yīng)用服務(wù)層:應(yīng)用服務(wù)層提供給用戶一個(gè)前端可交互的界面,用戶可以在該前端頁(yè)面上進(jìn)行百科搜索、問(wèn)題交互、專家咨詢等各種操作。3.4數(shù)據(jù)庫(kù)設(shè)計(jì)本系統(tǒng)采用Neo4j數(shù)據(jù)庫(kù)來(lái)存放種養(yǎng)殖百科信息、天氣環(huán)境、農(nóng)業(yè)安全技術(shù)等多種數(shù)據(jù),不同類別的節(jié)點(diǎn)標(biāo)簽設(shè)計(jì)如下表所示:表1類別標(biāo)簽表節(jié)點(diǎn)類別標(biāo)簽名稱節(jié)點(diǎn)屬性種養(yǎng)殖Entityid、title、url、image、openTypeList、embedding、detail、baseInfoKeyList、baseInfoValueList天氣環(huán)境Entityid、title農(nóng)業(yè)安全EntityidSQLite數(shù)據(jù)庫(kù)則使用了多個(gè)表用來(lái)存放用戶賬號(hào)信息、用戶帖子信息、種養(yǎng)殖百科信息,數(shù)據(jù)庫(kù)的E-R圖如圖所示:圖7SQLite數(shù)據(jù)庫(kù)E-R圖SQLite數(shù)據(jù)庫(kù)中使用了4個(gè)表來(lái)存放相對(duì)應(yīng)的信息,分別是:種養(yǎng)殖物種百科信息表、用戶賬戶信息表、帖子管理表以及回復(fù)信息表,各個(gè)表的設(shè)計(jì)如表2至表5所示:(1)種養(yǎng)殖物種百科信息表種養(yǎng)殖物種百科信息表用于存放該領(lǐng)域的物種的百科信息,包括物種名稱、物種簡(jiǎn)介、物種圖片等信息。表2種養(yǎng)殖物種百科信息表字段名類型約束注釋titleTEXT主鍵物種名稱urlTEXT無(wú)物種抖音百科鏈接imageTEXT無(wú)物種圖片鏈接openTypeListTEXT無(wú)物種所屬類別detailTEXT無(wú)物種簡(jiǎn)介baseInfoKeyListTEXT無(wú)物種屬性鍵baseInfoValueListTEXT無(wú)物種屬性值(2)用戶信息表用戶信息表存儲(chǔ)了用戶的賬戶名、賬號(hào)、密碼以及是否為管理員。表3用戶信息表字段名類型約束注釋accountTEXT主鍵用戶賬號(hào)usernameTEXT非空用戶名稱passwordTEXT非空用戶密碼is_adminBOOLEAN0(否)1(是)用戶身份(3)帖子管理表帖子管理表用于存放用戶所發(fā)送、公開的帖子以及帖子審核狀態(tài)。表4帖子管理表字段名類型約束注釋post_idINTEGER主鍵帖子idtitleTEXT非空帖子名稱contentTEXT非空帖子內(nèi)容authorTEXT非空作者名稱created_atTIMESTAMP非空創(chuàng)建時(shí)間is_approvedBOOLEAN0(否)1(是)審核狀態(tài)(4)回復(fù)信息表回復(fù)信息表用于存放用戶在帖子下方的回復(fù)內(nèi)容。表5回復(fù)信息表字段名類型約束注釋idINTEGER主鍵回復(fù)idpost_idINTEGER非空帖子idcontentTEXT非空回復(fù)內(nèi)容authorTEXT非空回復(fù)人created_atTIMESTAMP非空回復(fù)時(shí)間3.5實(shí)體識(shí)別設(shè)計(jì)本系統(tǒng)使用大模型來(lái)實(shí)現(xiàn)實(shí)體識(shí)別功能,在種養(yǎng)殖領(lǐng)域中,數(shù)據(jù)可以劃分為種植業(yè)、畜牧業(yè)、水產(chǎn)業(yè)的數(shù)據(jù)。對(duì)于不同的產(chǎn)業(yè),若是采用傳統(tǒng)的實(shí)體識(shí)別方法,模型需要學(xué)習(xí)不同產(chǎn)業(yè)中各種術(shù)語(yǔ)和語(yǔ)言文本的語(yǔ)義信息,因此需要對(duì)每一個(gè)特定產(chǎn)業(yè)分別花費(fèi)大量的時(shí)間和精力來(lái)收集數(shù)據(jù)、標(biāo)注數(shù)據(jù)和訓(xùn)練實(shí)體識(shí)別的模型,當(dāng)系統(tǒng)啟動(dòng)后,模型一起運(yùn)行時(shí)對(duì)于硬件有著較高的要求,因此在種養(yǎng)殖領(lǐng)域采用提示詞微調(diào)大語(yǔ)言模型的方式,來(lái)實(shí)現(xiàn)對(duì)于種植業(yè)、畜牧業(yè)、水產(chǎn)業(yè)的物種實(shí)體識(shí)別,提示詞的設(shè)計(jì)如圖8所示。圖8實(shí)體提取提示詞提示詞采用結(jié)構(gòu)化設(shè)計(jì)以及FewShot的思想,提示詞的結(jié)構(gòu)化設(shè)計(jì)能夠讓模型更好地理解該實(shí)體識(shí)別的任務(wù)要求,而在提示詞中給模型提供少量樣本能讓模型在識(shí)別實(shí)體之后按照需求輸出指定的正確的格式。3.6本章小結(jié)本章主要對(duì)整個(gè)系統(tǒng)的技術(shù)可行性、社會(huì)可行性、經(jīng)濟(jì)可行性和功能需求做分析,以及對(duì)系統(tǒng)的主要架構(gòu)做闡述說(shuō)明,重點(diǎn)闡述了系統(tǒng)的所需要的功能,以及功能模塊的設(shè)計(jì),最后介紹了系統(tǒng)Neo4j數(shù)據(jù)庫(kù)中各節(jié)點(diǎn)類別對(duì)應(yīng)的節(jié)點(diǎn)標(biāo)簽和節(jié)點(diǎn)屬性的設(shè)計(jì)、SQLite數(shù)據(jù)庫(kù)中各個(gè)表各個(gè)字段的設(shè)計(jì)和實(shí)體識(shí)別任務(wù)的提示詞設(shè)計(jì)。4知識(shí)圖譜構(gòu)建4.1Neo4j數(shù)據(jù)庫(kù)部署Neo4j數(shù)據(jù)庫(kù)官方提供了多種部署的方法,可以采用docker進(jìn)行部署,也可以使用桌面軟件進(jìn)行安裝部署。本系統(tǒng)采用docker部署的方式來(lái)部署Neo4j數(shù)據(jù)庫(kù)。進(jìn)入Neo4j官網(wǎng)參考文檔,通過(guò)文檔上的鏈接下載Neo4j的鏡像,下載完docker后,此時(shí)電腦上還沒(méi)有相關(guān)的容器,需要要在電腦的終端使用命令行運(yùn)行docker并創(chuàng)建一個(gè)叫Neo4j_agriculture的容器,首先要指定映射的端口,將docker的7474和7687端口映射到電腦主機(jī)上的7474和7687端口,同時(shí)安裝對(duì)應(yīng)版本的apoc插件,具體命令如下所示:dockerrun\--publish=7474:7474--publish=7687:7687\-eNEO4J_AUTH=none\-eNEO4J_dbms_security_procedures_unrestricted="apoc.*"\-eNEO4J_dbms_security_procedures_allowlist="apoc.*"\-eNEO4J_PLUGINS='["apoc","apoc-extended"]'\Neo4j:latest4.1.2neo4_agriculture啟動(dòng)完畢后已經(jīng)成功創(chuàng)建一個(gè)名稱為Neo4j_agriculture的容器,后續(xù)只需要使用dockerstartNeo4j_agriculture就能夠啟動(dòng)容器,關(guān)閉容器時(shí),只需要使用dockerstopNeo4j_agriculture就能關(guān)閉容器。4.2數(shù)據(jù)準(zhǔn)備4.2.1數(shù)據(jù)獲取本系統(tǒng)的數(shù)據(jù)獲取采用了兩種方法,一種為爬蟲獲取、另一種為公開數(shù)據(jù)集下載,下面對(duì)兩種獲取方法進(jìn)行描述。在爬蟲方面,使用Requests+lxml庫(kù)對(duì)抖音百科的數(shù)據(jù)進(jìn)行爬取,Requests庫(kù)是一個(gè)高度封裝、對(duì)用戶友好的HTTP客戶端庫(kù),用于發(fā)送HTTP/HTTPS請(qǐng)求并與Web服務(wù)器進(jìn)行交互。使用Requests庫(kù)可以訪問(wèn)抖音百科頁(yè)面,而lxml則是一個(gè)靈活高效的HTML處理庫(kù),能從響應(yīng)對(duì)象中解析HTML,提取出所需要的數(shù)據(jù),數(shù)據(jù)提取的部分如下圖所示,以提取羊的信息為例,圖9為索要提取的信息:圖9要爬取的條目信息確定好所要數(shù)據(jù)的需求之后,首先前往抖音百科頁(yè)面分析網(wǎng)頁(yè)的結(jié)構(gòu)和頁(yè)面布局,通過(guò)網(wǎng)頁(yè)的開發(fā)者工具查看要提取元素的具體位置,下面示例以提取條目名稱、關(guān)鍵詞和簡(jiǎn)介為例,如圖10所示。圖10查看元素所在位置找到數(shù)據(jù)所在的位置之后,就可以準(zhǔn)備對(duì)其進(jìn)行內(nèi)容獲取。設(shè)置好要爬取的鏈接和請(qǐng)求頭,然后使用Requests庫(kù)的get()函數(shù)向目標(biāo)網(wǎng)址發(fā)送一個(gè)GET請(qǐng)求,獲取網(wǎng)頁(yè)的響應(yīng),并檢查響應(yīng)狀態(tài)碼,當(dāng)成功請(qǐng)求之后,對(duì)響應(yīng)內(nèi)容中的HTML進(jìn)行解析,代碼如下所示:base_url='/wiki/'headers={"user-agent":"Mozilla/5.0(WindowsNT10.0;WOW64)AppleWebKit/537.36(KHTML,likeGecko)Chrome/69.0.3947.100Safari/537.36"}url=base_url+"羊"response=requests.get(url=url,headers=headers)detected_encoding=chardet.detect(response.content)['encoding']print(detected_encoding)ifresponse.status_code==200:tree=html.fromstring(response.content.decode(detected_encoding))從解析出來(lái)的內(nèi)容中尋找所需要的信息數(shù)據(jù),將它們提取出來(lái),示例效果如圖11所示。圖11爬蟲解析數(shù)據(jù)效果圖由于數(shù)據(jù)量較多,所以在進(jìn)行數(shù)據(jù)爬取時(shí)采用了多線程爬取的方法來(lái)爬取抖音百科網(wǎng)頁(yè)的數(shù)據(jù)并進(jìn)行解析,最終從解析出來(lái)的內(nèi)容中,提取出具體的百科條目名稱,并將其作為title字段,將百科中的簡(jiǎn)介部分作為該物種的介紹,設(shè)置為detail字段,并且將基本信息分為鍵和值的方式存儲(chǔ),而由于信息量較多,這里選擇不下載圖片,而是選擇直接存儲(chǔ)圖片鏈接,以節(jié)省本地內(nèi)存資源,并最終存儲(chǔ)在csv文件中,保存在本地。而針對(duì)PDF、word等資料,則通過(guò)國(guó)家農(nóng)業(yè)科學(xué)數(shù)據(jù)中心、中國(guó)科技資源共享網(wǎng)、全國(guó)信息安全標(biāo)準(zhǔn)化技術(shù)委員會(huì)等公開數(shù)據(jù)網(wǎng)站進(jìn)行手動(dòng)下載,以全國(guó)信息安全標(biāo)準(zhǔn)化技術(shù)委員會(huì)為例,為了讓廣大農(nóng)業(yè)從業(yè)者了解到在新時(shí)代大數(shù)據(jù)背景下,如何正確地使用新技術(shù),以此來(lái)保證在安全的前提下提高工作效率,可以登錄該網(wǎng)站,選擇要查詢要下載的文件類型,并且根據(jù)文件類型選擇具體的文件,可以將文件下載到本地進(jìn)行存儲(chǔ):圖12全國(guó)信息安全標(biāo)準(zhǔn)化技術(shù)委員會(huì)網(wǎng)站頁(yè)面4.2.2數(shù)據(jù)處理在獲取到的數(shù)據(jù)中有許多非結(jié)構(gòu)化的數(shù)據(jù),包含PDF文檔、Word文檔等等,對(duì)于PDF文檔,首先使用百度飛槳的PaddleOCR庫(kù)進(jìn)行文字識(shí)別,然后將其轉(zhuǎn)換成Word文檔的格式。PaddleOCR可以支持多種語(yǔ)言,能夠準(zhǔn)確地定位到文字區(qū)域,無(wú)論是多方向、多語(yǔ)言的文本,都能夠精準(zhǔn)地識(shí)別到,因此能夠保持在轉(zhuǎn)換成Word文檔之后,字符、圖像等的位置保持不變,保留數(shù)據(jù)結(jié)構(gòu)信息完整。以下圖為例子:圖13PDF文件與Word文件對(duì)比圖左邊為未轉(zhuǎn)化的白皮書文件,右邊為進(jìn)行OCR識(shí)別之后的Word文件。使用下面的指令就可以對(duì)pdf文件進(jìn)行解析識(shí)別:paddleocr--image_dir=ppstructure/recovery/aibaipi.pdf--type=structure--recovery=true--use_pdf2docx_api=true將文件轉(zhuǎn)換成Word文檔后,還需要對(duì)所有的Word文檔做進(jìn)一步的處理,將其變成結(jié)構(gòu)化的數(shù)據(jù),這里使用了Python對(duì)Word文檔進(jìn)行統(tǒng)一的處理,將其轉(zhuǎn)化成為json格式的數(shù)據(jù),這樣子的數(shù)據(jù)可以方便后續(xù)存放在各種數(shù)據(jù)庫(kù)中,由于llamaindex對(duì)于Neo4j的支持度不足,為了防止llamaindex與Neo4j數(shù)據(jù)庫(kù)出現(xiàn)不兼容的情況,本文還設(shè)置了一個(gè)Faiss數(shù)據(jù)庫(kù)作為備用數(shù)據(jù)庫(kù),將json格式的數(shù)據(jù)轉(zhuǎn)換成yaml格式的數(shù)據(jù),并轉(zhuǎn)換成嵌入向量存放進(jìn)Faiss數(shù)據(jù)庫(kù)里,轉(zhuǎn)換成yaml格式是為了減少大模型做潤(rùn)色回答時(shí)的token消耗,json格式的數(shù)據(jù)存放進(jìn)Faiss數(shù)據(jù)庫(kù)會(huì)出現(xiàn)大量的空格臟數(shù)據(jù)。數(shù)據(jù)結(jié)構(gòu)化處理的流程如圖所示:圖14數(shù)據(jù)結(jié)構(gòu)化處理流程將數(shù)據(jù)的格式結(jié)構(gòu)化完成之后,還需要對(duì)數(shù)據(jù)文本進(jìn)行長(zhǎng)度判斷。本文將長(zhǎng)度閾值設(shè)置為768,遍歷json文件,判斷正文文本是否大于768,若大于閾值則對(duì)它按照句號(hào)進(jìn)行切分,然后將逐個(gè)將句子拼接起來(lái),得到最大能拼接的文本,剩下的文本按照同樣的方式進(jìn)行切分,在遍歷的同時(shí),若正文文本小于閾值,還需要判斷同一個(gè)二級(jí)標(biāo)題或一級(jí)標(biāo)題下的文本能否進(jìn)行合并,若合并后的長(zhǎng)度不超過(guò)設(shè)定閾值,則對(duì)其進(jìn)行合并,最終處理得到長(zhǎng)度不大于設(shè)定閾值的正文文本。4.3數(shù)據(jù)入庫(kù)對(duì)于已結(jié)構(gòu)化保存的json文件,數(shù)據(jù)入庫(kù)采用llamaindex對(duì)其抽取實(shí)體與關(guān)系,首先按行遍歷json文件,由于是數(shù)組字典的格式,所以可以設(shè)置它的元數(shù)據(jù)和正文,本系統(tǒng)在處理時(shí)將其元數(shù)據(jù)設(shè)置為id、文件名稱、一級(jí)標(biāo)題、二級(jí)標(biāo)題,正文部分為字典中的正文,并且將其轉(zhuǎn)換成document文檔格式,方便llamaindex形成索引節(jié)點(diǎn),所使用代碼如下:withopen(stru_data.json,'rb')asfile:documents=json.load(file)docs=[Document(text=t['content'],metadata={'id':t['id'],"file_name":t['file_name'],"heading1":t['heading1'],'heading2':t['heading2'],},metadata_seperator="",metadata_template="{key}:{value}",text_template="{content}",)fortindocuments]之后將實(shí)體與關(guān)系上傳到Neo4j數(shù)據(jù)庫(kù)中,提取實(shí)體關(guān)系和上傳流程如圖15所示,實(shí)體提取的流程如圖所示。圖15llamaindex提取實(shí)體流程對(duì)于已有的實(shí)體與關(guān)系文件,統(tǒng)一將其保存為csv文件格式,并將其存放至Neo4j數(shù)據(jù)庫(kù)的Import文件夾中,之后打開Neo4j數(shù)據(jù)庫(kù)的瀏覽器頁(yè)面,使用cypher語(yǔ)句從文件中導(dǎo)入實(shí)體與關(guān)系數(shù)據(jù),以種養(yǎng)殖文件為例:LOADCSVWITHHEADERSFROM"file:///Agri_node.csv"ASlineCREATE(:AgriItem{title:line.title}) 導(dǎo)入實(shí)體之后,對(duì)其創(chuàng)建索引,有了索引之后,在整個(gè)圖數(shù)據(jù)庫(kù)里面檢索的速度才會(huì)更快,并且確保了節(jié)點(diǎn)數(shù)據(jù)的唯一性。CREATECONSTRAINTFOR(m:AgriItem)REQUIREm.titleISUNIQUE最終,成功把數(shù)據(jù)文件上傳至Neo4j數(shù)據(jù)庫(kù)中,Neo4j本身支持向量檢索,但是由于數(shù)據(jù)量較大以及性能原因,在此沒(méi)有對(duì)各個(gè)節(jié)點(diǎn)和關(guān)系生成嵌入向量。部分節(jié)點(diǎn)和關(guān)系如下圖所示:圖16Neo4j節(jié)點(diǎn)關(guān)系示例4.4本章小結(jié)本章主要介紹了本系統(tǒng)知識(shí)圖譜的搭建流程,從數(shù)據(jù)庫(kù)的下載、數(shù)據(jù)集的獲取和處理,到數(shù)據(jù)入庫(kù)搭建知識(shí)圖譜整個(gè)過(guò)程中,數(shù)據(jù)的獲取和處理是相對(duì)比較復(fù)雜和麻煩的一部分,因?yàn)樵谇捌谛枰_定本系統(tǒng)的數(shù)據(jù)來(lái)源,同時(shí)還要花費(fèi)一定時(shí)間來(lái)研究如何獲取到這些數(shù)據(jù),之后還需要將不同格式的數(shù)據(jù)轉(zhuǎn)換成所需要的格式,再對(duì)其進(jìn)行入庫(kù),這段過(guò)程是最基礎(chǔ)也是核心的工作,沒(méi)有這些數(shù)據(jù)就沒(méi)有辦法構(gòu)建知識(shí)圖譜,沒(méi)有知識(shí)圖譜就沒(méi)有辦法搭建整個(gè)系統(tǒng)。5基于知識(shí)圖譜的農(nóng)業(yè)種養(yǎng)殖技術(shù)服務(wù)系統(tǒng)實(shí)現(xiàn)5.1系統(tǒng)概述我國(guó)自古以來(lái)是農(nóng)產(chǎn)業(yè)大國(guó),隨著信息時(shí)代的發(fā)展,越來(lái)越多的網(wǎng)站給用戶帶來(lái)了關(guān)于種養(yǎng)殖領(lǐng)域的資料信息,但是由于這些資源缺乏有效管理,導(dǎo)致出現(xiàn)了資源利用效率較低、檢索資源過(guò)程較為復(fù)雜等問(wèn)題,而知識(shí)圖譜剛好能將碎片化的種養(yǎng)殖業(yè)知識(shí)整合在一起,并且通過(guò)實(shí)體-關(guān)系-實(shí)體的模式將知識(shí)規(guī)范化,并且結(jié)合當(dāng)下流行的大語(yǔ)言模型,構(gòu)建一個(gè)規(guī)范的技術(shù)服務(wù)系統(tǒng)。本系統(tǒng)的主要功能模塊有:種養(yǎng)殖業(yè)指定物種百科展示、物種信息搜索問(wèn)答、技術(shù)安全知識(shí)聊天問(wèn)答、知識(shí)圖譜可視化、手動(dòng)構(gòu)建知識(shí)圖譜、實(shí)體識(shí)別、關(guān)系查詢、專家求助、社區(qū)交流。5.2系統(tǒng)功能實(shí)現(xiàn)系統(tǒng)前端頁(yè)面采用Streamlit進(jìn)行開發(fā)設(shè)計(jì),主要為用戶提供各種交互功能,目的是服務(wù)用戶,提供多項(xiàng)功能可供用戶選擇,系統(tǒng)后端使用Neo4j數(shù)據(jù)庫(kù)存放資源信息,使用SQLite存放用戶信息,使用Faiss數(shù)據(jù)庫(kù)存放預(yù)測(cè)問(wèn)題列表集。本系統(tǒng)提供眾多的功能,分別有:百科展示:該功能包含三個(gè)領(lǐng)域類別:種植業(yè)、畜牧業(yè)、水產(chǎn)業(yè)。用戶選擇要搜索的領(lǐng)域,通過(guò)輸入物種名稱,來(lái)獲得該物種的百科信息和相關(guān)圖譜信息。物種信息搜索問(wèn)答:該功能也如同百科展示,包含三個(gè)領(lǐng)域類別:種植業(yè)、畜牧業(yè)、水產(chǎn)業(yè)。用戶選擇要搜索的領(lǐng)域,通過(guò)輸入相關(guān)的問(wèn)題,系統(tǒng)會(huì)前往數(shù)據(jù)庫(kù)進(jìn)行搜索,將搜索到的信息交由大語(yǔ)言模型潤(rùn)色回復(fù)給用戶,并且展示相關(guān)的知識(shí)圖譜信息。技術(shù)安全知識(shí)問(wèn)答:該功能包含兩項(xiàng)類別,一個(gè)是純聊天問(wèn)答,在數(shù)據(jù)庫(kù)檢索相關(guān)信息后直接潤(rùn)色回答,另一個(gè)是知識(shí)圖譜展示問(wèn)答,在展示相關(guān)的知識(shí)圖譜信息后,對(duì)用戶的問(wèn)題進(jìn)行回答,讓用戶能更直觀的了解問(wèn)題主體與其他元素的內(nèi)在聯(lián)系。手動(dòng)構(gòu)建知識(shí)圖譜:用戶可以選擇只上傳實(shí)體或者上傳實(shí)體與關(guān)系,選擇后輸入實(shí)體或?qū)嶓w與關(guān)系,并且將它們上傳到Neo4j數(shù)據(jù)庫(kù)中。關(guān)系查詢:用戶通過(guò)輸入要查詢的實(shí)體,系統(tǒng)會(huì)檢索該實(shí)體,展示與實(shí)體有聯(lián)系的其他實(shí)體。實(shí)體識(shí)別:用戶通過(guò)輸入一條語(yǔ)句,系統(tǒng)能夠識(shí)別該語(yǔ)句中關(guān)于種養(yǎng)殖領(lǐng)域的實(shí)體,并將其重點(diǎn)標(biāo)注后展示給用戶。知識(shí)圖譜可視化:該功能主要內(nèi)嵌在其他功能當(dāng)中,在百科搜索、問(wèn)答聊天、實(shí)體關(guān)系查詢等功能中可視化相關(guān)的知識(shí)圖譜,提供給用戶。專家求助:用戶遇上無(wú)法解決的問(wèn)題時(shí),可以在系統(tǒng)中選擇對(duì)應(yīng)領(lǐng)域的專家,輸入自己的信息和遇到的問(wèn)題后,向該專家聯(lián)系發(fā)送問(wèn)題相關(guān)電子郵件,尋求專家的協(xié)助。社區(qū)交流:提供給用戶一個(gè)分享經(jīng)驗(yàn)和交流的微平臺(tái),用戶可以在上面發(fā)送經(jīng)驗(yàn)帖子,向其他人分享交流,同時(shí),用戶也可以在帖子下面進(jìn)行回復(fù),與其他人進(jìn)行交流探討。管理員用戶還擁有刪除帖子和審核帖子的功能,只有審核通過(guò)的帖子才會(huì)呈現(xiàn)在大眾面前,并且管理員可以對(duì)不合適的帖子進(jìn)行刪除處理。當(dāng)系統(tǒng)啟動(dòng),用戶登錄之后,用戶會(huì)進(jìn)入到用戶頁(yè)面,用戶頁(yè)面如下圖所示:圖17用戶頁(yè)面展示用戶頁(yè)面主要是交由用戶選擇登錄賬號(hào)、退出賬號(hào)、注冊(cè)賬號(hào)、修改密碼等操作,并且該頁(yè)面設(shè)置有反饋通道,用戶可以通過(guò)反饋通道向開發(fā)者和管理員發(fā)送反饋意見(jiàn)。已登錄的賬號(hào)要進(jìn)行修改密碼操作,需要輸入賬號(hào),新舊密碼以及確認(rèn)新密碼,只有當(dāng)舊密碼和賬號(hào)相匹配,以及新密碼和確認(rèn)密碼一致時(shí),才能夠成功修改密碼。用戶要注冊(cè)賬號(hào)時(shí),需要填入一系列信息,包括用戶名、手機(jī)號(hào)、賬號(hào)、密碼等,點(diǎn)擊注冊(cè)之后系統(tǒng)會(huì)先在數(shù)據(jù)庫(kù)中檢索用戶所要注冊(cè)的賬號(hào)是否存在,若賬號(hào)存在則無(wú)法注冊(cè),反之即可成功注冊(cè),系統(tǒng)的注冊(cè)頁(yè)面如圖18所示。圖18系統(tǒng)注冊(cè)頁(yè)面圖形驗(yàn)證碼采用captcha庫(kù)的ImageCaptcha包進(jìn)行功能實(shí)現(xiàn),利用string庫(kù)生成文本格式的驗(yàn)證碼和captcha生成圖片格式的驗(yàn)證碼,將圖片驗(yàn)證碼在前端呈現(xiàn)給用戶,文本驗(yàn)證碼在系統(tǒng)內(nèi)部與用戶輸入的驗(yàn)證碼進(jìn)行匹配,生成驗(yàn)證碼的代碼如下所示:importstring,randomfromcaptchaimportImageCaptchadefgenerate_captcha():chr_all=string.ascii_letters+string.digitschr_4=''.join(random.sample(chr_all,4))image=ImageCaptcha(width=160,height=80).generate_image(chr_4)returnimage,chr_45.2.1種養(yǎng)殖業(yè)百科種養(yǎng)殖業(yè)百科分為三個(gè)子領(lǐng)域,分別是種植業(yè)百科、畜牧業(yè)百科和水產(chǎn)百科,以種植業(yè)百科為例,在搜索框輸入小麥后,系統(tǒng)會(huì)檢索關(guān)于小麥的相關(guān)信息,然后將小麥的相關(guān)圖片、所屬類別、文字介紹等信息在前端頁(yè)面呈現(xiàn)給用戶,如圖19所示。圖19種植業(yè)百科展示頁(yè)面例子在此展示小麥百科的同時(shí),還會(huì)檢索和小麥相關(guān)的知識(shí)圖譜,并將其展示出來(lái)。當(dāng)用戶輸入文本之后,系統(tǒng)會(huì)判斷輸入的物種是否屬于該領(lǐng)域,若是屬于其他領(lǐng)域的物種時(shí),系統(tǒng)會(huì)直接返回檢索不到該物種的相關(guān)信息,其他兩個(gè)子領(lǐng)域的功能也是類似,該功能的工作流程如圖20所示。圖20百科展示流程圖5.2.2物種信息搜索問(wèn)答物種信息搜索問(wèn)答如百科展示一樣分為了三個(gè)種植業(yè)、水產(chǎn)業(yè)以及畜牧業(yè)三個(gè)子領(lǐng)域,用戶可以選擇進(jìn)入其中一個(gè)領(lǐng)域的頁(yè)面進(jìn)行信息搜索,該功能的具體工作流程如下:圖21物種信息搜索流程圖以畜牧業(yè)信息搜索為例,輸入“山羊有什么特點(diǎn)”,系統(tǒng)會(huì)將其判斷屬于畜牧業(yè)類的問(wèn)題,然后根據(jù)cypher語(yǔ)句和SQL語(yǔ)句分別到圖數(shù)據(jù)庫(kù)和SQLite數(shù)據(jù)庫(kù)進(jìn)行檢索,將檢索到的信息進(jìn)行合成回復(fù),最后將資料和答案呈現(xiàn)給用戶,如下圖所示:圖22百科信息檢索示例圖用戶問(wèn)出相關(guān)問(wèn)題后,系統(tǒng)會(huì)到數(shù)據(jù)庫(kù)中檢索相關(guān)的資料,并且將資料交由大模型進(jìn)行潤(rùn)色回答之后,返回前端頁(yè)面展現(xiàn)給用戶,同時(shí),系統(tǒng)還會(huì)提供一些相關(guān)的簡(jiǎn)介資料供用戶進(jìn)行參考。而與百科類似,當(dāng)用戶輸入不屬于該領(lǐng)域的物種時(shí),系統(tǒng)會(huì)直接提示用戶找不到該物種的相關(guān)資料。5.2.3技術(shù)安全知識(shí)問(wèn)答農(nóng)業(yè)技術(shù)安全知識(shí)問(wèn)答主要是針對(duì)于農(nóng)業(yè)數(shù)據(jù)安全、農(nóng)業(yè)應(yīng)用軟件安全、農(nóng)業(yè)信息安全管理等范圍的內(nèi)容進(jìn)行問(wèn)答回復(fù),該模塊主要分為兩個(gè)功能,一個(gè)為純對(duì)話功能,采用Streamlit存儲(chǔ)臨時(shí)聊天記錄,該功能同樣設(shè)置有用戶意圖判斷,當(dāng)用戶發(fā)送文本后,系統(tǒng)會(huì)判斷是否是在詢問(wèn)安全技術(shù)相關(guān)的問(wèn)題或者是在日常打招呼,然后根據(jù)意圖的不同進(jìn)行不同的操作,具體流程如下圖所示:圖23技術(shù)安全知識(shí)問(wèn)答流程圖在輸出對(duì)于用戶問(wèn)題回答的同時(shí),還會(huì)在左下角輸出三個(gè)預(yù)測(cè)用戶想要詢問(wèn)的問(wèn)題,用戶可以直接復(fù)制到輸入框中進(jìn)行提問(wèn)。問(wèn)答頁(yè)面如圖24所示。圖24技術(shù)安全問(wèn)答示例圖另一個(gè)對(duì)話功能是附帶知識(shí)圖譜的對(duì)話功能,系統(tǒng)會(huì)根據(jù)用戶輸入的問(wèn)題來(lái)檢索相關(guān)的信息,以知識(shí)圖譜的形式展示在前端頁(yè)面供用戶查看,并且會(huì)將查詢到的資料做一個(gè)合成回復(fù),形成最終的答案返回給用戶。該功能頁(yè)面如圖所示:圖25附帶知識(shí)圖譜的對(duì)話示例5.2.4關(guān)系查詢與實(shí)體識(shí)別關(guān)系查詢功能主要提供給用戶查詢給定的實(shí)體的關(guān)系,用戶輸入實(shí)體之后,系統(tǒng)會(huì)到圖數(shù)據(jù)庫(kù)進(jìn)行檢索,并將檢索到的實(shí)體和關(guān)系以表格和圖譜的形式返回給用戶,若檢索到的結(jié)果為空,則返回空白的信息,該功能的具體工作流程如圖所示:圖26關(guān)系查詢流程圖以檢索“海蝦”這個(gè)實(shí)體為例子,輸入海蝦之后,系統(tǒng)會(huì)將檢索到的資料展示出來(lái),用戶的數(shù)據(jù)移動(dòng)到實(shí)體上面時(shí),還可以查看該實(shí)體的名稱,關(guān)系查詢頁(yè)面如圖所示:圖27關(guān)系查詢頁(yè)面示例實(shí)體識(shí)別功能主要用于識(shí)別用戶輸入語(yǔ)句中的實(shí)體和詞性,用戶輸入語(yǔ)句文本之后,系統(tǒng)會(huì)將識(shí)別到的實(shí)體和詞性用突出顏色標(biāo)識(shí)出來(lái)。該功能主要由大語(yǔ)言模型進(jìn)行完成,通過(guò)提示詞給模型的輸出結(jié)構(gòu)進(jìn)行約束,讓模型能夠按照格式要求輸出結(jié)果,并且在提示詞中給予了模型少量樣本提示,讓模型在實(shí)體識(shí)別上更加精確,模型會(huì)識(shí)別句子中關(guān)于種養(yǎng)殖領(lǐng)域的實(shí)體,并將這些實(shí)體高亮展示出來(lái),實(shí)體識(shí)別頁(yè)面如圖所示:圖28實(shí)體識(shí)別頁(yè)面示例5.2.5構(gòu)建知識(shí)圖譜提供該功能可以鼓勵(lì)用戶貢獻(xiàn)自己的專業(yè)知識(shí)、經(jīng)驗(yàn)和見(jiàn)解,他們提供的信息往往具有比較高的專業(yè)性和時(shí)效性,有助于填補(bǔ)知識(shí)圖譜在特定領(lǐng)域或新興話題上的空白,保持內(nèi)容的前沿性,可以豐富知識(shí)圖譜的內(nèi)容來(lái)源,使之更加多元化、全面且貼近實(shí)際需求,用戶參與分?jǐn)偭酥R(shí)圖譜構(gòu)建與維護(hù)的工作量,減輕了平臺(tái)方在數(shù)據(jù)收集、整理和更新方面的投入。該功能有兩種選項(xiàng),一種為只上傳實(shí)體信息,另一種為上傳實(shí)體與實(shí)體的關(guān)系,兩種方式都是基于py2neo這個(gè)庫(kù)來(lái)實(shí)現(xiàn),只上傳實(shí)體信息的代碼如下:defcreate_node(graph:Graph,node_type:str,node_label:str,properties:dict):tx=graph.begin()node=Node(node_type,name=node_label,**properties)tx.create(node)mit()return"成功創(chuàng)建節(jié)點(diǎn)"構(gòu)建知識(shí)圖譜功能頁(yè)面如圖所示:圖29構(gòu)建知識(shí)圖譜頁(yè)面以創(chuàng)建實(shí)體與關(guān)系為例,具體代碼如下:defcreate_knowledge_graph(graph:Graph,node_type:str,node_label:str,properties:dict,relation_type:str,target_node_type:str,target_node_label:str,target_properties:dict):tx=graph.begin()#創(chuàng)建節(jié)點(diǎn)source_node=Node(node_type,name=node_label,**properties)target_node=Node(target_node_type,name=target_node_label,**target_properties)#創(chuàng)建關(guān)系relationship=Relationship(source_node,relation_type,target_node)tx.create(relationship)mit()return"成功創(chuàng)建節(jié)點(diǎn)和關(guān)系"用戶輸入源實(shí)體、目標(biāo)實(shí)體和關(guān)系的相關(guān)信息之后,點(diǎn)擊構(gòu)建圖譜按鈕,系統(tǒng)會(huì)調(diào)用pe2neo來(lái)連接Neo4j數(shù)據(jù)庫(kù),然后將輸入的節(jié)點(diǎn)信息轉(zhuǎn)換成Neo4j的節(jié)點(diǎn)單位,并且為兩個(gè)節(jié)點(diǎn)創(chuàng)建關(guān)系,最后將實(shí)體與關(guān)系上傳至數(shù)據(jù)庫(kù)中,完成知識(shí)圖譜的更新。5.2.6數(shù)據(jù)分析數(shù)據(jù)分析功能分別可以對(duì)用戶的行為和用戶上傳的文件進(jìn)行數(shù)據(jù)可視化分析,數(shù)據(jù)分析功能在用戶行為和用戶上傳文件的管理中發(fā)揮著較為重要的作用,它能夠通過(guò)數(shù)據(jù)可視化的方式,將海量復(fù)雜的數(shù)據(jù)轉(zhuǎn)化為直觀易懂的圖形和圖表,從而揭示出隱藏的規(guī)律、趨勢(shì)和關(guān)聯(lián),讓用戶對(duì)于下一步的工作有一個(gè)明確的思路和決策。用戶行為分析如圖所示:圖30用戶行為分析示例用戶行為分析部分代碼如下:#對(duì)話云圖wordcloud=WordCloud(font_path=font_path,width=800,height=400,background_color='white',max_words=50).generate(text)#意圖統(tǒng)計(jì)intent_labels=list(st.session_state["intent_counts"].keys())intent_values=list(st.session_state["intent_counts"].values())bar_chart=(Bar().add_xaxis(intent_labels).add_yaxis("次數(shù)",intent_values).set_global_opts(title_opts=opts.TitleOpts(title="對(duì)話意圖"),xaxis_opts=opts.AxisOpts(axislabel_opts={"rotate":0}),yaxis_opts=opts.AxisOpts(name="次數(shù)"),))returnbar_chart系統(tǒng)還有一個(gè)用于文件數(shù)據(jù)分析的功能,該功能主要是對(duì)文件中的字符類型的數(shù)據(jù)和數(shù)值類型的數(shù)據(jù)進(jìn)行統(tǒng)計(jì)分析,并且計(jì)算統(tǒng)計(jì)文檔中的缺失值、重復(fù)值等信息,最后將這些信息以圖表的形式展示出來(lái),文檔分析頁(yè)面如圖所示:圖31文檔分析示例5.2.7專家咨詢與報(bào)錯(cuò)通知專家咨詢功能提供了一個(gè)能與相關(guān)行業(yè)的專家直接交流的一個(gè)平臺(tái),而系統(tǒng)告警功能則是在系統(tǒng)出現(xiàn)錯(cuò)誤時(shí),會(huì)自動(dòng)向開發(fā)者發(fā)送郵件信息,并附帶上報(bào)錯(cuò)的時(shí)間、報(bào)錯(cuò)的內(nèi)容,這兩個(gè)功能都是基于SMTP協(xié)議進(jìn)行開發(fā),相關(guān)代碼如下所示:deffeedback_email(feedback,file=None):msg=MIMEMultipart()msg['From']=feedback_config.sender_emailmsg['To']=feedback_config.receiver_emailmsg['Subject']="新的用戶求助信息"body=feedbackmsg.attach(MIMEText(body,'plain'))iffile:try:withopen(file,'rb')asf:attachment=MIMEBase('application','octet-stream')attachment.set_payload(f.read())encoders.encode_base64(attachment)attachment.add_header('Content-Disposition','attachment',filename='file.pdf')msg.attach(attachment)except:logger.error(f"文件{file}打開失敗")server=smtplib.SMTP('',25)server.starttls()server.login(feedback_config.sender_email,feedback_config.sender_password)text=msg.as_string()server.sendmail(feedback_config.sender_email,feedback_config.receiver_email,text)server.quit()用戶可以將所遇到的問(wèn)題和相關(guān)的文件以郵件的形式發(fā)送給專家,請(qǐng)求專家?guī)兔f(xié)助解決問(wèn)題,當(dāng)專家有了解決問(wèn)題的方法時(shí),可以通過(guò)用戶留下的郵箱地址或者聯(lián)系電話來(lái)聯(lián)系用戶,對(duì)用戶進(jìn)行進(jìn)一步的指導(dǎo),給用戶提供專業(yè)上的幫助。專家咨詢頁(yè)面如圖32所示。圖32專家咨詢頁(yè)面5.2.8社區(qū)交流該功能是一種集信息發(fā)布、互動(dòng)討論于一體的社交平臺(tái)服務(wù),可以為用戶群眾創(chuàng)建一個(gè)開放性的、包容的交流平臺(tái),促進(jìn)用戶、管理者等人之間的溝通和協(xié)作。不同類型的用戶擁有不同的功能,具體如圖所示:圖33不同用戶功能圖普通用戶在社區(qū)交流功能中有三個(gè)功能,分別是查看已發(fā)送的帖子、查看所有帖子以及刪除自己的帖子,而管理員用戶有額外的功能,管理員可以審核帖子、刪除所有帖子,該功能基于SQLite多個(gè)表實(shí)現(xiàn),分別是帖子信息表、用戶回復(fù)信息表和用戶賬戶表,以查看所有帖子為例,功能頁(yè)面如圖所示:圖34查看帖子示例圖帖子采用彩色標(biāo)明作者的名稱和創(chuàng)建時(shí)間,當(dāng)作者在自己的帖子下方回復(fù)時(shí),也會(huì)特別注明該回復(fù)者是作者,而非作者在下方回復(fù)時(shí),名稱采用綠色標(biāo)明。而審核帖子為管理員用戶獨(dú)有的權(quán)限,普通用戶在發(fā)送帖子時(shí),帖子需要管理員用戶審核通過(guò)之后才能夠被其他人查看,而管理員用戶發(fā)送帖子可以直接通過(guò)被其他人所看到,管理員審核帖子時(shí),點(diǎn)擊審核通過(guò)即可將帖子公開。5.2.9農(nóng)作物種植推薦系統(tǒng)加入了農(nóng)作物種植推薦功能,采用決策樹模型為用戶推薦適合種植的農(nóng)作物,當(dāng)用戶輸入對(duì)應(yīng)的信息值之后,模型就會(huì)預(yù)測(cè)適合種植的農(nóng)作物,并給出農(nóng)作物介紹予以推薦,當(dāng)前支持的農(nóng)作物共有22種,分別是:蘋果,香蕉,黑格蘭,鷹嘴豆,椰子,咖啡,棉花,葡萄,黃麻,蕓豆,扁豆,玉米,芒果,蛾豆,綠豆,麝香瓜,橘子,木瓜,鴿子豆,石榴,大米,西瓜。決策樹模型的構(gòu)建過(guò)程是一個(gè)迭代的過(guò)程,它從根節(jié)點(diǎn)開始,通過(guò)選擇最佳的特征和閾值來(lái)分割數(shù)據(jù)集,創(chuàng)建分支,每個(gè)分支代表數(shù)據(jù)的一個(gè)子集,然后對(duì)每個(gè)子集重復(fù)這個(gè)過(guò)程,遞歸地構(gòu)建子樹,直到滿足停止條件,最終形成一個(gè)完整的決策樹模型。在這里使用scikit-learn庫(kù)提供的分類決策樹模型進(jìn)行訓(xùn)練,模型訓(xùn)練代碼如下:圖35決策樹模型訓(xùn)練代碼農(nóng)業(yè)種養(yǎng)殖推薦功能效果如圖所示,輸入左邊對(duì)應(yīng)的數(shù)字信息之后,點(diǎn)擊提交參數(shù),系統(tǒng)就會(huì)給出推薦種植的產(chǎn)品。圖36農(nóng)作物種植推薦效果圖5.3本章小結(jié)在本章的開篇首先對(duì)當(dāng)前時(shí)代背景下,種養(yǎng)殖領(lǐng)域獲取知識(shí)和服務(wù)時(shí)所存在的困難之處進(jìn)行了概述,之后對(duì)整個(gè)系統(tǒng)的基本情況進(jìn)行了一個(gè)詳細(xì)的描述,介紹了每一個(gè)模塊為用戶提供的核心功能。接著,重點(diǎn)闡述了整個(gè)系統(tǒng)的功能細(xì)節(jié),從物種百科的豐富內(nèi)容到農(nóng)作物種植推薦這項(xiàng)功能,對(duì)系統(tǒng)的每一個(gè)功能都進(jìn)行了逐一的詳細(xì)介紹,包括功能示例的展示,以幫助用戶更好地理解和掌握這些功能的實(shí)際應(yīng)用。此外,本文還詳細(xì)闡述了每一個(gè)功能的作用,對(duì)功能的操作步驟進(jìn)行了清晰的指導(dǎo),并通過(guò)展示每一個(gè)功能的具體頁(yè)面和功能效果,使用戶能夠直觀地感受到這些功能的實(shí)用性和便捷性,確保用戶在使用過(guò)程中能夠高效地完成任務(wù),從而提升整體的用戶體驗(yàn)。6總結(jié)與展望本文針對(duì)在當(dāng)今大數(shù)據(jù)背景之下,我國(guó)農(nóng)業(yè)種養(yǎng)殖領(lǐng)域主要存在的不足之處進(jìn)行了研究,將知識(shí)圖譜和大語(yǔ)言模型技術(shù)融合進(jìn)農(nóng)業(yè)種養(yǎng)殖領(lǐng)域,對(duì)分散在互聯(lián)網(wǎng)之中的數(shù)據(jù)進(jìn)行收集整合,將各類信息資源匯總到知識(shí)圖譜之中,并結(jié)合大語(yǔ)言模型構(gòu)建了一個(gè)技術(shù)服務(wù)系統(tǒng),從而能讓用戶從搜索與對(duì)話中獲取相關(guān)技術(shù)知識(shí),從理論上來(lái)講,本文將知識(shí)圖譜結(jié)合大語(yǔ)言模型應(yīng)用在農(nóng)業(yè)種養(yǎng)殖領(lǐng)域是一種對(duì)未來(lái)應(yīng)用發(fā)展的探索。本文主要完成了下面這些工作:第一章主要對(duì)本系統(tǒng)的開發(fā)背景、開發(fā)意義以及國(guó)內(nèi)外的研究現(xiàn)狀進(jìn)行闡述。第二章主要對(duì)本系統(tǒng)實(shí)現(xiàn)過(guò)程中所用到的核心技術(shù)進(jìn)行介紹,分別介紹了知識(shí)圖譜的發(fā)展和概念、意圖識(shí)別和實(shí)體識(shí)別的基礎(chǔ)概念以及實(shí)現(xiàn)方式。第三章主要對(duì)本系統(tǒng)進(jìn)行可行性分析和需求分析,以及介紹系統(tǒng)的架構(gòu)設(shè)計(jì)、數(shù)據(jù)庫(kù)的設(shè)計(jì)、實(shí)體識(shí)別方式的設(shè)計(jì)。第四章從數(shù)據(jù)獲取和數(shù)據(jù)庫(kù)部署開始,完整地介紹了從數(shù)據(jù)的獲取到知識(shí)圖譜構(gòu)建的整個(gè)過(guò)程。第五章則是對(duì)基于知識(shí)圖譜的農(nóng)業(yè)種養(yǎng)殖技術(shù)服務(wù)系統(tǒng)進(jìn)行概述,以及重點(diǎn)闡述了各個(gè)功能的實(shí)現(xiàn)以及每個(gè)功能內(nèi)部的工作流程,并展示了各個(gè)功能相關(guān)頁(yè)面的最終呈現(xiàn)效果。本文基于知識(shí)圖譜對(duì)農(nóng)業(yè)種養(yǎng)殖領(lǐng)域的知識(shí)資源做了一個(gè)整合,并且為廣大農(nóng)業(yè)從業(yè)者和愛(ài)好者提供了一個(gè)技術(shù)服務(wù)平臺(tái),但是,由于開發(fā)時(shí)間比較緊張,搭建整個(gè)系統(tǒng)的工作量比較大,并且對(duì)與農(nóng)業(yè)種養(yǎng)殖領(lǐng)域的研究還不夠深入,目前本文還存在著許多缺陷,下面是一些在后續(xù)的工作可以優(yōu)先進(jìn)行改進(jìn)的地方,后續(xù)的工作研究可以圍繞以下方面進(jìn)行展開:對(duì)于農(nóng)業(yè)種養(yǎng)殖領(lǐng)域的知識(shí)圖譜構(gòu)建不完善,本文知識(shí)圖譜的數(shù)據(jù)來(lái)源主要來(lái)自于百科信息、國(guó)家公開的資源庫(kù)以及國(guó)家政策文件,缺乏相關(guān)專業(yè)領(lǐng)域人員的指導(dǎo)知識(shí)。由于數(shù)據(jù)爬取過(guò)程以及實(shí)體關(guān)系提取過(guò)程較為簡(jiǎn)單,知識(shí)圖譜的數(shù)據(jù)中仍然存在一些臟數(shù)據(jù),整個(gè)知識(shí)圖譜中的數(shù)據(jù)規(guī)模和質(zhì)量還有待提高。在當(dāng)今的互聯(lián)網(wǎng)上,還存在著許多農(nóng)業(yè)種養(yǎng)殖領(lǐng)域其他方面的數(shù)據(jù),還有許多相關(guān)的數(shù)據(jù)未被利用到,在后續(xù)的研究中可以加入更多高質(zhì)量、多方面的數(shù)據(jù),以提高整個(gè)知識(shí)圖譜的規(guī)模和質(zhì)量,并且優(yōu)化數(shù)據(jù)獲取和實(shí)體關(guān)系提取的步驟,減少知識(shí)圖譜中的臟數(shù)據(jù)。由于前期意圖識(shí)別訓(xùn)練數(shù)據(jù)不足,在種養(yǎng)殖業(yè)問(wèn)答模塊是使用了大語(yǔ)言模型進(jìn)行輔助判斷,沒(méi)有特地去訓(xùn)練一個(gè)專門用于該模塊意圖識(shí)別的模型,而在技術(shù)安全模塊由于收集到的語(yǔ)料數(shù)據(jù)比較充分,因此在該模塊訓(xùn)練了一個(gè)Deberta模型作為意圖識(shí)別模型,
溫馨提示
- 1. 本站所有資源如無(wú)特殊說(shuō)明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請(qǐng)下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請(qǐng)聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
- 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁(yè)內(nèi)容里面會(huì)有圖紙預(yù)覽,若沒(méi)有圖紙預(yù)覽就沒(méi)有圖紙。
- 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
- 5. 人人文庫(kù)網(wǎng)僅提供信息存儲(chǔ)空間,僅對(duì)用戶上傳內(nèi)容的表現(xiàn)方式做保護(hù)處理,對(duì)用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對(duì)任何下載內(nèi)容負(fù)責(zé)。
- 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請(qǐng)與我們聯(lián)系,我們立即糾正。
- 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時(shí)也不承擔(dān)用戶因使用這些下載資源對(duì)自己和他人造成任何形式的傷害或損失。
最新文檔
- 廣東省惠州市惠城區(qū)2025~2026學(xué)年第一學(xué)期期末七年級(jí)地理試題(含答案)
- 養(yǎng)老院入住老人社會(huì)交往與精神慰藉制度
- 企業(yè)招聘與選拔標(biāo)準(zhǔn)制度
- 統(tǒng)編版高一語(yǔ)文必修上、下冊(cè)期末復(fù)習(xí):理解性默寫 專項(xiàng)練習(xí)題匯編(含答案)
- 飛機(jī)鉚裝工創(chuàng)新實(shí)踐模擬考核試卷含答案
- 脫脂工安全強(qiáng)化知識(shí)考核試卷含答案
- 我國(guó)上市公司獨(dú)立董事制度的困境與突破:基于實(shí)踐與理論的雙重視角
- 制鞋工崗前技術(shù)基礎(chǔ)考核試卷含答案
- 汽車貨運(yùn)理貨員安全防護(hù)考核試卷含答案
- 電解熔鑄工安全知識(shí)強(qiáng)化考核試卷含答案
- 礦井突水機(jī)理研究-洞察及研究
- 2025-2026秋“1530”安全教育記錄表
- 執(zhí)法中心設(shè)計(jì)方案(3篇)
- 藥物警戒基礎(chǔ)知識(shí)全員培訓(xùn)
- 骨密度檢測(cè)的臨床意義
- 鉆探原始班報(bào)表試行版
- 腸菌移植治療炎癥性腸病專家共識(shí)(2025)解讀
- T/CPPC 1032-2021建筑生產(chǎn)資源分供商評(píng)價(jià)規(guī)范
- 機(jī)耕合同協(xié)議書范本簡(jiǎn)單
- 送車免責(zé)合同協(xié)議書模板
- 外科學(xué)重癥監(jiān)測(cè)治療與復(fù)蘇
評(píng)論
0/150
提交評(píng)論