?

基于Lattice LSTM 的中醫藥古文獻命名實體識別與應用研究

2024-01-29 08:43曾江峰龐雨靜高鵬鈺馮昌揚
情報工程 2023年5期
關鍵詞:傷寒論方劑圖譜

曾江峰 龐雨靜 高鵬鈺 馮昌揚,

1. 華中師范大學信息管理學院 湖北 武漢 430079;

2. 北京理工大學管理與經濟學院 北京 100081;

3. 富媒體數字出版內容組織與知識服務重點實驗室 北京 100038

引言

中醫學凝集著古老深奧的哲學思想和華夏千年來的養生之道,在我國漫長的歷史長河中具有不可替代的地位,對世界人類健康作出了突出貢獻,其傳承和創新近年來受到黨和政府的極大關注。習總書記曾在講話中多次強調:要最大程度上利用和發揮中醫藥的獨特優勢,建設健康中國;《“十四五”中醫藥發展規劃》指出,開展中醫藥振興的重大工程,推進中醫藥與現代科學結合。中醫藥古文獻是古中醫思維成果的載體,承載了中醫基礎理論和臨床核心知識,極具醫學研究價值。近年來,人工智能、物聯網等現代技術為中醫藥產業注入了新鮮活力,利用現代化手法發掘中醫古文獻資源,能夠促進中醫學的傳承與創新。

中醫術語識別是中醫文本挖掘的重要方向,而基于自然語言處理的命名實體識別技術是信息化背景下術語識別的主流方法。命名實體識別是知識推薦、智能問答、機器翻譯等場景的核心環節,在金融、醫療、教育等多個行業受到廣泛關注,是計算機和人工智能領域的熱點話題,術語的識別精度極大影響著后繼任務的完成質量。然而中醫數據量大而繁雜,特別是中醫藥古文獻多為非結構化的文言形式,常存在一詞多義及實體邊界模糊的問題,相比現代文本識別難度更大,常規模型效果并不理想。探索適用于中醫古文獻的命名實體識別方法,提升中醫術語的識別準確性,十分必要。

本文提出一種中醫藥古文獻命名實體識別的Lattice LSTM 模型,將字符信息和詞匯信息共同輸入,實現信息的充分利用且避免了分詞錯誤,大大提升了中醫術語識別的準確性,補充完善了自然語言處理技術在中醫古籍文本挖掘中的相關理論;實現了現代化信息技術與傳統中醫學的有效結合,促進了中醫學的傳承與創新。另外,本文構建的中醫藥知識圖譜,將非結構化的古籍文本以結構化方式存儲,便于大規模數據的檢索、更新與共享;輔助現代中醫學者與臨床醫師進行醫學診斷與臨床決策,為廣大患者提供更加快捷、優質的中醫診療服務。

1 國內外研究現狀

1.1 國外醫學領域命名實體識別現狀

命名實體識別[1](Named Entity Recognition, NER)指挑選出給定句子中含義特殊的字或詞語,如姓名、地區、職業單位等,是自然語言處理的基礎性任務。近年來,國外醫學領域的NER 研究主要聚焦于深度學習。Gligic 等[2]通過遷移學習引導神經網絡,在大量未注釋的電子健康記錄數據集上進行預訓練詞嵌入,證實了遷移學習和無監督學習可以提升稀疏數據下神經網絡的性能;Mulyar 等[3]針對臨床記錄特定任務間信息不共享導致單個方案性能下降的問題,開發了基于深度學習的Multitask-Clinical BERT 系統,同時執行實體抽取、模式識別等八項任務,顯著提升了計算速度,證實了多任務學習在臨床信息提取上的可行性;Kang 等[4]結合統一醫學語言系統(UMLS)知識,提出醫學術語識別的數據增強方法UMLS-EDA,改善了句子分類模型的性能,識別效果優于BERT 預訓練分類器;Kormilitzin 等[5]開發了開源的NER 模型Med7,同時引入改進方法sense2vec,利用MIMIC-III 數據集證實該模型可用于NER 任務;Weber 等[6]將HUNER標記器集成到Flair NLP 框架中,提出HunFlair醫學實體識別模型,在不同數據集的跨語料庫評估中性能優于BioBERT、SciSpacy 等現有工具;Ma 等[7]提出集成兩種弱監督學習方法的投票機制,在CCKS2017 數據集上的實驗效果優于監督學習,緩解了醫學標注過少和標注困難的問題。

