洪海藍,李文林,2,楊 濤,李 玥
(1.南京中醫藥大學人工智能與信息技術學院,江蘇 南京 210023;2.江蘇省中醫外用藥開發與應用工程研究中心)
海洋中的許多動物、植物、化石等是傳統中藥的重要組成部分,是治療腫瘤、心腦血管疾病、免疫性疾病、神經系統疾病等重大疾病的“藍色藥庫[1]”。同時,作為當代健康產業的重要資源,海洋中藥是海洋強國戰略中核心競爭力的重要組成部分。可惜海洋中藥文獻類型不一、資源分散、缺乏深度知識集成,這嚴重阻礙當代海洋中藥的開發和利用,使海洋中藥的傳承與發展出現了斷層。因此,構建海洋中藥文獻資源檢索與查詢的知識圖譜平臺,成為科技為信息賦能,助力“藍色藥庫”建設的重要措施。
知識圖譜作為一種結構化的語義知識庫[2],主要以圖形化的方式描述真實世界中存在的各種實體。其節點表示實體或概念,邊則由屬性或關系構成[3-5]。知識圖譜在中醫藥領域已有相關應用[6,7],如王菁薇[8]等構建了基于《傷寒論》的知識圖譜,陳善達[9]等構建了中醫辨證論治冠心病的知識圖譜;王明強[10]等構建了中醫皮膚病“病-證-治”知識圖譜,楊帥[11]等構建了COVID-19 中西醫結合的知識圖譜。與上述基于Neo4j 構建知識圖譜不同,本研究通過對不同圖數據庫特性的綜合對比和分析,選擇Nebula Graph 進行知識圖譜的搭建。Nebula Graph 是一款完全開源、分布式、易擴縮容的國產原生圖數據庫。相比于Neo4j,Nebula Graph 具有開源、高性能、易擴展、靈活建模、讀寫平衡、靈活數據建模等優勢。
本文提出一種基于多源異構文獻數據構建知識圖譜的方法,設計海洋中藥知識圖譜的實體和關系,可視化展示海洋中藥“功效”、“主治”、“方劑”、“性味歸經”、“類型”、“成分”等中醫藥知識,為海洋中藥知識的科普和海洋新藥的研發提供技術幫助。
知識圖譜按照覆蓋范圍可分為通用知識圖譜和領域知識圖譜[2]。通用知識圖譜范圍更廣,強調融合更多實體,但其準確度不夠高,且很難借助標準知識庫規范其實體、屬性和關系等,主要被應用于智能搜索等領域中[8,9]。領域知識圖譜不同于通用知識圖譜主要面向某些特殊領域,主要用于復雜的應用分析或輔助決策,具有專家參與度高、知識結構復雜、知識質量要求高、知識粒度細等特點[10]。知識圖譜構建一般分為自頂向下和自底向上兩種方式,本研究將這兩種方式結合構建海洋中藥知識圖譜。
海洋中藥知識圖譜是中醫藥領域的子領域知識圖譜,知識質量要求高,因此本研究首先對《海洋本草》和《海洋藥物與效方》進行內數據清洗和內容梳理,其次結合專家意見對文獻內容做人工標注,通過分析海洋中藥文獻的特征來設計模式層的概念、關系及屬性;然后以模式層為基礎,對海洋中藥進行知識抽取、知識融合構建海洋中藥知識圖譜的數據層;最后將抽取出的數據整合處理并存入NebulaGraph,通過圖數據庫語言nGQL 進行海洋中藥知識圖譜的可視化、智能檢索和精準查詢。具體流程如圖1所示。

圖1 海洋中藥知識圖譜構建流程
本研究的數據來源于《海洋本草》和《海洋藥物與效方》。先將文本數據轉化為txt格式,為方便檢索,按照海洋中藥名稱、異名、介紹、性味歸經、類型、效方、組成、功效、主治、禁忌、藥理成分等字段以xlxs格式進行數據存儲。
模式層構建是知識圖譜構建的核心。模式層主要內容為知識的數據結構,包括實體(Entity)、關系(Relation)、屬性(Attribute)等知識類的層次結構和層級關系定義,約束數據層的具體知識形式[7]。本研究根據《海洋本草》、《海洋藥物與效方》和專家意見設計模式層。如圖2 所示,海洋中藥知識圖譜的模式層包括海洋中藥、海洋效方、禁忌、文獻來源、制法、功效、主治疾病、用法用量、類型、性味歸經、異名、成分、效方組成等十三大類。

