








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