洪海藍(lán),李文林,2,楊 濤,李 玥
(1.南京中醫(yī)藥大學(xué)人工智能與信息技術(shù)學(xué)院,江蘇 南京 210023;2.江蘇省中醫(yī)外用藥開發(fā)與應(yīng)用工程研究中心)
海洋中的許多動物、植物、化石等是傳統(tǒng)中藥的重要組成部分,是治療腫瘤、心腦血管疾病、免疫性疾病、神經(jīng)系統(tǒng)疾病等重大疾病的“藍(lán)色藥庫[1]”。同時(shí),作為當(dāng)代健康產(chǎn)業(yè)的重要資源,海洋中藥是海洋強(qiáng)國戰(zhàn)略中核心競爭力的重要組成部分??上ШQ笾兴幬墨I(xiàn)類型不一、資源分散、缺乏深度知識集成,這嚴(yán)重阻礙當(dāng)代海洋中藥的開發(fā)和利用,使海洋中藥的傳承與發(fā)展出現(xiàn)了斷層。因此,構(gòu)建海洋中藥文獻(xiàn)資源檢索與查詢的知識圖譜平臺,成為科技為信息賦能,助力“藍(lán)色藥庫”建設(shè)的重要措施。
知識圖譜作為一種結(jié)構(gòu)化的語義知識庫[2],主要以圖形化的方式描述真實(shí)世界中存在的各種實(shí)體。其節(jié)點(diǎn)表示實(shí)體或概念,邊則由屬性或關(guān)系構(gòu)成[3-5]。知識圖譜在中醫(yī)藥領(lǐng)域已有相關(guān)應(yīng)用[6,7],如王菁薇[8]等構(gòu)建了基于《傷寒論》的知識圖譜,陳善達(dá)[9]等構(gòu)建了中醫(yī)辨證論治冠心病的知識圖譜;王明強(qiáng)[10]等構(gòu)建了中醫(yī)皮膚病“病-證-治”知識圖譜,楊帥[11]等構(gòu)建了COVID-19 中西醫(yī)結(jié)合的知識圖譜。與上述基于Neo4j 構(gòu)建知識圖譜不同,本研究通過對不同圖數(shù)據(jù)庫特性的綜合對比和分析,選擇Nebula Graph 進(jìn)行知識圖譜的搭建。Nebula Graph 是一款完全開源、分布式、易擴(kuò)縮容的國產(chǎn)原生圖數(shù)據(jù)庫。相比于Neo4j,Nebula Graph 具有開源、高性能、易擴(kuò)展、靈活建模、讀寫平衡、靈活數(shù)據(jù)建模等優(yōu)勢。
本文提出一種基于多源異構(gòu)文獻(xiàn)數(shù)據(jù)構(gòu)建知識圖譜的方法,設(shè)計(jì)海洋中藥知識圖譜的實(shí)體和關(guān)系,可視化展示海洋中藥“功效”、“主治”、“方劑”、“性味歸經(jīng)”、“類型”、“成分”等中醫(yī)藥知識,為海洋中藥知識的科普和海洋新藥的研發(fā)提供技術(shù)幫助。
知識圖譜按照覆蓋范圍可分為通用知識圖譜和領(lǐng)域知識圖譜[2]。通用知識圖譜范圍更廣,強(qiáng)調(diào)融合更多實(shí)體,但其準(zhǔn)確度不夠高,且很難借助標(biāo)準(zhǔn)知識庫規(guī)范其實(shí)體、屬性和關(guān)系等,主要被應(yīng)用于智能搜索等領(lǐng)域中[8,9]。領(lǐng)域知識圖譜不同于通用知識圖譜主要面向某些特殊領(lǐng)域,主要用于復(fù)雜的應(yīng)用分析或輔助決策,具有專家參與度高、知識結(jié)構(gòu)復(fù)雜、知識質(zhì)量要求高、知識粒度細(xì)等特點(diǎn)[10]。知識圖譜構(gòu)建一般分為自頂向下和自底向上兩種方式,本研究將這兩種方式結(jié)合構(gòu)建海洋中藥知識圖譜。
海洋中藥知識圖譜是中醫(yī)藥領(lǐng)域的子領(lǐng)域知識圖譜,知識質(zhì)量要求高,因此本研究首先對《海洋本草》和《海洋藥物與效方》進(jìn)行內(nèi)數(shù)據(jù)清洗和內(nèi)容梳理,其次結(jié)合專家意見對文獻(xiàn)內(nèi)容做人工標(biāo)注,通過分析海洋中藥文獻(xiàn)的特征來設(shè)計(jì)模式層的概念、關(guān)系及屬性;然后以模式層為基礎(chǔ),對海洋中藥進(jìn)行知識抽取、知識融合構(gòu)建海洋中藥知識圖譜的數(shù)據(jù)層;最后將抽取出的數(shù)據(jù)整合處理并存入NebulaGraph,通過圖數(shù)據(jù)庫語言nGQL 進(jìn)行海洋中藥知識圖譜的可視化、智能檢索和精準(zhǔn)查詢。具體流程如圖1所示。
圖1 海洋中藥知識圖譜構(gòu)建流程
本研究的數(shù)據(jù)來源于《海洋本草》和《海洋藥物與效方》。先將文本數(shù)據(jù)轉(zhuǎn)化為txt格式,為方便檢索,按照海洋中藥名稱、異名、介紹、性味歸經(jīng)、類型、效方、組成、功效、主治、禁忌、藥理成分等字段以xlxs格式進(jìn)行數(shù)據(jù)存儲。
模式層構(gòu)建是知識圖譜構(gòu)建的核心。模式層主要內(nèi)容為知識的數(shù)據(jù)結(jié)構(gòu),包括實(shí)體(Entity)、關(guān)系(Relation)、屬性(Attribute)等知識類的層次結(jié)構(gòu)和層級關(guān)系定義,約束數(shù)據(jù)層的具體知識形式[7]。本研究根據(jù)《海洋本草》、《海洋藥物與效方》和專家意見設(shè)計(jì)模式層。如圖2 所示,海洋中藥知識圖譜的模式層包括海洋中藥、海洋效方、禁忌、文獻(xiàn)來源、制法、功效、主治疾病、用法用量、類型、性味歸經(jīng)、異名、成分、效方組成等十三大類。
圖2 海洋中藥知識圖譜模式層設(shè)計(jì)
⑴知識抽取
知識抽取是知識圖譜構(gòu)建的首要任務(wù),通過人工、自動化或半自動化的知識抽取技術(shù),從原始數(shù)據(jù)中獲得實(shí)體、關(guān)系及屬性等可用知識單元,為知識圖譜的構(gòu)建提供基礎(chǔ)[4]。知識抽取主要包括實(shí)體識別、關(guān)系抽取、屬性抽取。本研究的實(shí)體包括藥名、主治疾病名、功效名、成分名、性味歸經(jīng)等[14]。利用結(jié)構(gòu)化的數(shù)據(jù)構(gòu)建實(shí)體字典,高效識別非結(jié)構(gòu)數(shù)據(jù)中的實(shí)體。關(guān)系抽取即抽取實(shí)體與實(shí)體之間的關(guān)系。結(jié)構(gòu)化數(shù)據(jù)關(guān)系非常明確,直接構(gòu)建三元組;半結(jié)構(gòu)化數(shù)據(jù)用Python 轉(zhuǎn)化為結(jié)構(gòu)化數(shù)據(jù);非結(jié)構(gòu)化數(shù)據(jù)則使用關(guān)系抽取算法和正則表達(dá)式進(jìn)行關(guān)系抽取。屬性抽取的主要任務(wù)是獲取(實(shí)體,屬性,屬性值) 類型三元組中的屬性和屬性值[15]。屬性抽取是對實(shí)體屬性的補(bǔ)充,用法用量和劑量可以看成是海洋中藥的屬性。本研究將屬性抽取轉(zhuǎn)化為關(guān)系抽取進(jìn)行屬性抽取[14]。
⑵知識融合
不同來源的文本不僅數(shù)據(jù)格式不同,也存在內(nèi)容重復(fù)等問題。數(shù)據(jù)沖突可能會導(dǎo)致實(shí)體和關(guān)系、屬性不匹配,為此需要結(jié)合新的知識對原有知識進(jìn)行補(bǔ)充,即將不同書籍構(gòu)建的知識圖譜進(jìn)行知識融合,消除矛盾和歧義[16,17]。知識融合主要包括實(shí)體對齊(Entity Alignment,EA)和實(shí)體消歧(Entity Disambiguation,ED)[3]。實(shí)體對齊采用余弦相似匹配度的方式,表示兩個(gè)實(shí)體的相似程度,相似度區(qū)間在-1 到1,-1 表示兩個(gè)實(shí)體完全不相似,1 表示兩個(gè)實(shí)體完全相同[18]。如《海洋本草》和《海洋藥物與效方》中皆收錄“海龜”,但關(guān)于海龜?shù)墓π?、主治、性味歸經(jīng)的表述,同中有異,同時(shí)《海洋藥物與效方》增加了含有海龜?shù)姆絼?,為此在圖譜構(gòu)建過程中需要知識融合。在實(shí)體對齊的過程中比較海龜知識的相似度時(shí),將海龜?shù)闹匾匦宰鳛樘卣髦?,向量化,輸入公式⑴?/p>
本研究設(shè)計(jì)的海洋中藥實(shí)體如表1 所示,海洋中藥關(guān)系如表2所示。
表1 海洋中藥知識圖譜實(shí)體設(shè)計(jì)
表2 海洋中藥知識圖譜關(guān)系設(shè)計(jì)
本研究將從文本數(shù)據(jù)中抽取出來的實(shí)體、關(guān)系和屬性,按照設(shè)計(jì)好的范式以“實(shí)體-關(guān)系-實(shí)體”的形式存儲于Nebula Graph 數(shù)據(jù)庫的Storage 服務(wù)。一般圖數(shù)據(jù)庫存儲的主要數(shù)據(jù)是點(diǎn)和邊,而Nebula Graph 存儲的數(shù)據(jù)是一張屬性圖,不僅存儲了點(diǎn)、邊,還存儲了它們對應(yīng)的屬性,可更高效地使用屬性過濾。
本研究通過使用nGQL(Nebula Graph Query Language)可實(shí)現(xiàn)海洋中藥性味歸經(jīng)、功效、類型查詢、成分查詢、方劑推薦和主治查詢等的查詢功能,還可進(jìn)行可視化展示。
本研究針對文本中存在的數(shù)據(jù)缺失、用詞不統(tǒng)一、異名同義等常見問題進(jìn)行用語規(guī)范、名詞統(tǒng)一、缺失值補(bǔ)全。其中名詞術(shù)語的規(guī)范參照《中醫(yī)臨床診療術(shù)語2020 年修訂版》,構(gòu)建海洋中藥的功效詞典和海洋中藥的主治詞典。進(jìn)行術(shù)語規(guī)范,如將功效中“療目疾”規(guī)范為“退翳明目”;主治病癥中“雀目夜盲”規(guī)范為“夜盲癥”等。對方劑組成中單位不統(tǒng)一或信息缺失的問題,分門別類進(jìn)行數(shù)據(jù)歸一或數(shù)據(jù)補(bǔ)全。如方劑組成:石首魚10g、鰾膠10g、梅花參、胡桃仁、羊腎、枸杞子、杜仲、鹿角粉、龜板、當(dāng)歸、豬脊髓、巴戟天、菟絲子各適量,石莼、鐵釘菜、大青葉各15g。本研究提出一種正則表達(dá)式結(jié)合詞典的數(shù)據(jù)清洗方法,即提取數(shù)字字符生成列表,根據(jù)列表對缺失數(shù)字單位的海洋中藥進(jìn)行補(bǔ)充,對各適量進(jìn)行字符分割進(jìn)行補(bǔ)充,高效完成數(shù)據(jù)清洗,為中醫(yī)藥數(shù)據(jù)清洗提供借鑒。
對半結(jié)構(gòu)化數(shù)據(jù),本研究采用python 進(jìn)行結(jié)構(gòu)轉(zhuǎn)換,如“紫齒貝—主治—消化道出血,乳腺炎,胃病,消化不良”處理為“紫齒貝—主治—消化道出血、紫齒貝—主治—乳腺炎、紫齒貝—主治—胃病、紫齒貝—主治—消化不良”。對非結(jié)構(gòu)化數(shù)據(jù),本研究利用CMeKG的關(guān)系抽取工具進(jìn)行關(guān)系抽取。
“烏賊魚蛋性平味咸,入胃、腎兩經(jīng),能健脾開胃,補(bǔ)腎壯腰,利水消腫,主治中焦失運(yùn),食欲不振,水濕內(nèi)停,肌膚水腫?!背槿椋踬\魚蛋,功效,能健脾開胃)、(烏賊魚蛋,功效,補(bǔ)腎壯腰)、(烏賊魚蛋,功效,利水消腫)、(烏賊魚蛋,主治,中焦失運(yùn))、(烏賊魚蛋,主治,食欲不振)、(烏賊魚蛋,主治,水濕內(nèi)停)、(烏賊魚蛋,主治,肌膚水腫)、(烏賊魚蛋,性味歸經(jīng),性平)、(烏賊魚蛋,性味歸經(jīng),味咸)、(烏賊魚蛋,性味歸經(jīng),入腎)、(烏賊魚蛋,性味歸經(jīng),脾經(jīng))。
本研究構(gòu)建的細(xì)粒度海洋中藥知識圖譜涵蓋了海洋中藥、效方、禁忌、文獻(xiàn)來源、制法、功效、主治疾病、用法用量、類型、性味歸經(jīng)、異名、成分、效方組成等十三類實(shí)體。海洋中藥知識圖譜是以海洋中藥和方劑為核心,實(shí)體粒度精細(xì)化到分子。目前一共抽取出實(shí)體17511 個(gè),關(guān)系28710 條。以海兔為例的海洋中藥知識圖譜局部結(jié)構(gòu)如圖3所示。
圖3 海兔為例的海洋中藥知識圖譜局部結(jié)構(gòu)圖
海兔作為一味中藥,還是方劑海粉湯的構(gòu)成藥物。以海兔和海粉湯為核心,海洋中藥與方劑的微型知識圖譜可做進(jìn)一步展示,如圖4所示。
圖4 海兔和海粉湯為核心的海洋中藥微型知識圖譜
本研究可從多維度查詢海洋中藥。如圖5 所示,A 為查詢到的具有軟堅(jiān)散結(jié)功效的海洋中藥;B 為和海龜相同出處的海洋中藥與方劑,MATCH p=(v:marine_medicine{name::“海龜”)-[medicine_literature_edge]-(v2)-[]<-(v3) RETURN p;C為包含海馬的海洋方劑;D為消斑湯和珠母偏頭痛方的方劑組成。
圖5 海洋中藥多維度查詢知識圖譜
海洋中藥知識圖譜構(gòu)建完成后,本研究邀請不同使用人群測試,包括普通中醫(yī)藥人員,海洋中藥研究者和普通用戶。根據(jù)用戶反饋,本研究構(gòu)建的海洋中藥知識圖譜具有響應(yīng)速度快、查詢時(shí)間短、專業(yè)性強(qiáng)、內(nèi)容詳細(xì)等優(yōu)勢,這為海洋中藥知識的科普和海洋中藥的研發(fā)提供幫助。但對普通用戶而言,存在編程語言學(xué)習(xí)困難,操作難度大等缺點(diǎn),因此,本研究需要在應(yīng)用的便捷性方面做進(jìn)一步改善。
海洋中藥的使用在我國許多中醫(yī)藥典籍中都有記載。構(gòu)建海洋中藥知識圖譜,可挖掘歷代典籍中的海洋方藥,大幅度縮小現(xiàn)代海洋藥物的篩選范圍,增加藍(lán)色藥物研發(fā)成功幾率。
本研究是基于海洋中藥專著文獻(xiàn),以《中醫(yī)臨床診療術(shù)語2020 年修訂版》等工具書為概念規(guī)范參考,構(gòu)建海洋中藥的功效及主治詞典。本研究提出一種基于多源異構(gòu)文獻(xiàn)數(shù)據(jù)構(gòu)建知識圖譜的方法,根據(jù)海洋中藥文獻(xiàn)特點(diǎn),設(shè)計(jì)模式層,經(jīng)過數(shù)據(jù)清洗、知識抽取、知識融合、知識存儲等步驟將碎片化的文本信息整合,以構(gòu)建數(shù)據(jù)層,形成了覆蓋海洋中藥領(lǐng)域多維主題于一體的細(xì)粒度知識圖譜,并使用Nebula Graph數(shù)據(jù)庫存儲知識圖譜,可從功效、主治、性味歸經(jīng)、成分、方劑推薦等角度進(jìn)行查詢,挖掘海洋中藥文獻(xiàn)的隱性知識。本研究初步實(shí)現(xiàn)了海洋中藥知識的重新組織與可視化表達(dá),為進(jìn)一步結(jié)合大規(guī)模海洋中藥數(shù)據(jù)集,建立數(shù)據(jù)更全面、內(nèi)容更豐富的海洋中藥知識圖譜奠定了基礎(chǔ)。不足的是,仍存在知識覆蓋面不夠廣、普通用戶操作難度大等問題。在下一步的研究中,本研究將對海洋中藥的化學(xué)、藥理等信息進(jìn)行進(jìn)一步歸納集成,擴(kuò)大海洋中藥知識圖譜的關(guān)系維度和知識規(guī)模,讓海洋中藥知識圖譜更全面。