圖2 海洋中藥知識圖譜模式層設計
⑴知識抽取
知識抽取是知識圖譜構建的首要任務,通過人工、自動化或半自動化的知識抽取技術,從原始數據中獲得實體、關系及屬性等可用知識單元,為知識圖譜的構建提供基礎[4]。知識抽取主要包括實體識別、關系抽取、屬性抽取。本研究的實體包括藥名、主治疾病名、功效名、成分名、性味歸經等[14]。利用結構化的數據構建實體字典,高效識別非結構數據中的實體。關系抽取即抽取實體與實體之間的關系。結構化數據關系非常明確,直接構建三元組;半結構化數據用Python 轉化為結構化數據;非結構化數據則使用關系抽取算法和正則表達式進行關系抽取。屬性抽取的主要任務是獲取(實體,屬性,屬性值) 類型三元組中的屬性和屬性值[15]。屬性抽取是對實體屬性的補充,用法用量和劑量可以看成是海洋中藥的屬性。本研究將屬性抽取轉化為關系抽取進行屬性抽取[14]。
⑵知識融合
不同來源的文本不僅數據格式不同,也存在內容重復等問題。數據沖突可能會導致實體和關系、屬性不匹配,為此需要結合新的知識對原有知識進行補充,即將不同書籍構建的知識圖譜進行知識融合,消除矛盾和歧義[16,17]。知識融合主要包括實體對齊(Entity Alignment,EA)和實體消歧(Entity Disambiguation,ED)[3]。實體對齊采用余弦相似匹配度的方式,表示兩個實體的相似程度,相似度區間在-1 到1,-1 表示兩個實體完全不相似,1 表示兩個實體完全相同[18]。如《海洋本草》和《海洋藥物與效方》中皆收錄“海龜”,但關于海龜的功效、主治、性味歸經的表述,同中有異,同時《海洋藥物與效方》增加了含有海龜的方劑,為此在圖譜構建過程中需要知識融合。在實體對齊的過程中比較海龜知識的相似度時,將海龜的重要特性作為特征值,向量化,輸入公式⑴。

本研究設計的海洋中藥實體如表1 所示,海洋中藥關系如表2所示。

表1 海洋中藥知識圖譜實體設計

表2 海洋中藥知識圖譜關系設計
本研究將從文本數據中抽取出來的實體、關系和屬性,按照設計好的范式以“實體-關系-實體”的形式存儲于Nebula Graph 數據庫的Storage 服務。一般圖數據庫存儲的主要數據是點和邊,而Nebula Graph 存儲的數據是一張屬性圖,不僅存儲了點、邊,還存儲了它們對應的屬性,可更高效地使用屬性過濾。
本研究通過使用nGQL(Nebula Graph Query Language)可實現海洋中藥性味歸經、功效、類型查詢、成分查詢、方劑推薦和主治查詢等的查詢功能,還可進行可視化展示。
本研究針對文本中存在的數據缺失、用詞不統一、異名同義等常見問題進行用語規范、名詞統一、缺失值補全。其中名詞術語的規范參照《中醫臨床診療術語2020 年修訂版》,構建海洋中藥的功效詞典和海洋中藥的主治詞典。進行術語規范,如將功效中“療目疾”規范為“退翳明目”;主治病癥中“雀目夜盲”規范為“夜盲癥”等。對方劑組成中單位不統一或信息缺失的問題,分門別類進行數據歸一或數據補全。如方劑組成:石首魚10g、鰾膠10g、梅花參、胡桃仁、羊腎、枸杞子、杜仲、鹿角粉、龜板、當歸、豬脊髓、巴戟天、菟絲子各適量,石莼、鐵釘菜、大青葉各15g。本研究提出一種正則表達式結合詞典的數據清洗方法,即提取數字字符生成列表,根據列表對缺失數字單位的海洋中藥進行補充,對各適量進行字符分割進行補充,高效完成數據清洗,為中醫藥數據清洗提供借鑒。
對半結構化數據,本研究采用python 進行結構轉換,如“紫齒貝—主治—消化道出血,乳腺炎,胃病,消化不良”處理為“紫齒貝—主治—消化道出血、紫齒貝—主治—乳腺炎、紫齒貝—主治—胃病、紫齒貝—主治—消化不良”。對非結構化數據,本研究利用CMeKG的關系抽取工具進行關系抽取。
“烏賊魚蛋性平味咸,入胃、腎兩經,能健脾開胃,補腎壯腰,利水消腫,主治中焦失運,食欲不振,水濕內停,肌膚水腫?!背槿椋踬\魚蛋,功效,能健脾開胃)、(烏賊魚蛋,功效,補腎壯腰)、(烏賊魚蛋,功效,利水消腫)、(烏賊魚蛋,主治,中焦失運)、(烏賊魚蛋,主治,食欲不振)、(烏賊魚蛋,主治,水濕內停)、(烏賊魚蛋,主治,肌膚水腫)、(烏賊魚蛋,性味歸經,性平)、(烏賊魚蛋,性味歸經,味咸)、(烏賊魚蛋,性味歸經,入腎)、(烏賊魚蛋,性味歸經,脾經)。
本研究構建的細粒度海洋中藥知識圖譜涵蓋了海洋中藥、效方、禁忌、文獻來源、制法、功效、主治疾病、用法用量、類型、性味歸經、異名、成分、效方組成等十三類實體。海洋中藥知識圖譜是以海洋中藥和方劑為核心,實體粒度精細化到分子。目前一共抽取出實體17511 個,關系28710 條。以海兔為例的海洋中藥知識圖譜局部結構如圖3所示。