1.2 我國中醫藥領域命名實體識別現狀

近年來,我國中醫藥領域的命名實體識別,按照研究對象可分為電子病歷、在線醫療社區問答文本、臨床醫案、中醫古籍等。電子病歷方面,陳美杉等[8]針對數據標注稀缺的情況,提出KNN-BERT-BiLSTM-CRF,證實知識遷移可以改善小數據集下智能模型的識別效果。臨床醫案方面,肖瑞等[9]使用BiLSTM-CRF 識別部分老中醫醫案中的術語。中醫古籍方面,高甦等[10]以《黃帝內經》為實驗材料,提出結合字向量的深度學習模型,解決了古籍實體識別困難的問題;屈倩倩[11]基于BERT-BiLSTMCRF 識別《傷寒論》實體,為后續任務提供了高質量的數據來源;盧克治[12]將Word2vec、ELMo、BERT 詞嵌入模型引入BiLSTM-CRF,對662 本中醫古籍進行實體抽取,發現BERT參與的模型獲得了最佳識別效果。

綜上可知,中醫藥領域的命名實體識別以電子病歷和臨床醫案為主要研究對象,對于中醫藥古籍的研究相對較少,且主流方法為BiLSTM-CRF。Zhang 等[13]針對中文NER 任務首次提出混合字符和詞匯信息的Lattice LSTM 模型,證實其在現代中文數據集上的卓越性能;崔丹丹等[14]在《四庫全書》的古漢語研究中首次運用這一模型,F1 值比BiLSTM-CRF 提升了3.95%,證實其可用于古籍研究;張笑天[15]將Lattice LSTM 用于四川省腫瘤醫院病程記錄的實體識別,證實其在醫學領域NER 任務上表現良好,但這一模型目前還未應用于中醫領域古文獻的研究?;诖?,本文提出一種面向中醫藥古文獻術語識別的Lattice LSTM 模型,并對其進行實證研究。

2 Lattice LSTM 模型

Lattice LSTM 在基于字符的LSTM 模型基礎上加入了詞匯的輸入和額外的門控單元以調控信息流動,其結構見圖1。對于輸入的句子s,既可看作是由單個字組成的字符序列,即s=c1,c2,...,cm,其中cj表示s的第j個字;也可看作是以詞為單位的詞序列,即s=w1,w2,...,wn,其中wi表示s的第i個詞。以本文的研究材料《傷寒論》文本數據為例,設t(i,k) 表示句子中第i個詞的第k個字的位置,如“太陽病發熱汗出”一句中的“發”字,其位置可用t(3,1)=4 表示。

圖1 Lattice LSTM 結構圖

Lattice LSTM 包含兩種結構:基于字符的結構和基于詞的結構。在基于字符的結構中,每個字cj通過字符嵌入矩陣ec表示為輸入字向量xjc=ec(cj),然后依次通過輸入門ijc、遺忘門fjc和輸出門ojc,得到單元向量cjc和隱藏向量hjc,前者控制句子的歷史信息,后者作為CRF 的輸入,基于字符結構的計算如式(1)、式(2)和式(3)所示:

其中wcT和bc是模型參數。

Lattice LSTM 的優勢在于將潛在詞匯信息融合進上述基于字符的結構,從而使得模型在獲得字信息的同時,也可以有效地利用詞的先驗信息?;谠~的結構中,每個詞通過詞嵌入矩陣ew得到輸入詞向量其中表示索引從b到e的字符組成的詞匯。因標記僅在字符級別執行,所以基于詞的結構沒有輸出門,其余與基于字符的結構相似,計算如式(4)、式(5)所示:

其中wwT和bw是模型參數。

得到所有輸出的隱藏向量h1,h2,...,hl,其中l是句子包含的字數,通過CRF 層得到標記序列y=l1,l2, ...,lτ的概率,使用Viterbi 算法計算得到最大概率值,其對應的標記即為預測標記。標記序列概率的表示方法如式(11)所示:

3 中醫藥古文獻命名實體識別實驗過程及結果分析

3.1 研究流程

基于Lattice LSTM 的中醫藥古文獻命名實體識別研究可分為三個階段:數據預處理階段,對《傷寒論》文本數據進行規范化和實體標記,構建中醫藥主題詞典,結合詞典進行分詞及去停用詞處理;字詞向量訓練階段,使用python的gensim 包對文本進行Word2vec 訓練;命名實體識別階段,通過實驗評估模型性能。

3.2 實驗環境及超參數設置

本實驗部署于Windows 系統,選取深度學習Pytorch 框架開發,實驗環境及模型的最優超參數設置見表1、表2。

表1 實驗環境

表2 模型超參數

3.3 數據預處理

本研究的數據集采用明代趙開美翻刻的宋本《傷寒論》[11],原作者為東漢醫圣張仲景,全書原12 卷,現存10 卷22 篇,共398 條,條文共包含464 句。

用python 讀取《傷寒論》全文,去除多余符號后,根據BIOES 規則,使用基于Linux 系統的brat[16]軟件標記文本中的五類實體:疾?。╠isease)、 證候(syndrome)、 方劑(prescription)、癥狀(symptom)、藥材(medicine),其中單字符實體標注為S,多字符實體首字標記為B,中部標記為I,末尾標記為E,非實體標記為O。如條文第224 條可標注為:“陽/B-dis明/I-dis病/E-dis,/O汗/B-sym出/I-sym多/E-sym而/O渴/S-sym者/O,/O不/O可/O與/O豬/B-pre苓/I-pre 湯/E-pre。/O”,標注示例見圖2。

圖2 數據標注示例

以句為單位,將處理后的《傷寒論》數據按照60%、20%、20%的占比隨機分配得到實驗所用的訓練集、驗證集和測試集,具體情況統計見表3。

表3 實體類別統計

