羊艷玲 李 燕 帥亞琦 陳月月
(甘肅中醫藥大學信息工程學院 蘭州 730000)
經過幾千年的發展中醫學積累了豐富的臨床經驗,形成眾多經典理論。如何運用信息科學技術挖掘、整理與分析中醫學知識體系以及隱含在醫案文獻中的學術思想、臨床經驗和辨證方法是值得探討的重要課題。隨著信息技術不斷發展,可視化技術越來越成熟,在知識工程領域引進知識圖譜概念,使用知識圖譜的主要目的是描述現實世界的概念、實體及其之間的相互關系,從而實現對知識的共建、共享以及重用[1]。在現代中醫藥領域,知識圖譜能夠為中醫臨床診治提供方向,其應用領域越來越廣。于彤、劉靜和賈李蓉等[2]以中醫藥學語言為骨架構建大型中醫藥知識圖譜;張德政、謝永紅和李曼等[1]提出基于本體的中醫核心知識圖譜及其構建方法;聶莉莉、李傳富和許曉倩等[3]基于自然語言處理方法自動構建基于“疾病-癥候-特征”3層結構模型的醫學診斷知識圖譜。本文擬在已有研究基礎上進一步利用知識語義化、數據易關聯的特性將中醫醫案中蘊藏的知識結構或相互關系予以可視化展示,主要圍繞中醫診療路徑展開,完整的診療路徑以癥狀為出發點,依次為證候、治法、處方、藥物,具有邏輯鮮明的層次關系特征,以期為名老中醫傳承經驗提供參考。
知識圖譜是大數據時代背景下針對海量知識的一種新型管理與服務模式,被視為一張巨大的圖,其中節點表示實體,邊代表實體間的語義關系。知識圖譜通過對結構分散的知識進行重新組織、匯聚整理,提高知識資源關聯與整合程度,為解決“知識孤島”問題提供理想的技術手段[4]。目前知識圖譜構建過程主要包括數據獲取、知識抽取、知識融合和知識加工4個步驟[5]。其中數據獲取是基礎,數據源包括結構化、半結構化及非結構化數據,知識圖譜應用于醫療領域時,主要的數據來源為醫學專業論文、書籍文獻、醫案和電子病歷等。知識抽取的基本原理是將已有非結構化和半結構化數據中的知識用不同種格式或表示方法提煉出來,清晰展示數據中包括的主要內容,再將其處理為相同形式數據的過程,主要包括實體抽取、關系抽取和屬性抽取3個部分。在獲取實體、關系及屬性信息后,要對其進行清理和整合,即知識融合,包括共指解析和實體消歧,保證知識的正確性和邏輯性。最后通過知識加工,包括本體抽取、知識推理、知識發現和質量評估,最終得到結構化、網絡化的知識體系形成的知識圖譜,見圖1。

圖1 知識圖譜構建過程
本文研究數據主要來源于中國中醫科學院中醫藥信息研究所研制的古今醫案云平臺軟件[6],整理平臺上所有與高血壓疾病相關的中醫醫案。納入標準如下:醫案中明確記載診斷為高血壓或眩暈的患者;就診時的主訴辨治以高血壓為主;數據完整,包含臨床表現、病機分析、治法和用藥等內容。依照權威診斷標準和名師指導意見對平臺中高血壓疾病相關醫案進行手動檢索與篩選,并對其內容進行規范,按照序號、ID、患者姓名、性別、年齡、醫案內容、中醫疾病、證候和醫案來源等類別錄入到Excel中。研究過程中對中醫醫案中用作訓練的數據集進行整合,用單字切分原始文本,對訓練集中的所有語句按照疾病、癥狀、證候、治法、處方進行分類,最后共錄入435條醫案數據。
中醫醫案是醫者在診療過程中自然語言的描述,其表述缺乏規范性和標準性。目前中醫醫學詞典和知識庫較少,增加了學者研究醫學知識圖譜的成本和難度。此外由于中醫醫案尚未統一,具有多樣化特點,對于醫案術語、計量單位等未做明確要求,同一個實體有多種表達形式,難以適應信息時代要求,也為醫學實體消歧帶來困難。針對上述問題進行以下處理:首先將已整理的醫案導入古今醫案云平臺進行標準化,黑色字體代表與標準表完全匹配,已被標準化;原始值紅色,標準值黑色代表模糊匹配標準值,提示可查看是否匹配正確;皆為紅色表示匹配不到標準值,可進行選擇操作。如“心虛肝郁、痰火擾心=肝郁證,痰火證”“化瘀滌痰=化瘀”等,依據標準替換不規范的術語,把握圖譜節點內容的一致性。
序列標注即對給定序列中的元素進行標注,賦予對應標簽,并在這些標簽基礎上對序列做進一步深度分析,是自然語言處理過程中常需解決的問題。對于實體識別的等量標注任務,標簽由兩部分組成:實體類別和實體中的位置。采用BIO表示實體類別和位置,將每個元素標注為“B-X”“I-X”或者“O”,再以字符作為最小標注單元。在BIO表示中,B代表實體頭部,I表示中間實體,O代表實體尾部,X表示實體類型。在標注過程中,對中醫實體以“標簽,實體”形式將其歸屬到對應的中醫類別,見表1。

表1 BIO標簽集
知識圖譜本質是定義實體和實體之間聯系知識的關系。實體作為圖譜知識節點的一種表現方法,主要目的是用來表達知識結構與概念之間的關系。知識圖譜集中每個實體都包含其名稱、定義和注釋。通常將實體關系定義為<實體、關系、實體>,其中實體是疾病、癥狀、證候、治法、處方和藥物,并且關系可用于連接兩個實體[7]。最終共確定632個實體、495種關系,其之間的關聯,見圖2。

