汪嘉珮 熊曉亮 蔡旭 邵彎 劉俊麗
摘?要:本文針對潛江龍蝦養(yǎng)殖領(lǐng)域知識分散和資源利用率低等問題,通過研究知識圖譜關(guān)鍵技術(shù),應(yīng)用知識圖譜相關(guān)技術(shù)來構(gòu)建潛江小龍蝦產(chǎn)業(yè)知識庫,目的是幫助龍蝦養(yǎng)殖戶提供養(yǎng)殖技術(shù);為客戶、散戶提供龍蝦方面知識庫,解決養(yǎng)殖戶查詢知識困難,客戶選擇產(chǎn)品獲取信息困難的問題;同時(shí),該研究可以應(yīng)用于產(chǎn)品推薦系統(tǒng)中幫助客戶進(jìn)行選購方案決策。
關(guān)鍵詞:Neo4j;潛江龍蝦養(yǎng)殖;知識圖譜;網(wǎng)絡(luò)爬蟲;數(shù)據(jù)可視化
0 引 言
湖北潛江市漁業(yè)養(yǎng)殖近幾年來不斷發(fā)展,整體產(chǎn)業(yè)規(guī)模不斷增大,養(yǎng)殖面積不斷提高,主產(chǎn)區(qū)明顯聚焦,產(chǎn)量快速增長,同時(shí),養(yǎng)殖戶所面臨的技術(shù)問題也越來越復(fù)雜,潛江小龍蝦在養(yǎng)殖的過程中所需要的養(yǎng)殖技術(shù)、面臨的病害難癥如果不能被及時(shí)解決,即使每年高校有大量水產(chǎn)專業(yè)的畢業(yè)生會去往潛江養(yǎng)殖基地就業(yè),但是應(yīng)屆生技術(shù)經(jīng)驗(yàn)薄弱,之前在校的實(shí)踐機(jī)遇比較少,書本上的知識更新速度是跟不上養(yǎng)殖的大環(huán)境發(fā)展的速度的,這樣能夠指導(dǎo)養(yǎng)殖的人才是比較欠缺的,容易造成在養(yǎng)殖環(huán)節(jié)理論與實(shí)踐脫節(jié);為了龍蝦養(yǎng)殖方面的知識普及,本文將采用知識圖譜構(gòu)建龍蝦養(yǎng)殖方面的知識庫,其中包括養(yǎng)殖方面的常識知識、養(yǎng)殖技術(shù)、防病防害技術(shù)。
1 知識圖譜
“知識圖譜”最起始為谷歌知識搜索功能的產(chǎn)品名稱,被學(xué)術(shù)界和工業(yè)界廣泛使用,成為各類結(jié)構(gòu)化知識庫的統(tǒng)稱。知識圖譜,就是將人類知識結(jié)構(gòu)化形成的知識系統(tǒng),其中包括基本事實(shí)、通過規(guī)則和其他有關(guān)的結(jié)構(gòu)化信息,可用于信息檢索、推理決策等智能任務(wù)。知識圖譜是人工智能研究和智能信息服務(wù)的基礎(chǔ)核心技術(shù),能夠賦予智能體精準(zhǔn)查詢、深度理解與邏輯推理等能力,被廣泛運(yùn)用于搜索引擎、問答系統(tǒng)、智能對話系統(tǒng)及個(gè)性化推薦等知識驅(qū)動的任務(wù)。按照類型劃分,知識圖譜可以包含語言知識、常識知識、世界知識、認(rèn)知知識、專業(yè)知識等,知識圖譜的特點(diǎn)是結(jié)構(gòu)化,一般用三元組形式表示不同元素間的負(fù)責(zé)關(guān)系,從而形成一個(gè)復(fù)雜的網(wǎng)絡(luò)。
三元組作為知識圖譜的核心其表達(dá)形式分別為< 實(shí)體 1,關(guān)系,實(shí)體 2> 和< 實(shí)體,屬性,屬性值> ,以表示實(shí)體之間關(guān)系和實(shí)體的特征。用實(shí)體“潛江龍蝦”作例子,其種類包括“潛江龍蝦小青2-4、潛江龍蝦中青4-6、潛江龍蝦大青6-8、潛江龍蝦蝦苗、湖北潛江伊東藻、潛江螃蟹”。其中< 實(shí)體 1,關(guān)系,實(shí)體 2> 對應(yīng)< 潛江龍蝦,種類,潛江龍蝦小青2-4> ,< 實(shí)體,屬性,屬性值> 對應(yīng)< 潛江龍蝦,繁殖季節(jié),全年> 。
2 Neo4j 圖數(shù)據(jù)庫
Neo4j 是基于 Java 的可視化良好的開源 NoSLQ 非關(guān)系型數(shù)據(jù)庫,存儲結(jié)構(gòu)為圖形結(jié)構(gòu),由節(jié)點(diǎn)、關(guān)系和屬性組成,以實(shí)體表示節(jié)點(diǎn),實(shí)體間的關(guān)系表示鏈接節(jié)點(diǎn)的有向邊,屬性為節(jié)點(diǎn)和關(guān)系提供具體信息[5]。可以有效解決農(nóng)業(yè)特殊性、開放數(shù)據(jù)共享、農(nóng)業(yè)數(shù)據(jù)繁雜和農(nóng)業(yè)知識獲取等問題。相比傳統(tǒng)數(shù)據(jù)格式,Neo4j數(shù)據(jù)庫信息更加直觀,而且使用Cypher語言查詢時(shí),不需要復(fù)雜的連接運(yùn)算。Cypher的查詢效率不會隨著數(shù)據(jù)的增加而降低。因此,本文將構(gòu)建一種基于Neo4j的潛江龍蝦管理知識圖譜。
3 潛江漁類技術(shù)知識圖譜問題的構(gòu)建
本文中知識圖譜的繪制用Mac系統(tǒng)版本的Neo4j,電腦為Mac Book Pro,處理器為2.6 GHz六核Intel Core i7,操作系統(tǒng)為mac OS Big Sur,驗(yàn)證語言為Cypher語言。通過知識獲取、構(gòu)建圖譜、知識圖譜更新及知識圖譜應(yīng)用等4個(gè)步驟。將數(shù)據(jù)導(dǎo)入Neo4j圖數(shù)據(jù)庫中。
3.1模式層設(shè)計(jì)與構(gòu)建
本文的數(shù)據(jù)源主要從潛江小龍蝦苗四寶水產(chǎn)網(wǎng)www.qjsbsc.com.cn、潛江小龍蝦源頭養(yǎng)殖基地網(wǎng)www.zqylp.com,定義了276 個(gè)實(shí)體,304 個(gè)關(guān)系。
3.2數(shù)據(jù)層設(shè)計(jì)與構(gòu)建
數(shù)據(jù)層的構(gòu)建包含各大實(shí)體類、屬性及實(shí)體間的關(guān)系。
構(gòu)建模式層以龍蝦為一級實(shí)體,以品種、常見病害、生育期、繁殖方式等二級實(shí)體作為小龍蝦的屬性值,再以小青中青、大青大紅等三級實(shí)體作為品種的屬性值,以概述、特點(diǎn)等四級實(shí)體作為“小青中青、大青大紅”的屬性值。二級節(jié)點(diǎn)以水位管理技術(shù)、
4 知識存儲
本文將采用 Neo4j 來進(jìn)行知識存儲。Neo4j 有三種知識導(dǎo)入方法:Cypyer 語法創(chuàng)建法、Load 命令導(dǎo)入法和 Shell 命令導(dǎo)入法。
4.1 知識的導(dǎo)入方法。
Neo4j數(shù)據(jù)庫知識導(dǎo)入3種方法之一是Cypher語言中的CREATE語句??梢噪S時(shí)插入數(shù)據(jù)更新知識,但當(dāng)遇到大規(guī)模數(shù)據(jù)時(shí),會偶爾出現(xiàn)數(shù)據(jù)重復(fù)、缺漏、錯(cuò)誤等問題。第2種是Cypher語言的Load.csv文件的導(dǎo)入,需要將csv文件放入Neo4j的安裝目錄import下,可選擇本地或者遠(yuǎn)程導(dǎo)入,而且不支持即時(shí)更新。第3種是官方提供的Neo4j-admin import工具,這種方法占用資源少,但是需要脫機(jī)導(dǎo)入,且只適用于初始化導(dǎo)入。
4.2 模塊導(dǎo)入。
第2步,依據(jù)得到的知識數(shù)據(jù)分別構(gòu)建二級節(jié)點(diǎn)模塊,包括品種節(jié)點(diǎn)模塊、生育周期節(jié)點(diǎn)模塊、繁殖方式節(jié)點(diǎn)模塊、常見病害節(jié)點(diǎn)模塊、飼養(yǎng)管理節(jié)點(diǎn)模塊、水稻田間管理節(jié)點(diǎn)模塊、小龍蝦苗間選擇與放養(yǎng)模塊以及水稻品種選擇和栽培模塊。
(1)品種節(jié)點(diǎn)模塊。品種節(jié)點(diǎn)模塊包含若干個(gè)三級節(jié)點(diǎn),即不同品種小龍蝦的名字,如小青、中青以及大青大紅等。每個(gè)三級節(jié)點(diǎn)都包含節(jié)點(diǎn)的名字、產(chǎn)地、介紹以及特點(diǎn)等屬性。發(fā)育全過程分為4個(gè)階段:幼體、幼蝦、成體、成蝦,以小青和大青大紅節(jié)點(diǎn)導(dǎo)入為例,具體的CREATE語句如下:
CREATE(大青大紅:小龍蝦{name:‘中青’,nationality:‘潛江’,introduce:‘大青大紅又稱紅頰,幼蝦獨(dú)立生活,主要攝食浮游動物,體長1.0~3.0 cm;’})
本模塊中包括二級節(jié)點(diǎn)品種和小青、中青等三級節(jié)點(diǎn),所以建立的是上下位關(guān)系。同樣以小青和大青大紅節(jié)點(diǎn)為例,具體的構(gòu)建語句為:
CREATE
(小龍蝦)-[:Include]->(小青),
(小龍蝦)-[:Include]->(大青大紅)
構(gòu)建好品種節(jié)點(diǎn)模塊后,輸入“MATCH n:小龍蝦RETURN n”來查詢導(dǎo)入的品種數(shù)目是否與知識結(jié)構(gòu)表中的品種數(shù)目相同,是否與之匹配。
(2)生育期節(jié)點(diǎn)模塊。生育期節(jié)點(diǎn)模塊包含二級節(jié)點(diǎn)生育期和發(fā)育全過程分為4個(gè)階段:幼體、幼蝦、成體、成蝦等三級節(jié)點(diǎn)。
CREATE
(小龍蝦)-[:Include]->(生育期),
(生育期)-[:Include]->(幼體)
(3)繁殖方式節(jié)點(diǎn)模塊。繁殖方式節(jié)點(diǎn)模塊包含二級節(jié)點(diǎn)繁殖方式和脫殼管理、稻田管理、水位管理、水質(zhì)管理與日常巡查、防病除害等三級節(jié)點(diǎn)。每個(gè)三級節(jié)點(diǎn)中都有名字和介紹2個(gè)屬性。
(4)常見病害節(jié)點(diǎn)模塊。常見病害節(jié)點(diǎn)模塊包含二級節(jié)點(diǎn)常見病害和黑鰓病、爛鰓病、爛尾病、水霉病、纖毛蟲病等三級節(jié)點(diǎn)。每個(gè)三級節(jié)點(diǎn)都有名字和發(fā)病特點(diǎn)2個(gè)屬性。
4.3 知識圖譜更新
構(gòu)建小龍蝦種植管理知識圖譜的目的是讓更多學(xué)者方便、快速了解小龍蝦知識,但是本知識圖譜的內(nèi)容可能無法包含所有的小龍蝦品種以及與小龍蝦相關(guān)的知識,而且隨著科技發(fā)展,會出現(xiàn)越來越多的小龍蝦品種。本文所選用的知識導(dǎo)入方法的最大好處就是可以隨時(shí)更新知識,可以實(shí)現(xiàn)更新的知識第一時(shí)間出現(xiàn)在知識圖譜中。
本文構(gòu)建的知識圖譜中刪減、更新內(nèi)容是利用從底到端的方式進(jìn)行的,一步一步逐層進(jìn)行,防止刪除正確的知識或者導(dǎo)入更新知識導(dǎo)致關(guān)系構(gòu)建錯(cuò)誤。
4.4 知識圖譜的試驗(yàn)驗(yàn)證
4.4.1 Cypher語言查詢驗(yàn)證。完成小龍蝦知識圖譜構(gòu)
因?yàn)楸疚氖顷P(guān)于小龍蝦的知識圖譜,所以主要是小龍蝦知識的查詢應(yīng)用,下面舉例介紹。
查詢小龍蝦黑鰓病以及黑鰓病的防治方法:
match(p:常見病害{name:"黑鰓病"})return p或者match(p:常見病害)where p1.name="黑鰓病"return p1;
match(p1)-[:WAY]->(爛尾病:常見病害{name:‘爛尾病’})return p1.概述
查詢結(jié)果如圖6所示,查詢時(shí)間僅需22 ms,要比其他查詢方法節(jié)省很多時(shí)間。
通過上述的一些舉例,本文構(gòu)建的知識圖譜可以利用Cypher語言查詢到使用者需要的小龍蝦知識,查詢效率高于網(wǎng)絡(luò)查詢和書籍查閱,而且想要查詢的內(nèi)容消息都是最新更新的,準(zhǔn)確率也較高。
4.4.2 對比驗(yàn)證。
本節(jié)針對不同使用人群通過使用不同查詢途徑做了試驗(yàn)對比。具體使用人群為種植農(nóng)戶、農(nóng)學(xué)學(xué)者以及普通用戶,本文從中各選擇了2位;測評標(biāo)準(zhǔn)包括時(shí)間、準(zhǔn)確率以及全面性。比如,種植用戶通過網(wǎng)絡(luò)去查詢或詢問有經(jīng)驗(yàn)的種植者;而農(nóng)學(xué)學(xué)者通過知識圖譜查詢方式進(jìn)行文獻(xiàn)和書籍查詢;普通用戶使用網(wǎng)絡(luò)和文獻(xiàn)相結(jié)合的方法查詢。在查詢時(shí)間上,基于Neo4j知識圖譜查詢方式占據(jù)了絕對的優(yōu)勢;在準(zhǔn)確率上,種植農(nóng)戶和農(nóng)學(xué)學(xué)者傳統(tǒng)查詢方式準(zhǔn)確率要高于知識圖譜查詢方式,但是知識圖譜查詢方式的平均準(zhǔn)確率要高于傳統(tǒng)查詢方式;從全面性來看,知識圖譜查詢方式處于劣勢,因?yàn)镹eo4j知識庫初步構(gòu)建,需要經(jīng)過不斷完善。從總體考慮,Neo4j可以作為一個(gè)新型的知識庫逐漸代替?zhèn)鹘y(tǒng)的知識庫。
4.5 存在的問題
本文在構(gòu)建知識圖譜過程中,遇到了一些不可避免的問題。一是在構(gòu)建知識圖譜時(shí),利用csv文件將小龍蝦知識進(jìn)行分類,用loadcsv方式將csv文件導(dǎo)入Neo4j中,但發(fā)現(xiàn)如何對知識結(jié)構(gòu)進(jìn)行整理是一大難題,因?yàn)橐患?、二級、三級?jié)點(diǎn)以及它們的屬性各自交叉,因而對小龍蝦知識的整理不是那么理想。二是采用CREATE語句構(gòu)建時(shí),發(fā)現(xiàn)語句頗為繁瑣,而且當(dāng)導(dǎo)入大量語句時(shí),會出現(xiàn)導(dǎo)入速度緩慢問題。
5 潛江龍蝦養(yǎng)殖知識圖譜可視化展示
Shell 命令導(dǎo)入法使用 neo4j-admin import 工具進(jìn)行數(shù)據(jù)導(dǎo)入
6 結(jié)語與展望
本文初步設(shè)計(jì)了潛江龍蝦養(yǎng)殖領(lǐng)域語義類型和語義關(guān)系,對知識圖譜技術(shù)、構(gòu)建流程和圖數(shù)據(jù)庫進(jìn)行了介紹,采用 Neo4j進(jìn)行知識存儲,開發(fā)了潛江龍蝦養(yǎng)殖領(lǐng)域知識圖譜可視化平臺,實(shí)現(xiàn)了實(shí)體查詢功能,幫助養(yǎng)殖戶提高專業(yè)技術(shù)知識,增加潛江龍蝦養(yǎng)殖領(lǐng)域信息資源利用率,并為潛江龍蝦領(lǐng)域知識圖譜系統(tǒng)研究奠定基礎(chǔ)。本文潛江龍蝦養(yǎng)殖數(shù)據(jù)為人工實(shí)體抽取,從多源異構(gòu)數(shù)據(jù)中自動識別高精度實(shí)體仍是知識圖譜的最大難點(diǎn)之一。下一步將深入研究潛江龍蝦養(yǎng)殖領(lǐng)域的自動實(shí)體抽取技術(shù),實(shí)現(xiàn)潛江龍蝦知識圖譜智能問答等功能,為養(yǎng)殖戶提供更智能的信息獲取服務(wù)。
參考文獻(xiàn)
[1]周井娟.中國潛江龍蝦養(yǎng)殖業(yè)發(fā)展軌跡及技術(shù)變遷[J].中國農(nóng)學(xué)通報(bào),2016,32(8):22-29.
[2]Tong P, Zhang Q, Yao J. Leveraging Domain Context for Question Answering Over Knowledge Graph [J]. Data ence and Engineering, 2019, 4(4) : 323-335.
[3]婁國哲,王蘭成.基于知識圖譜的網(wǎng)絡(luò)輿情知識組織方法研究[J].
[4]情報(bào)理論與實(shí)踐,2019,42(1):58-64.
[5]袁培森,楊承林,宋玉紅,等.基于 Stacking 集成學(xué)習(xí)的水稻表型組學(xué)實(shí)體分類研究[J].農(nóng)業(yè)機(jī)械學(xué)報(bào),2019,50(11):144-152.Shenshouer.Neo4j[EB/OL].[2016-05-21].http ://neo4j.org/.
[6]徐增林,盛泳潘,賀麗榮,等.知識圖譜技術(shù)綜述[J].電子科技大學(xué)學(xué)報(bào),2016,45(4):589-606.
作者簡介:汪嘉珮(1995-),女,漢族,湖北省孝感市,碩士研究生,助教,研究方向:人工智能、計(jì)算機(jī)應(yīng)用。本文通訊作者:熊曉亮。
基金項(xiàng)目:武漢工商學(xué)院2021年校級科學(xué)研究項(xiàng)目“湖北省潛江市小龍蝦產(chǎn)業(yè)知識圖譜關(guān)鍵技術(shù)研究”(A2021015,主持人:汪嘉珮);