為進一步提高術語識別的準確性,本研究基于《中醫病證分類與代碼》(GB/T 15657—1995)、《中藥方劑編碼規則及編碼》(GB/T 31773—2015)[17]等國家標準文件,同時以中草藥專業知識服務系統(http://zcy.ckcest.cn/tcm/)提供的數據資源為補充,構建中醫藥領域實體詞典,共包含5960 個實體,涉及疾病、方劑、證候、藥材、癥狀等類別。利用詞典對中醫藥古籍文本進行分詞及去停用詞處理。

3.4 實驗結果分析

將Lattice LSTM 與NER 任務的多個經典模型進行對比,實驗結果見表4??捎^察到如下特點:首先,深度學習的各模型整體表現出更好的性能;其次,BiLSTM 加入CRF 層后各評價指標有了明顯提升,這是因為CRF 可以自動學習標記間的約束,進而修正模型的輸出,保證了預測結果的合理性。再者,根據F1 值對各模型性能進行排序:Lattice LSTM>BiLSTM-CRF>CRF>BiLSTM>HMM,可知Lattice LSTM 性能最優,比BiLSTM-CRF 總體提升了1.68%,這是因為該模型在基于字的模型基礎上實現了潛在詞匯信息的充分利用,解決了語義缺失的問題,避免了分詞錯誤,極大提升了識別效果。

表4 模型效果對比

探究模型在不同類別實體識別上的表現,各類實體數量及F1 值見圖3??捎^察到如下特點:首先,深度學習模型對證候的識別效果比淺層機器學習模型差,主要是因為可供模型學習的實體數過少,導致其優勢無法體現;其次,各模型對方劑和藥材的識別效果較好,主要是因為二者的數據特征較強,在文本中方劑均以“方”字結尾,而藥材的名稱全文統一、易于識別。疾病和癥狀的識別情況卻不盡相同:疾病實體雖然數量少,但因其名稱較為統一,所以識別效果很好;而癥狀實體雖然數量最多,但因其組成復雜、形式多樣,所以識別效果較差。另外,Lattice LSTM 模型在除證候外的其他實體上識別效果均最佳,可用于中醫藥古文獻術語識別。

圖3 各類實體的數量及F1 值

3.5 參數敏感性分析

字( 詞) 向量維度(char/word_emb_dim)、隱含層維度(hidden_dim)和丟棄率(dropout)是Lattice LSTM 模型的重要參數,評估參數變化對模型性能的影響,有利于發掘最佳參數組合,使模型表現出最優效果,結果見圖4。

圖4 各參數對模型性能的影響

當不改變其他參數值,字(詞)向量維度為300 時模型的表現最佳;控制其他參數不變,加入dropout 后模型的性能得到了較大提升,這是因為該技術在訓練中將神經網絡單元以某概率值暫時丟棄,可以防止模型出現過擬合的情況;當丟棄率值為0.5 時,模型在實驗中獲得了最佳的效果,此后隨著丟棄率值的增大,模型性能呈下降趨勢??刂破渌麉挡蛔?,改變hidden_dim 后模型的性能受到較大影響;當hidden_dim 值為200 時,模型性能最優,此后隨著hidden_dim 值的增大,模型性能總體呈下降趨勢。綜上可知,本文的Lattice LSTM 模型應選用char/word_emb_dim 值為300,hidden_dim 值為200,dropout 值為0.5 的參數組合。

4 中醫藥領域知識圖譜及案例分析

4.1 模式構建

為檢驗本文提出模型的現實應用效果,本文在實驗抽取出的實體基礎上,構建了中醫藥知識圖譜。知識圖譜可以將零散、非結構化的知識以結構化形式存儲,實現了知識的有效連接,提高了知識的管理和利用效率。構建知識圖譜的核心環節是命名實體識別和實體關系抽取[18],首先是模式構建[19]。本文的中醫藥知識圖譜模式見圖5。

圖5 中醫藥知識圖譜模式圖

4.2 實體關系抽取

實體關系抽取即提取不同實體間存在的語義聯系。本研究涉及疾?。╠isease)、證候(syndrome)、方劑(prescription)、癥狀(symptom)、藥材(medicine)五類實體,定義實體間存在如下四類關系:疾病_證候(DIS_SYN)、證候_方劑(SYN_PRE)、方劑_癥狀(PRE_SYM)、方劑_藥材(PRE_MED),對《傷寒論》文本進行人工關系抽取。如原文第31 條的“項背強、無汗、惡風,葛根湯主之,葛根、麻黃、桂枝……”一句,“項背強”“無汗”“惡風”與“葛根湯”構成PRE_SYM 關系,“葛根湯”與“葛根”“麻黃”“桂枝”等構成PRE_MED 關系。

4.3 知識圖譜構建

本研究使用Neo4j[20]構建中醫藥知識圖譜。在Neo4j 中,知識主要以節點和邊的形式存儲,節點代表意義特殊的實體,邊代表實體間的關系。將《傷寒論》的實體及關系文件通過LOAD CSV 語句導入Neo4j 圖數據庫,生成300 個節點和825 條邊,具體情況統計見表5。

表5 中醫藥知識圖譜的節點及邊統計

4.4 案例分析

“大疫出良方”,面對2019 年底席卷全球、來勢洶洶的新冠肺炎疫情,中醫藥通過臨床試驗篩選出對疾病治療起關鍵作用的“三藥三方”,其中“清肺排毒湯”作為疫情期間臨床首選的治療藥物在多省患者的實際治療中有效率超過了90%。該湯劑由《傷寒論》的麻杏石甘湯(即麻黃杏仁甘草石膏湯)、小柴胡湯、五苓散等經典名方組成,包含麻黃、杏仁、桂枝等21 味中藥,主要功效是宣肺透邪、清熱化濕、健脾化飲,能夠改善患者出現的發熱、咳嗽、乏力、咽痛等癥狀。

在中醫藥知識圖譜中,檢索清肺排毒湯三大方劑的相關信息,結果見圖6。節點中橙色代指疾病,藍色代指證候,綠色代指癥狀,紅色代指方劑,淺褐色代指藥材??梢钥吹?,清肺排毒湯在《傷寒論》中涉及4 種疾病、6 種證候、11 種癥狀和14 味藥材,如小柴胡湯包含柴胡、半夏、人參等藥材,與少陽病、陰陽易差后勞復病有關,可用于治療咽干、嘔吐、不欲飲食等癥狀。此類查詢展現了各中醫實體間的關系,幫助醫師迅速找到所需信息,為中醫藥智能問答及推薦奠定了基礎。