圖2 中醫實體關系層
知識圖譜是一種可以使用屬性圖模型來表示的圖數據結構,屬性圖模型主要是由節點和連邊組成,節點在知識圖譜概念中表示現實世界中的實體,連邊用來表示實體與實體之間的關系,而且節點和連邊可以包含多個屬性,即通過節點集合和邊集合構造關系圖。其中節點表示數據集中識別出的命名實體,其具有唯一的標識符和若干條屬性值;邊表示數據集中抽取的命名實體之間的關系,其具有唯一標識符和若干條屬性值[8]。在簡單的屬性圖模型中,“眩暈”包含“肝腎虧虛,血絡瘀阻”,繼而表現“頭暈目眩”。節點表示數據集中識別的實體,“眩暈”為疾病實體,具有別名、并發癥、證候等屬性值;“肝腎虧虛,血絡瘀阻”為證候實體,具有癥狀、類型等屬性值;“頭暈目眩”為癥狀實體,具有類型、表現部位等屬性值。邊集合中關系表示為D Include S Represent S′,其中D表示疾病(Disease),S表示證候(Syndrome),S′表示癥狀(Symptom),見圖3。

圖3 疾病、癥狀、證候屬性圖模型
知識圖譜的最大優點是可以利用空間形象的表現來展示知識點間的聯系。在可視化展示方面,以圖結構存儲知識并通過Neo4j實現可視化階段,在眾多數據庫系統中Neo4j具有高性能、設計靈活、開發便捷等優勢,用戶可以使用Cypher語言操作數據[9]。Neo4j最重要的兩個元素是實體和實體之間的關系,分別為節點和連邊。
可視化是指將知識單元之間的關系轉化為能夠更好理解的圖形形式,用以表現抽象的事物。Neo4j控制臺的圖形界面具有將存儲的知識單元和知識單元之間的關系轉換為知識圖的功能,可以方便地查看知識圖中的關系信息[10]。Neo4j批量導入前文提取的實體和關系后,采用Cypher查詢語言獲取滿足條件的數據,以可視化圖形展示出來。數據可視化用于基于知識圖的查詢結果可視化,包括中醫知識查詢和中醫診療路徑。圖4、圖5分別展示本文提取的實體及關系的部分可視化圖,在圖譜中可以自定義圖譜內容以顯示更為清晰的內容,在圖譜中關系圖中連邊表示不同類別實體間的語義關系,圖4為疾病-癥狀-證候(Disease Include Syndrome,Syndrome Represent Symptom)可視化圖,西醫高血壓在中醫中主要以“眩暈”和“頭痛”進行表述,證候主要是“肝腎陰虛”“肝火上炎”“脈絡瘀阻”“氣機不暢”等。圖5展示治法-處方,每個治法對應相應的處方,也可以看到不同處方之間藥物也有所關聯。從圖中看到高血壓的中醫名稱不具有唯一性,一個具體的疾病實體關聯著多個不同的癥狀實體,且一個具體癥狀實體關聯著不同疾病。因此將疾病實體與癥狀實體對應后,可以根據患者表現出的癥狀推斷患者可能患有的疾病,根據癥狀信息,基于知識圖譜,結合多種中醫方法進行辨證論治策略的推薦。知識圖譜能夠幫助用戶快速發現所關注的知識擴展及衍生,更好地掌握中醫藥知識體系,并在瀏覽中發現具有潛在關聯的“知識孤島”。

圖4 疾病-癥狀-證候可視化

圖5 治法-處方可視化
中醫學的診療主旨為“辨證論治”,在中醫醫案中有充分體現。中醫醫案的記錄以辨證思路為核心,強調名老中醫之間的差異性[11]。中醫藥知識圖譜的構建實質是中醫醫案到知識圖譜的知識轉換,是一個知識抽象和歸納的過程。在這個過程中,一方面基于中醫醫案等臨床知識源,通過疾病、證候、癥狀、治法、處方等核心概念對醫案文本進行分析和標注,完成知識抽取;另一方面,構建中醫醫案知識圖譜實現醫藥知識的結構化表示。將知識圖譜應用于中醫臨床,可實現智能化、個性化的中醫藥服務,促進與中醫臨床互融互通,揭示中醫實體間的相關關系,輔助醫生臨床研究與決策。但是當前不同醫案相對零散且大多基于非結構化數據,較難對醫案中的知識進行高效管理。針對上述問題,本文將醫案中疾病、癥狀、證候、治法、處方、藥物實體進行命名實體識別和抽取,在此基礎上以知識圖譜的形式將其關聯起來探索其中關系,以“病證癥”結合的方式探討高血壓相關的中醫疾病名稱對應的癥狀所關聯的治法;以“方藥”結合探索該治法所涉及處方以及對應的藥物組成。本文采用的中醫領域知識有限,構建的中醫知識圖譜只是一個實驗性知識庫,相較于大型知識圖譜,本文所構建的知識圖譜中的實體以及實體間的關系較簡單,需要更多中醫專家參與進一步完善;且因不同醫家對疾病的具體證型和劃分標準存在差異,在對不同名老中醫醫案進行收集和整理時較難實現標準化和規范化。隨著醫案數量增加和中醫藥臨床知識劃分標準的形成,知識圖譜與中醫藥文獻、醫案、電子病歷等的知識聯系,在中醫藥事業發展、全方面醫學領域知識圖譜構建方面將發揮更加重要的作用。