圖3 海兔為例的海洋中藥知識圖譜局部結構圖
海兔作為一味中藥,還是方劑海粉湯的構成藥物。以海兔和海粉湯為核心,海洋中藥與方劑的微型知識圖譜可做進一步展示,如圖4所示。

圖4 海兔和海粉湯為核心的海洋中藥微型知識圖譜
本研究可從多維度查詢海洋中藥。如圖5 所示,A 為查詢到的具有軟堅散結功效的海洋中藥;B 為和海龜相同出處的海洋中藥與方劑,MATCH p=(v:marine_medicine{name::“海龜”)-[medicine_literature_edge]-(v2)-[]<-(v3) RETURN p;C為包含海馬的海洋方劑;D為消斑湯和珠母偏頭痛方的方劑組成。

圖5 海洋中藥多維度查詢知識圖譜
海洋中藥知識圖譜構建完成后,本研究邀請不同使用人群測試,包括普通中醫藥人員,海洋中藥研究者和普通用戶。根據用戶反饋,本研究構建的海洋中藥知識圖譜具有響應速度快、查詢時間短、專業性強、內容詳細等優勢,這為海洋中藥知識的科普和海洋中藥的研發提供幫助。但對普通用戶而言,存在編程語言學習困難,操作難度大等缺點,因此,本研究需要在應用的便捷性方面做進一步改善。
海洋中藥的使用在我國許多中醫藥典籍中都有記載。構建海洋中藥知識圖譜,可挖掘歷代典籍中的海洋方藥,大幅度縮小現代海洋藥物的篩選范圍,增加藍色藥物研發成功幾率。
本研究是基于海洋中藥專著文獻,以《中醫臨床診療術語2020 年修訂版》等工具書為概念規范參考,構建海洋中藥的功效及主治詞典。本研究提出一種基于多源異構文獻數據構建知識圖譜的方法,根據海洋中藥文獻特點,設計模式層,經過數據清洗、知識抽取、知識融合、知識存儲等步驟將碎片化的文本信息整合,以構建數據層,形成了覆蓋海洋中藥領域多維主題于一體的細粒度知識圖譜,并使用Nebula Graph數據庫存儲知識圖譜,可從功效、主治、性味歸經、成分、方劑推薦等角度進行查詢,挖掘海洋中藥文獻的隱性知識。本研究初步實現了海洋中藥知識的重新組織與可視化表達,為進一步結合大規模海洋中藥數據集,建立數據更全面、內容更豐富的海洋中藥知識圖譜奠定了基礎。不足的是,仍存在知識覆蓋面不夠廣、普通用戶操作難度大等問題。在下一步的研究中,本研究將對海洋中藥的化學、藥理等信息進行進一步歸納集成,擴大海洋中藥知識圖譜的關系維度和知識規模,讓海洋中藥知識圖譜更全面。