中圖分類號:R22 文獻標識碼:A文章編號:1006-1959(2025)15-0016-05
DOI:10.3969/j.issn.1006-1959.2025.15.003
Constructionof a Knowledge Graph of Mongolian Medicine Formulas Based on Directed Graphs
WANG Xiaodong,ZHAO Huiru,LIANGWei,ZUO Fengyun,CHENXuedong,WUYaqin (SchoolofComputerInformation,InnerongoliaMedicalUniversity,HohhotO1O,InnerMongolia,hina)
Abstract:Basedone24MongolianmedicalforulasinteancentbokofMongolianmedicine“GuanzeZhiXi,thispaperuses4jgap databasetecholoombinedithonsetwokXlibarytoostructaowledgeapofogolianfoulassedoirectedahd realizethestrucuedreseatooftaoiulaspotscdingul efcacyomosdtdsadallo Mongolianmedicalfuoains124osnd36dgesoveigthesofelatoss:HSUO69ges) (259edges)ndEAS35ges)isoledgahprovidespprtfoolegzditellgntecomendion onnaturalaoleotdaasTsfoaf MongolianmedicinalforulasotolyelpstopreseveandpsonteknowledgeoftraditioalMongolianmedicine,butalsoprovidesae perspectivforahdeveloetgoldiotesipteatioiaoffoatiotl and helps to promote the modernization and intelligentization process of Mongolian medicine.
eyWords:Mongolian medicine formulas;Knowledge graph;Directed graph;Neo4j;Entityrelationshij
蒙醫(yī)方劑是蒙醫(yī)藥學中的一個重要組成部分,根據蒙醫(yī)理論和臨床經驗,它是由一種或多種藥材按照一定比例組合而成用來預防和治療各種疾病的藥物配方[1。隨著時間的推移,蒙醫(yī)方劑被記錄在歷代醫(yī)家的眾多古籍中,這些古籍成為了后世學習和研究的重要資料。知識圖譜本質是一種結構化顯性知識庫。醫(yī)學知識圖譜以結構化的形式描述醫(yī)學實體和關系,是整合海量醫(yī)學資源的重要表示之一[3]。構建中醫(yī)藥領域知識圖譜旨在為中醫(yī)藥的創(chuàng)新發(fā)展提供動力[4]。
2022年11月國家中醫(yī)藥管理局制定了《\"十四五\"中醫(yī)藥信息化發(fā)展規(guī)劃》,明確提出了加快中醫(yī)藥關鍵數字技術攻關,利用大數據、人工智能等新一代信息技術構建中醫(yī)古籍人工智能技術應用平臺和中醫(yī)藥知識服務系統(tǒng)5。2024年6月自治區(qū)衛(wèi)生健康委制定了《自治區(qū)中醫(yī)藥(蒙醫(yī)藥)“創(chuàng)立新質創(chuàng)造新品”三年行動方案》,提出基于大數據、人工智能等技術,將中醫(yī)藥(蒙醫(yī)藥)古籍與傳統(tǒng)知識的隱性知識顯性化,構建中醫(yī)(蒙醫(yī))經典理論知識庫,推進活態(tài)傳承,實現數字化、影像化記錄,揭示中醫(yī)藥(蒙醫(yī)藥)知識領域的動態(tài)發(fā)展規(guī)律。近年來,蒙醫(yī)藥結合新一代信息技術開展的相關研究取得了一定進展,但在深度與廣度上,仍存在較大的發(fā)展空間。構建蒙醫(yī)方劑知識圖譜,可以為挖掘蒙醫(yī)藥方劑實體關系提供方法,可以為蒙醫(yī)藥知識服務平臺建設、新藥研發(fā)以及臨床決策輔助提供支撐,可以為蒙醫(yī)藥的傳承發(fā)展提供動力。
1相關技術
1.1知識圖譜知識圖譜以圖結構進行數據存儲,網絡中的節(jié)點表示實體,節(jié)點之間的邊表示實體和實體之間的關系。隨著新一代信息技術的快速發(fā)展,中醫(yī)藥領域正積極探索與知識圖譜技術的融合,以促進理論與應用研究的進步與創(chuàng)新。李燦等8從4種常用命名實體識別模型中遴選最優(yōu)模型進行實體抽取,構建知識圖譜。陳健等構建中風病古籍醫(yī)案“知識體-知識元-語義與語義關系”多粒度知識表示體系,構建知識圖譜并開展可視化呈現與分析。1.2Neo4j 圖數據庫Neo4j屬于NoSQL數據庫,用于存儲和管理圖形數據結構,能夠大幅度提升數據檢索的性能[,廣泛應用于處理高度互連數據集的場景。Cypher作為一種聲明式的查詢語言,基于內存索引和高效圖遍歷算法實現快速查詢響應。Neo4j圖數據庫提供高效的數據存儲和查詢能力,能夠探索和分析復雜的關系網絡,從而促進知識發(fā)現和科學創(chuàng)新。徐安迎等運用BiLSTM-CRF、人工定義規(guī)則、內容分析法和Neo4j技術構建肺癌中醫(yī)診療知識圖譜。戎菲等[運用Cypher語言在Neo4j圖數據庫中設計一種符合中醫(yī)臨床思維模式的知識圖譜框架。
1.3有向圖NetworkX是一個強大的Python庫,專門用于創(chuàng)建、操作和研究復雜網絡的結構、動態(tài)特性以及功能。它提供了靈活的數據結構來表示各種類型的網絡,包括但不限于有向圖(DiGraph)和無向圖(Graph)。組成有向圖的每一條邊是有方向的,即一個起點和一個終點。在構成蒙醫(yī)方劑的各實體之間,通過有向圖可以清晰表達實體之間關系。如方劑(包含) $$ 藥物、方劑(具備) $$ 功效等。有向圖在科研中用于建模和分析具有方向性的關系網絡,能夠幫助理解系統(tǒng)內部的相互作用和信息流動。李斌等[13]將有向圖模型和算法應用到醫(yī)院的就診流程分析,由計算機信息系統(tǒng)自動提供當前最優(yōu)預約檢查時間和流程排序。孫鑫亮等4構造證型對應癥狀組合的聯(lián)合概率分布函數,將中醫(yī)診斷問題轉化為有向圖搜索問題。
2蒙醫(yī)方劑的數據采集及預處理
本研究的數據集來源于蒙醫(yī)著作《觀者之喜》中的242首蒙醫(yī)方劑,藥物成分數共計2630味,去重后藥物數共計400味。經過前期掃描、OCR識別等數據采集步驟后,將數據結果集存儲于Excel文件。方劑數據集包含ID、方劑名稱、別名、來源、劑型、成份數、功能、主治、用法、處方、備注等字段[。本研究涉及到的字段有ID、名稱、成份數、功能、主治、處方等,其中\(zhòng)"處方\"字段含各藥物及用量數據,屬于半結構化文本字段,鑒于本研究數據需求,通過正則表達式去除用量數據,僅保留方劑內藥物名稱信息。利用JIEBA庫輔以自定義詞庫對“功能”與“主治\"字段完成分詞,各關鍵詞以逗號分隔,字段結束以句號分隔。設計程序完成以上所有數據預處理步驟后,人工再次核對并糾正分詞不準確、錯別字等問題。
3有向圖模型設計
本研究選擇有向圖作為構建蒙醫(yī)方劑知識圖譜的模型,相較于其他模型,有向圖能夠更準確地表達實體之間的因果關系和其他方向性關系。它不僅能夠展示方劑的內在邏輯結構,還能揭示方劑與藥物、功效和病癥之間的聯(lián)系。有向圖模型在表達和分析具有方向性的關系網絡時具有明顯的優(yōu)勢。
3.1方劑實體定義方劑 (FjName) ):代表一種特定的蒙醫(yī)方劑。功效( ΔFjFunction, ):代表方劑的一種或多種功效。成分( |FjPrescription? ):代表構成方劑的各種藥物。主治L (FjAttending) ):代表方劑主治的病癥或癥狀。
3.2圖實體定義
3.2.1節(jié)點定義方劑節(jié)點:對于每一種方劑,創(chuàng)建一個節(jié)點,標簽為方劑。功效節(jié)點:對于每種功效,創(chuàng)建一個節(jié)點,標簽為功效。成分節(jié)點:對于每種成分,創(chuàng)建一個節(jié)點,標簽為成分。主治節(jié)點:對于每種主治,創(chuàng)建一個節(jié)點,標簽為主治。
3.2.2邊定義HAS_FUNCTION:對于每種方劑和其對應的功效,創(chuàng)建一條從方劑節(jié)點指向功效節(jié)點的邊,邊的類型為HAS_FUNCTION。CONTAINS:對于每種方劑和其對應的成分,創(chuàng)建一條從方劑節(jié)點指向成分節(jié)點的邊,邊的類型為CONTAINS。TREATS:對于每種方劑和其對應的主治,創(chuàng)建一條從方劑節(jié)點指向主治節(jié)點的邊,邊的類型為TREATS。
3.3圖模型構建
3.3.1符號定義對于給定的數據集D,其中每一行r包含方劑名稱 FjName ,功效 FjFunction 處方成分Fjgreripgion以及主治FjAtending。N代表節(jié)點集合, NF 代表所有方劑名稱的節(jié)點集合, NH 代表所有功效的節(jié)點集合,Nc 代表所有成分的節(jié)點集合, ΔNA 代表所有主治的節(jié)點集合。E代表邊集合, EHASFUNCIION 代表方劑到功效的邊集合, ECONTAINS 代表方劑到成分的邊集合, ETREATS 代表方劑到主治的邊集合。
3.3.2節(jié)點集合構建方劑名稱節(jié)點集合 NF 構建過程如公式(1)所示;功效節(jié)點集合 NH 構建過程如公式(2)所示;成分節(jié)點集合 Nc 構建過程如公式(3)所示;主治節(jié)點集合 ΔNA 構建過程如公式(4)所示。
NF={r[FjName]∣r∈D}


NA={aDiΓ∈DΛa∈split(r[FjAttending])}
3.3.3邊集合構建方劑到功效的邊集合EHAS_FUNCHION構建過程如公式(5)所示;方劑到成分的邊集合ECONTAINS構建過程如公式(6)所示;方劑到主治的邊集合 EIREAIS 構建過程如公式(7)所示。
EHASFUNCIION={(r[FjNamel],f)∣r∈D∧f∈split(r[FjFunction])}
ECovrans={(r[FjName],c)|r∈D∧c∈split(r[FjPrescripion])}
ETREATS={(r[FjName],a)∣r∈D∧a∈split(r[FjAttending])}
3.3.4圖的構建圖G可以表示為:
G=(N,E)
其中節(jié)點集合N為所有節(jié)點的并集:
N=NF∪NH∪NC∪NA
邊集合E為所有邊的并集:
E=EHASFUNCIIONUECONTAINSUETREAIS
4基于有向圖的蒙醫(yī)方劑知識圖譜構建算法
該算法的主要思路是從Excel文件中讀取蒙醫(yī)方劑數據,并基于這些數據構建有向圖,然后將圖中的節(jié)點和邊導人到Neo4j數據庫中。每個方劑對應圖中的一個節(jié)點,并與功效、成分、主治等類型的節(jié)點通過不同的關系類型相連。
讀取數據:從指定路徑讀取Excel文件,并將其內容加載到PandasDataFrame中,命名為df。
創(chuàng)建圖模型:使用NetworkX庫初始化有向圖G。
提取并添加節(jié)點: ① 初始化節(jié)點集合:創(chuàng)建4個空集合,分別用于存儲方劑名稱、功效名稱、成分名稱和主治名稱。 ② 遍歷數據集:遍歷DataFramedf的每一行,從每一行中提取方劑名稱、功效名稱、成分名稱和主治名稱,并將它們添加到相應的集合中。③ 添加節(jié)點到圖中:遍歷上述4個集合,將集合中的每個元素作為節(jié)點添加到圖G中,并設置相應的節(jié)點類型屬性。
添加邊。
再次遍歷DataFramedf的每一行,根據每一行數據中的方劑名稱、功效名稱、成分名稱和主治名稱,在圖G中添加相應的邊。
連接到Neo4j數據庫并創(chuàng)建節(jié)點和關系: ① 建立連接:使用給定的URI、用戶名和密碼創(chuàng)建一個Neo4j驅動實例driver。 ② 定義創(chuàng)建節(jié)點和關系的函數:遍歷圖G中的所有節(jié)點、邊及其屬性,使用Cypher語句MERGE確保節(jié)點和關系不會被重復創(chuàng)建。 ③ 執(zhí)行創(chuàng)建節(jié)點和關系的操作:在Neo4j會話中執(zhí)行上述定義的函數,從而在Neo4j數據庫中創(chuàng)建節(jié)點和關系。 ④ 關閉連接:關閉Neo4j驅動實例drivero
5結果
根據以上算法構建Python程序并執(zhí)行,知識圖譜結果保存于Neo4j圖數據庫。使用Cypher語句MATCH (n)-[r]-(m)RETURNn,r,m查詢蒙醫(yī)方劑知識圖譜所有的實體和關系。知識圖譜共含1124個節(jié)點,其中方劑節(jié)點242個,成分節(jié)點400個,主治節(jié)點339個,功效節(jié)點143個。含關系類型3363條邊,其中邊類型為HAS_FUNCTION邊269條,CONTAINS邊2559條,TREATS邊535條。蒙醫(yī)方劑知識圖譜局部圖見圖1。
因知識圖譜規(guī)模較大,圖1無法清晰觀察節(jié)點與邊的詳細情況。以蒙醫(yī)方劑“阿拉坦阿如-5”為例展示節(jié)點與邊的細節(jié),其成分為金色訶子、石榴、波棱瓜子、五靈脂、黑冰片,功效鎮(zhèn)赫依助消化,主治消化不良、胃痛、小腸赫依希拉、目黃等。因其很多節(jié)點屬于共享節(jié)點,位置交叉分布,截圖無法完全顯示。蒙醫(yī)方劑“阿拉坦阿如-5\"在知識圖譜中節(jié)點與邊的詳細情況見圖2。
圖1蒙醫(yī)方劑知識圖譜

圖2蒙醫(yī)方劑“阿拉坦阿如-5\"在知識圖譜中的節(jié)點與邊

6討論
通過將蒙醫(yī)方劑、藥物成分、功效及主治之間的關系進行結構化表示,形成蒙醫(yī)方劑知識圖譜。它不僅展示了蒙醫(yī)方劑內在的邏輯結構,還揭示了方劑與所含藥物、功能效果以及治療病癥之間的聯(lián)系。
每一種方劑作為一個節(jié)點,與其相關的藥物成分、功效和主治病癥通過不同類型的邊連接起來,這些邊分別代表了“包含”“具有”和\"治療\"的關系。每一個方劑節(jié)點通過\"CONTAINS\"邊與多個藥物成分節(jié)點相連,這表明該方劑由哪些藥物組成。這種關系的可視化有助于理解單個方劑的構成,可以為臨床醫(yī)生提供了快速查找某一方劑成分的方法。方劑節(jié)點與功效節(jié)點之間通過“HAS_FUNCTION\"邊相連,這意味著該方劑具有某種或某些治療效果。通過這種方式,可以方便地查看某個方劑的作用機制,為方劑的選擇提供依據。通過“TREATS\"邊,方劑節(jié)點與主治節(jié)點建立了聯(lián)系,表明該方劑適用于治療哪些病癥。這種關聯(lián)有助于臨床決策支持,當確定患者病癥后,可以迅速定位適用的方劑。
知識圖譜問答是指給定自然語言問題,通過對問題進行語義理解和解析,進而利用知識圖譜進行查詢、推理得出答案。蒙醫(yī)方劑知識圖譜能夠為基于自然語言處理的蒙醫(yī)方劑知識問答系統(tǒng)提供強有力的支持。通過節(jié)點和邊,系統(tǒng)可以快速地定位到用戶提問相關的蒙醫(yī)方劑的具體功效或者適合治療的病癥等信息。知識圖譜由于概念之間關系被準確定義,因此可以明確顯示推理過程,從而為推薦系統(tǒng)帶來解釋性[。對于臨床醫(yī)生和科研人員來說,基于知識圖譜的智能推薦系統(tǒng)可以根據輸入的病癥信息或其他條件,推薦最合適的蒙醫(yī)方劑。這種個性化推薦不僅提高了診療效率,也增強了治療方案的針對性。在新藥研發(fā)過程中,知識圖譜可以幫助研究人員更好地理解傳統(tǒng)蒙醫(yī)方劑的組成及其作用機理,從而啟發(fā)新的藥物組合或改良現有方劑。此外,在臨床決策輔助方面,醫(yī)生可以利用圖譜中豐富的信息進行綜合判斷,選擇最適合患者的治療方案。特別是在面對復雜的多病因病癥時,知識圖譜能夠幫助醫(yī)生全面了解各蒙醫(yī)方劑的優(yōu)缺點,做出更加合理的治療選擇,同時也能夠為疾病的診斷、治療和預后提供有力的客觀依據[18]
然而,蒙醫(yī)方劑知識圖譜的構建也存在一些挑戰(zhàn)。在數據預處理階段,由于原始數據來源于古籍,存在一定的模糊性和不規(guī)范性,因此需要通過數據清洗、人工勘誤等手段來確保數據質量。在知識圖譜的維護更新方面,隨著新知識的加入,要對知識圖譜進行更新,或者將現有的圖譜與其他相關圖譜進行有效整合,形成更為完整的知識體系[19,相關的算力和存儲成本將陡然遞增。此外,對于構建知識圖譜后的隱性知識挖掘方面的研究仍有待加強[20]。
7總結
構建蒙醫(yī)方劑知識圖譜對于蒙醫(yī)藥學的傳承和發(fā)展具有重要意義。它將傳統(tǒng)的蒙醫(yī)藥學知識以數字化的形式保存下來,便于后人學習和研究,通過引入大數據和人工智能技術,使古老的醫(yī)學智慧煥發(fā)出新的活力。蒙醫(yī)方劑知識圖譜為蒙醫(yī)藥學的研究和發(fā)展提供了新的視角,還可以為知識問答系統(tǒng)、智能推薦系統(tǒng)、新藥研發(fā)與臨床決策輔助等多個應用領域奠定堅實基礎。隨著技術的不斷進步,蒙醫(yī)方劑知識圖譜將在更多應用場景中發(fā)揮重要作用,這有利于促進蒙醫(yī)藥學與現代醫(yī)學的融合,推動蒙醫(yī)藥學的現代化進程,也為未來蒙醫(yī)藥學知識的服務化、智能化應用開辟了新的道路
參考文獻:
[1]奧·烏力吉,布和巴特爾.傳統(tǒng)蒙藥與方劑[M].赤峰:科學技術出版社,2013.
[2]張君冬,劉江峰,鄧景鵬,等.圖模驅動的在線醫(yī)療健康智慧問答服務研究[].現代情報,2025,45(1):164-176.
[3]YueD,ZhangK,ZhuangL,etal.Annotation scheme and spec-ification for named entities and relations on Chinese medicalknowledge graph [C]//Chinese Lexical Semantics:2Oth Work-shop(CLSW).2019:563-574.
[4]李思思,燕燕,夏書劍,等.中醫(yī)湯劑知識圖譜的構建與樣例查詢方法研究[].中華中醫(yī)藥學刊,2024,42(8):31-36,264-265.
[5]國家中醫(yī)藥管理局.國家中醫(yī)藥管理局關于印發(fā)“十四五”中醫(yī)藥信息化發(fā)展規(guī)劃的通知[EB/OL].(2022-11-25)[2024-08-01].http://www.natcm.gov.cn/guicaisi/zhengcewenjian/2022-12-05/28427.html.
[6]自治區(qū)衛(wèi)生健康委員會.自治區(qū)衛(wèi)生健康委辦公室關于印發(fā)中醫(yī)藥(蒙醫(yī)藥)傳承發(fā)展\"創(chuàng)立新質創(chuàng)造新品”三年行動方案的通知 [EB/OL].(2024-06-05)[2024-08-01].http://wjw.nmg.gov.cn/zzb/wjtz/202406/t20240605_2519253.html.
[7]陳明,劉蓉,熊回香.基于醫(yī)療知識圖譜的智能問答系統(tǒng)研究[].情報科學,2023,41(12):118-126.
[8]李燦,鎮(zhèn)可涵,唐東昕,等.基于方劑數據集的知識圖譜構建研究[].世界中醫(yī)藥,2024,19(9):1329-1333.
[9]陳健,楊鳳,任巧生,等.基于知識元理論的中風病古籍醫(yī)案知識表示與古今雙模知識圖譜構建研究.中國中醫(yī)藥信息雜志,2024,31(11):24-32.
[10]魏鵬,周冰原,吳安琪,等.基于Neo4j的中風病知識圖譜構建思路與應用探析[].中醫(yī)臨床研究,2024,16(22):1-8.
[11]徐安迎,胡孔法,楊濤.基于Neo4j的肺癌中醫(yī)診療知識圖譜構建研究[].世界科學技術-中醫(yī)藥現代化,2023,25(4):1456-1461.
[12]戎菲,屈堯,張逸雯,等.基于Neo4j構建知識圖譜分析胡鏡清論治癡呆的思路與特色.世界科學技術-中醫(yī)藥現代化,2023,25(3):826-834.
[13]李斌,周毓旻,傅春瑜,等.基于拓撲排序方法的預約檢查流程優(yōu)化[].重慶師范大學學報(自然科學版),2022,39(1):108-117.
[14]孫鑫亮,楊濤,章穎,等.基于加權有向圖的中醫(yī)量化診斷方法研究[].中華中醫(yī)藥雜志,2020,35(4):2014-2017.
[15]王曉東,圖門烏力吉,左風云,等.蒙醫(yī)藥清瘟殺黏類方劑組方的知識發(fā)現研究[.世界科學技術-中醫(yī)藥現代化,2022,24(3):1137-1145.
[16]陳蘭珍,鄭涇飛,王華珍,等.基于護理知識圖譜的智能問答系統(tǒng)研究[].醫(yī)學信息,2024,37(11):58-62,68.
[17]林睿凡,周洪偉,劉亮亮,等.基于本體方法構建《傷寒論》版本知識圖譜I].中國中醫(yī)基礎醫(yī)學雜志,2023,29(10):1630-1633.
[18]喬寧,李莉,秦瑤,等.特應性皮炎-哮喘病人自我管理知識圖譜的構建[J].護理研究,2024,38(19):3479-3483.
[19]李麗雙,董姜媛.基于中文電子病歷知識圖譜的實體對齊研究[].中文信息學報,2024,38(8):103-111.
[20]張迪,何麗云,王鑫,等.基于Neo4j與GDS算法的中醫(yī)藥治療冠心病知識圖譜構建與隱性知識規(guī)律發(fā)現方法研究[/OL].中華中醫(yī)藥學刊,1-22[2025-07-18].htp://kns.cnki.net/kcms/detail/21.1546.r.20240827.1448.016.html.
收稿日期:2024-09-05;修回日期:2024-10-11
編輯/成森