圖6 清肺排毒湯的相關檢索結果

新冠肺炎的常見癥狀有:發熱、呼吸不暢(對應《傷寒論》的“胸滿”“胸中窒”)、咳、腹瀉(對應《傷寒論》的“下利”)、頭痛、頭暈(對應《傷寒論》的“頭?!保?、惡心(對應《傷寒論》的“嘔”),在知識圖譜中查詢各癥狀對應的治療方劑,結果見圖7。節點中綠色代指癥狀,紅色代指方劑??梢钥吹?,對于發熱患者,可以使用調胃承氣湯、大青龍湯、真武湯等治療;對于發熱和頭痛兼具者,可以使用麻黃湯、理中丸、桂枝湯等治療。此類查詢為中醫藥醫療診斷提供了清晰的藥方參考,有利于對癥下藥,輔助醫師進行臨床決策。

圖7 新冠肺炎癥狀及方劑的檢索結果

5 總結與展望

5.1 研究總結

本文創造性將Lattice LSTM 模型應用于中醫藥古文獻的命名實體識別任務中,以《傷寒論》為研究對象,對疾病、證候、方劑、癥狀和藥材五類實體進行識別。研究發現,實體數量及構成的復雜程度均會影響模型的識別效果;實驗結果表明:Lattice LSTM 性能最優,F1 值達95.66%,比主流模型BiLSTM-CRF 提升了1.68%,可用于中醫藥古文獻的命名實體識別。此外,本文在提取出的實體基礎上,人工抽取了實體間的四類關系,利用Neo4j 搭建了中醫藥知識圖譜;以新冠肺炎的中醫診療方案為例,使用圖譜進行了相關檢索,證實了理論模型在實際應用中的效果。

5.2 未來展望

本文仍存在不完善和可改進之處,在今后的研究中將繼續優化:

(1)用于中醫古籍專業術語識別的語料庫較小。本文僅使用《傷寒論》文本進行實證研究,數據量較小,難以充分發揮Lattice LSTM 模型的優勢。未來可以進一步擴充中醫古文獻的語料庫,探究模型在大規模數據集上的表現;也可以進一步豐富圖譜內容,如添加實體的屬性描述(如各方劑中藥材的配比),完善實體及關系類別。

(2)換用古漢語分詞專用工具包。本文在jieba 分詞時使用了自定義的中醫藥領域主題詞典,該工具一般用于現代漢語的分詞,在古文分詞方法的調研中發現了專注于古漢語分詞的NLP 工具包jiayan[21](https://github.com/jiaeyan/Jiayan),未來可將jiayan 與jieba 對比,檢驗其能否有效改善中醫藥古籍的分詞質量。

(3)實體關系抽取和數據審核不夠智能化。本文在實體關系抽取時主要采取人工匹配,沒有使用自然語言處理技術,耗費了一定時間和人力,未來可以考慮引入關系抽取模型提高抽取效率;同時在知識圖譜的數據審核方面也主要采用人工核對,工作量較大,未來可以通過屬性矯正、實體對齊等減少相應成本。

猜你喜歡
傷寒論方劑圖譜
General principle of high-quality academic development of traditional chinese medicine: “carrying on the essence,while pursuing innovations”
《傷寒論》六經溯源與理論淺析
《傷寒論》實為115方
中藥方劑在治療黃褐斑中的應用
繪一張成長圖譜
《金匱要略》黃芪類方劑探析
A Patient with End-stage Respiratory Failure Gets Recovery from Mechanical Ventilation by Utilization of Chinese Traditional Medicine
論方劑的配伍環境
補腎強身片UPLC指紋圖譜
甘草在方劑中的作用及配伍規律
91香蕉高清国产线观看免费-97夜夜澡人人爽人人喊a-99久久久无码国产精品9-国产亚洲日韩欧美综合