摘" 要:為解決存儲高質(zhì)量民族醫(yī)藥數(shù)據(jù)時的標準化和系統(tǒng)化困難,為民族醫(yī)藥的推廣和研究提供參考,針對互聯(lián)網(wǎng)中豐富的民族醫(yī)療資源,爬取了藏醫(yī)、苗醫(yī)、壯醫(yī)、蒙醫(yī)數(shù)據(jù),對數(shù)據(jù)進行處理。使用Neo4j圖數(shù)據(jù)庫存儲數(shù)據(jù)到民族醫(yī)藥知識圖譜庫,然后進行知識圖譜信息抽取和融合,進而構(gòu)建民族醫(yī)藥方面知識圖譜并進行可視化?;谥R圖譜的民族醫(yī)藥數(shù)據(jù)可視化系統(tǒng),可以降低信息搜索的成本,具有一定的研究意義和使用價值。
關(guān)鍵詞:知識圖譜;民族醫(yī)藥;可視化;圖數(shù)據(jù)庫
中圖分類號:TP391.4 文獻標識碼:A 文章編號:2096-4706(2025)04-0151-06
Ethnic Medicine Data Mining and Visualization Based on Knowledge Graph
MENG Jiana, LIU Yidan, YANG Jun, ZHAO Di
(Computer Science and Engineering College, Dalian Minzu University, Dalian" 116650, China)
Abstract: To solve the standardization and systematization difficulties in storing high-quality ethnic medicine data and provide reference for the popularization and research of ethnic medicine, aiming at the rich ethnic medical resources on the Internet, this paper extracts the data of Tibetan medicine, Miao medicine, Zhuang medicine and Mongolian medicine, and processes the data. It uses Neo4j graph database to store the data into the ethnic medicine knowledge graph database, and then carries out Knowledge Graph information extraction and fusion. Then the Knowledge Graph of ethnic medicine is constructed and visualized. The visualization system of ethnic medicine data based on Knowledge Graph can reduce the cost of information search, and has certain research significance and application value.
Keywords: Knowledge Graph; ethnic medicine; visualization; graph database
0" 引" 言
本文主要借鑒知識圖譜技術(shù),實現(xiàn)民族醫(yī)藥數(shù)據(jù)可視化系統(tǒng),該系統(tǒng)通過整合互聯(lián)網(wǎng)中的民族醫(yī)療資源,利用知識圖譜技術(shù)實現(xiàn)信息的抽取、融合與推理,并構(gòu)建可視化展示平臺,有效解決了民族醫(yī)藥領(lǐng)域數(shù)據(jù)存儲、標準化及系統(tǒng)化難題,促進了民族醫(yī)藥知識的更新與進步,降低了信息搜索成本,為民族醫(yī)藥的研究與應(yīng)用提供了有力支持[1-2]。
1" 民族醫(yī)藥知識圖譜框架設(shè)計
知識圖譜是結(jié)構(gòu)化的語義知識庫,用于以符號形式描述物理世界中的概念及其相互關(guān)系。其基本組成單位是“實體-關(guān)系-實體”三元組,和實體及其相關(guān)“屬性-值”對。實體可以是具體事物或者抽象概念,關(guān)系可以是實體的屬性或?qū)嶓w之間的關(guān)系。實體間通過關(guān)系相互聯(lián)結(jié),構(gòu)成網(wǎng)狀的知識結(jié)構(gòu)[3-4]。運用知識圖譜作為民族醫(yī)藥數(shù)據(jù)的載體,可以有效地挖掘民族醫(yī)藥之間的內(nèi)在關(guān)聯(lián),拓展民族醫(yī)藥領(lǐng)域的知識發(fā)現(xiàn)。
民族醫(yī)藥知識圖譜的構(gòu)建有以下幾個階段:數(shù)據(jù)獲取和處理、知識獲取、圖譜設(shè)計和圖譜存儲與應(yīng)用。數(shù)據(jù)獲取和處理是從互聯(lián)網(wǎng)相關(guān)民族醫(yī)藥網(wǎng)站爬取數(shù)據(jù),然后處理異常數(shù)據(jù)、重復(fù)數(shù)據(jù)和缺失值。知識獲取通過實體識別、關(guān)系抽取和屬性抽取獲取民族醫(yī)藥文章信息知識圖譜的三元組,圖譜存儲是利用Neo4j圖數(shù)據(jù)庫對民族醫(yī)藥知識圖譜節(jié)點的存儲,實現(xiàn)對醫(yī)藥信息的精確查詢[5-6]。
本次項目涉及知識圖譜領(lǐng)域,將民族醫(yī)藥數(shù)據(jù)利用知識圖譜形式進行構(gòu)建[7-8]。通過搜尋藥學(xué)方面數(shù)據(jù)將其轉(zhuǎn)化為可表示詞向量,進而將詞向量進行解釋和標注,完成后將其存儲到構(gòu)建的民族醫(yī)藥知識圖譜庫中,進行知識圖譜信息抽取、融合及推理,進而構(gòu)建民族醫(yī)藥方面知識圖譜系統(tǒng),過程如圖1所示。
2" 民族醫(yī)藥數(shù)據(jù)分析及可視化系統(tǒng)構(gòu)建
2.1" 數(shù)據(jù)獲取與處理
本項目利用Python編寫一個按關(guān)鍵字的爬蟲程序,高效而快捷的獲取大量與民族醫(yī)藥相關(guān)的知識。項目開展至今,通過獲取大量文獻及相關(guān)文件,對民族醫(yī)藥數(shù)據(jù)進行了篩選與整理,例如,藏醫(yī)方面的《晶珠本草》《月王藥診》。
從民族醫(yī)藥各類相關(guān)網(wǎng)站獲取了一部分醫(yī)藥數(shù)據(jù)共2 294條,表1為藏族《晶珠本草》中部分藥品數(shù)據(jù),包括民族、藥品名稱、藥物功能、藥品性質(zhì)等屬性。為后續(xù)完成節(jié)點創(chuàng)建,建立節(jié)點關(guān)系提供數(shù)據(jù)支持。表2為常見中藥對應(yīng)疾病、癥狀、用藥的部分數(shù)據(jù)。
通過對原始數(shù)據(jù)清洗與預(yù)處理,去除重復(fù)數(shù)據(jù)、格式統(tǒng)一化的解析,使得原始數(shù)據(jù)具有結(jié)構(gòu)化,將文本數(shù)據(jù)轉(zhuǎn)化為結(jié)構(gòu)化的實體、屬性和關(guān)系,建立起數(shù)據(jù)之間的聯(lián)系;經(jīng)過結(jié)構(gòu)化處理的數(shù)據(jù),利用知識圖譜的建模方法和圖數(shù)據(jù)庫技術(shù)構(gòu)建民族醫(yī)藥知識圖譜。
2.2" 知識圖譜存儲
為了實現(xiàn)知識圖譜數(shù)據(jù)的持久化保存,并將其應(yīng)用于數(shù)據(jù)查詢、數(shù)據(jù)分析和知識推理以及應(yīng)用開發(fā)等各方面,本文將數(shù)據(jù)轉(zhuǎn)換為三元組形式的數(shù)據(jù)。使用Python編程語言,并調(diào)用Py2neo庫將經(jīng)過數(shù)據(jù)處理的三元組連接到圖數(shù)據(jù)庫,并進行導(dǎo)入。這樣的操作將使得數(shù)據(jù)變得更易于訪問和理解,同時也為未來的知識圖譜應(yīng)用提供了基礎(chǔ)。使用Neo4j中的Neo4j-Browser工具[9-10],結(jié)合民族醫(yī)藥數(shù)據(jù)創(chuàng)建節(jié)點,核對節(jié)點并建立節(jié)點間關(guān)系,生成了如圖2所示的各個藥物性質(zhì)與功能的關(guān)系圖譜。其中藍色節(jié)點表示對應(yīng)治療的癥狀或疾病,其他顏色節(jié)點表示各類藥物,例如黃色顏色此藥物表示可溶性珍寶藥物屬性。
利用Python編程語言及其Py2neo庫與Neo4j圖數(shù)據(jù)庫交互,以構(gòu)建藏族民族醫(yī)藥知識圖譜的過程。首先,定義Neo4j數(shù)據(jù)庫的URL及必要的包括用戶名和密碼的認證信息,并據(jù)此初始化數(shù)據(jù)庫連接。隨后,實例化Py2neo的Graph類,創(chuàng)建一個名為graph的實例,用于執(zhí)行Cypher查詢和命令,實現(xiàn)數(shù)據(jù)庫的交互操作。
為了在圖數(shù)據(jù)庫中高效匹配節(jié)點,進一步利用NodeMatcher類創(chuàng)建了名為match1的實例,該實例基于已建立的graph連接,支持后續(xù)的節(jié)點搜索操作。
在處理數(shù)據(jù)級階段,打開包含經(jīng)過處理的以空格為分隔符記錄、每行詳細記錄了一種藥材的多種屬性的藏族民族醫(yī)藥信息數(shù)據(jù)的文本文件。通過逐行讀取并解析文件內(nèi)容,每行數(shù)據(jù)遵循特定格式,包括標識符、藥材名稱、以逗號分隔的藥材功效描述,以及其他內(nèi)部標識符字段。
在構(gòu)建圖模型階段,首先對于解析出的每行數(shù)據(jù),創(chuàng)建以“藏族:藥材”為標簽的節(jié)點,并設(shè)置相應(yīng)的藥材名稱屬性。接著,解析藥材的功效描述,并通過維護一個功效列表(命名為func)來確保功效節(jié)點的唯一性,逐一創(chuàng)建尚未存在于圖數(shù)據(jù)庫中的功效節(jié)點。最后,在藥材節(jié)點與每個對應(yīng)的功效節(jié)點之間建立了“作用”和“用藥”兩種關(guān)系,表達藥材與其功效之間的內(nèi)在聯(lián)系。其中,“作用”關(guān)系從藥材節(jié)點指向功效節(jié)點,表示藥材具有某種特定功效;“用藥”關(guān)系則從功效節(jié)點指向藥材節(jié)點,反映了該功效被用于特定藥材的關(guān)聯(lián)。構(gòu)建流程如圖3所示。
2.3" 可視化實現(xiàn)
基于目前數(shù)據(jù)庫內(nèi)數(shù)據(jù),已經(jīng)顯示出藥品與癥狀或治療方法的關(guān)系圖,僅僅顯示一張復(fù)雜的節(jié)點圖無法快速找到需要查找的藥材與藥材的關(guān)系,因此劃分功能模塊,逐一完成了向數(shù)據(jù)庫增加藥材和功效的節(jié)點,增加藥材與功效間關(guān)系,刪除藥材和功效節(jié)點以及節(jié)點間關(guān)系,修改節(jié)點信息或關(guān)系,以及按照藥材查詢或者按照功效查詢獲得相關(guān)圖譜信息。系統(tǒng)首先通過編碼連接到數(shù)據(jù)庫,成功連接后進行數(shù)據(jù)處理和數(shù)據(jù)入庫操作。隨后使用Python語言設(shè)計一套直觀、易用的GUI界面,對節(jié)點的增刪改查和對關(guān)系的增刪改等功能實現(xiàn)。在GUI模板完成后,逐步添加詳細功能模塊。關(guān)鍵技術(shù)包括操作圖形數(shù)據(jù)庫的CQL語言以及使用Python實現(xiàn)操作的Py2neo功能模塊包[11-12],圖4為系統(tǒng)主界面。
系統(tǒng)主界面建立思路如下:首先定義一個名為MainWindow的類,該類創(chuàng)建了包含圖形用戶界面(GUI)的主窗口,用于展示和管理名為“民族醫(yī)藥系統(tǒng)”的應(yīng)用。界面使用Tkinter庫構(gòu)建,同時結(jié)合PIL(Python Imaging Library)來處理圖像。圖5為系統(tǒng)主界面實現(xiàn)流程圖。
在初始化接口階段,首先設(shè)置了主窗口的標題、大小、位置。然后,定義兩個框架(frame_top和frame_side),分別用于顯示圖像和按鈕。frame_top用于圖像顯示,通過嵌入的畫布控件動態(tài)加載和調(diào)整圖像大?。籪rame_side用于操作按鈕和查詢功能,提供用戶交互的接口。為了確保系統(tǒng)能夠成功加載和顯示圖像,使用動態(tài)圖像加載方法,其做法是讀取指定路徑的圖像文件,根據(jù)畫布大小動態(tài)調(diào)整圖像尺寸,并在畫布上展示。同時,通過機制設(shè)計確保在窗口尺寸變化時自動調(diào)用該方法,以適應(yīng)新的畫布尺寸。
創(chuàng)建窗口按鈕階段,在框架中創(chuàng)建了一系列按鈕,按鈕文本如“添加藥材”“編輯關(guān)系”等,直接反映了其各自的功能,便于用戶快速識別與操作。每個按鈕都綁定了相應(yīng)的事件處理函數(shù),當用戶點擊按鈕時,會觸發(fā)相應(yīng)的操作,如打開新的窗口以輸入或修改數(shù)據(jù)。
創(chuàng)建查詢模塊階段,首先創(chuàng)建查詢功能界面,界面由一個標簽、一個輸入框和一個提交按鈕組成。查詢操作的處理邏輯封裝在MyClick方法中。當用戶點擊提交按鈕時,MyClick方法首先會刪除當前畫布上的圖像,然后更新圖像路徑為查詢結(jié)果對應(yīng)的圖像文件,并重新調(diào)用create_image方法來顯示新的圖像。完成查詢后,系統(tǒng)會彈出一個提示框,告知用戶查詢結(jié)果。
當系統(tǒng)完成用戶點擊的功能后,會等待用戶的下一步操作,若用戶點擊其他功能,則系統(tǒng)會根據(jù)用戶點擊的按鈕不同,打開不同的子窗口(如添加藥材、編輯關(guān)系等)。這些子窗口的類(如NodeDemo、FuncDemo等)在其他文件中定義,并通過參數(shù)傳遞不同的值來執(zhí)行不同的操作。
系統(tǒng)主界面上部標有“民族醫(yī)藥系統(tǒng)”,界面中部顯示數(shù)據(jù)庫內(nèi)所有節(jié)點信息及關(guān)聯(lián)關(guān)系,右側(cè)列出用戶可操作的功能模塊,其中包括添加藥材、添加功效、添加關(guān)系、編輯藥材、編輯功效、編輯關(guān)系、刪除節(jié)點、刪除關(guān)系以及查詢功能。以查詢功能為例,說明系統(tǒng)操作功能。查詢功能中,主頁的右下角輸入想要查詢的藥材名稱,若查詢成功則彈出“數(shù)據(jù)查詢成功!”提醒。圖6中查詢“豬頭石”這一藥材,界面彈出提示查詢成功,系統(tǒng)將查詢到的具有此節(jié)點圖譜顯示在主界面上。
2.4" 系統(tǒng)測試
系統(tǒng)測試是評估軟件系統(tǒng)質(zhì)量和功能的過程,驗證系統(tǒng)是否符合設(shè)計規(guī)范、滿足用戶需求,并且在不同環(huán)境下能夠正常運行和穩(wěn)定工作。通過輸入各種不同類型的測試數(shù)據(jù),模擬實際使用場景檢驗系統(tǒng)的穩(wěn)定性、可靠性和有效性,以確保系統(tǒng)達到預(yù)期目標,經(jīng)過測試該系統(tǒng)符合預(yù)期要求。部分測試數(shù)據(jù)如表3所示。
3" 結(jié)" 論
本文利用知識圖譜技術(shù),對爬取的互聯(lián)網(wǎng)上的藏醫(yī)、苗醫(yī)、壯醫(yī)、蒙醫(yī)等多元民族醫(yī)藥數(shù)據(jù)進行結(jié)構(gòu)化處理,構(gòu)建出包含復(fù)雜交互關(guān)系的民族醫(yī)藥知識網(wǎng)絡(luò),實現(xiàn)了信息的精準抽取、高效融合與智能推理,在此基礎(chǔ)上,設(shè)計并實現(xiàn)了一個直觀易用的可視化展示平臺,該平臺將民族醫(yī)藥知識轉(zhuǎn)化為直觀化的表現(xiàn)形式,提升了信息檢索的效率與準確性,降低了信息獲取的成本。未來本研究將進一步擴大數(shù)據(jù)源的廣度與深度,并不斷優(yōu)化數(shù)據(jù)挖掘算法,為民族醫(yī)藥的現(xiàn)代化、國際化發(fā)展開辟新路徑。
參考文獻:
[1] 郭文培.互聯(lián)網(wǎng)醫(yī)療進入發(fā)展新階段 [N].經(jīng)濟日報,2023-04-28(9).
[2] 孫肇陽,黃小圓,許溪彬,等.語義知識圖譜與科學(xué)知識圖譜在中醫(yī)藥領(lǐng)域的應(yīng)用 [J].醫(yī)學(xué)信息學(xué)雜志,2021,42(7):38-42.
[3] 張吉祥,張祥森,武長旭,等.知識圖譜構(gòu)建技術(shù)綜述 [J].計算機工程,2022,48(3):23-37.
[4] 肖明勝.數(shù)據(jù)結(jié)構(gòu)知識圖譜構(gòu)建及可視化交互研究 [D].贛州:贛南師范大學(xué),2023.
[5] 熊旺平,劉世雄.基于知識圖譜的中藥智能服藥服務(wù)系統(tǒng)的研究 [J].現(xiàn)代信息科技,2023,7(18):137-141+149.
[6] 陳計智,沈潔,朱星昊,等.民族醫(yī)藥非遺文化傳承方式及發(fā)展趨勢研究 [J].中國中醫(yī)藥現(xiàn)代遠程教育,2022,20(19):43-46.
[7] 韓冰玉,劉源,王一涵,等.基于人工智能技術(shù)的中醫(yī)四診客觀化知識圖譜可視化分析 [J].現(xiàn)代中醫(yī)藥,2024,44(4):18-25.
[8] 樊淼,高屹.基于藏成藥數(shù)據(jù)的知識圖譜可視化構(gòu)建 [J].現(xiàn)代計算機,2023,29(24):64-68+102.
[9] 謝云霏,賈李蓉,代金剛.基于Neo4j的中醫(yī)導(dǎo)引學(xué)知識圖譜構(gòu)建 [J].中國數(shù)字醫(yī)學(xué),2024,19(4):33-38.
[10] 柴源.基于Neo4j的用戶閱讀數(shù)據(jù)圖數(shù)據(jù)庫的應(yīng)用 [J].現(xiàn)代信息科技,2021,5(7):95-100+106.
[11] 閆藝婷,黃文杰.基于數(shù)據(jù)結(jié)構(gòu)的知識圖譜構(gòu)建及可視化研究 [J].現(xiàn)代信息科技,2023,7(4):171-173+176.
[12] 陳頌斌,高屹,羅麗錦,等.藏醫(yī)藥文章信息知識圖譜構(gòu)建與可視化分析 [J].西藏科技,2024,46(2):61-67.
作者簡介:孟佳娜(1972—),女,漢族,吉林四平人,教授,博士,研究方向:機器學(xué)習(xí)和文本挖掘;通信作者:趙迪(1992—),男,漢族,吉林四平人,講師,博士,研究方向:實體識別和知識圖譜。
收稿日期:2023-08-06
基金項目:遼寧省自然科學(xué)基金計劃項目(2022-BS-104);遼寧省大學(xué)生創(chuàng)新創(chuàng)業(yè)訓(xùn)練計劃課題(202312026121);大連市社科院2024年調(diào)研課題(2024dlsky024)