










〔摘要〕 目的 針對中醫醫案開展癥狀、病因病機、治法、用藥、處方、取穴6類實體的抽取研究,為中醫醫案知識圖譜構建和中醫智能輔助診療提供基礎。方法 根據中醫醫案文本的特點,提出一個可以動態更新的術語詞典方法用于分詞,并在中醫腦系疾病醫案和ChineseBLUE/cEHRNER、ChineseBLUE/cMedQANER、CBLUE/CMeEE 3個公開數據集上驗證該方法的有效性。結果 使用術語詞典的模型在準確率、精確率、召回率和F1值上均高于未使用術語詞典的模型,在測試集和驗證集上,F1值分別為92.07%和93.04%。結論 融合動態更新的術語詞典分詞方法的模型,能夠增強中醫領域特定術語和新實體的識別能力,提高中醫醫案關鍵信息識別的準確率,推進中醫藥知識的傳承與發展。
〔關鍵詞〕 中醫醫案;腦系疾病;術語詞典;實體抽取;IDCNN-CRF模型
〔中圖分類號〕R2" " " " "〔文獻標志碼〕A" " " " " 〔文章編號〕doi:10.3969/j.issn.1674-070X.2024.06.026
Research on entity extraction of TCM medical cases
based on terminology dictionary
ZHANG Lunlun1, REN Gao1, ZOU Beiji2, LIU Qingping1*
1. School of Informatics, Hunan University of Chinese Medicine, Changsha, Hunan 410208, China;
2. School of Computer Science And Engineering, Central South University, Changsha, Hunan 410083, China
〔Abstract〕 Objective To extract six categories of entities including symptoms, etiology and pathogenesis, treatment principles, medication, prescriptions, and acupoint selection from TCM medical cases, so as to lay the foundation for the construction of TCM medical case knowledge graphs and intelligent assistance in TCM diagnosis and treatment. Methods Based on the characteristics of TCM medical case texts, a dynamically updatable terminology dictionary method was proposed for word segmentation, and its effectiveness was validated on medical cases of TCM neurological disorders, as well as three publicly available datasets: ChineseBLUE/cEHRNER, ChineseBLUE/cMedQANER, and CBLUE/CMeEE. Results The model using the terminology dictionary achieved higher accuracy, precision, recall, and F1 values compared to the model without using the terminology dictionary. The F1 values on the test set and validation set were 92.07% and 93.04%, respectively. Conclusion The model integrating the dynamically updatable terminology dictionary segmentation method can enhance the recognition ability of specific terms and new entities in the TCM field, improve the accuracy of key information identification in TCM medical cases, and promote the inheritance and development of TCM knowledge.
〔Keywords〕 medical cases of Chinese medicine; neurological disorders; terminology dictionary; entity extraction; IDCNN-CRF model
中醫醫案是中醫醫家學術思想和臨床經驗的總結[1],詳細記錄了診療過程中的辨證、立法和處方等內容[2],主要包括患者的病史、癥狀、治法、處方、用藥等信息,以及患者不同階段的患病情況[3]。開展中醫醫案研究可以更好地探索不同醫家的學術思想和診療經驗,有助于中醫藥的傳承與創新發展[4]。
腦血管疾病是指發生在腦部血管,因顱內血液循環障礙而造成腦組織損害的一組疾病,包括腦卒中、腦出血、腦梗死等[5]。本研究以中醫腦系疾病醫案文本為研究對象,識別癥狀、病因病機、治法、用藥、處方、取穴6類實體[6],作為知識圖譜中的實體節點[7],基于術語詞典和深度學習模型開展中醫腦系疾病醫案實體抽取研究[8-10],并在公開數據集上進行模型的對比研究,驗證本研究所提方法的有效性,為中醫醫案知識圖譜自動構建等研究打下堅實的基礎,為中醫臨床診療提供新的思路與方法。
1 資料與方法
1.1" 數據來源
本研究選取《名中醫治愈腦血管病醫案集》[11]為數據來源。該書包含鄧鐵濤、李聰甫、石學敏、丁筱蘭等多位名醫的醫案。嚴格按照以下納入和排除標準,篩選出299篇醫案作為本研究的數據來源。
納入標準:(1)以中醫為切入點的醫案;(2)符合中醫腦系疾病診斷標準及癥狀表現;(3)診療過程、相關診療信息連續。
排除標準:(1)治療方案中同時包含西醫等其他療法;(2)醫案內容不完整,僅包含處方而缺少用藥、用法用量等信息;(3)相關診治信息過少;(4)醫案內容不包含相關實體。
在上述篩選工作完成基礎上,本研究將所選醫案按7∶1∶2分別劃分為訓練集、驗證集和測試集,并通過設置隨機種子確保每次獲得的訓練集、驗證集和測試集內容一致[12]。
1.2" 數據處理
數據獲取后,本研究從序列標注、分詞、構建術語詞典、構建字表和標簽表等詳細描述數據處理工作。
1.2.1" 序列標注" 序列標注目的是標記出原始醫案文本中各個實體所屬的類型,標記內容主要包含實體、實體類型、實體開始位置、實體結束位置等信息。本研究使用“精靈標注助手2.0.4”作為標注工具,圖1為多名中醫專業研究生采用BIO標注方法對醫案進行標注和相互校對后的結果[13]。
在中醫理論指導下,本研究根據中醫腦系疾病醫案數據的特點,最終標注了6類實體,分別為:癥狀(以下簡稱“ZZ”)、病因病機(以下簡稱“BYBJ”)、治法(以下簡稱“ZF”)、用藥(以下簡稱“YY”)、處方(以下簡稱“CF”)、取穴(以下簡稱“QX”)。采用BIO標注方法,將實體的開始位置標記為“B-X”,中間和結束位置標記為“I-X”,其他非實體部分,統一標記為“O”[14]。實體類型標注信息如表1。
以中醫腦系疾病醫案中“右側半身不遂,語言不利,神志不清”為例,標注結果示例如表2所示。標注完成后本研究進一步進行數據預處理工作,將標注后的字和標簽一一對應,生成新的數據,表3為字和標簽的對應關系示例。BIOES標注方法通過引入“E”和“S”標簽,為實體標注提供了更豐富的信息[15]。同時,“S”標簽能夠標注單個字符構成的實體,極大程度提高了實體抽取的準確性和效率[16]。因此,為了使模型能夠更準確地捕捉實體位置,本研究在數據預處理階段將BIO標注轉化為BIOES標注。
1.2.2" 分詞" 分詞又稱為詞語切分,是將連續的文本切分為一個個獨立的詞匯單元的過程。對于中醫醫案等專業性強、結構復雜且沒有明顯詞匯邊界的文本而言,分詞是一個重要的文本預處理步驟,對于確定詞的邊界和整體上提高實體抽取的準確性具有重要作用[17]。
本研究分別采用Jieba默認的精確模式和所構建的術語詞典方式對相關中醫醫案文本進行分詞,并將兩種方式的分詞結果進行對比與分析。
1.2.3" 構建術語詞典" 結合中醫專業的特點、行業標準以及待標注術語情況,本研究構建了包含半身不遂、口舌歪斜、氣虛血瘀、息風化痰、活血通絡、半夏白術天麻湯、天麻、鉤藤等11 611個詞語在內的術語詞典。術語詞典通過以下6種方式獲取術語:(1)從標注后的訓練集中提取3 976個術語;(2)從《方劑學》[18]教材中提取422個術語;(3)從《中藥學》[19]教材中提取559個術語;(4)從《中醫臨床診療術語 第1部分:疾病》[20](GB/T 16751.1—2023)中提取2 069個術語;(5)從《中醫臨床診療術語 第2部分:證候》[21](GB/T 16751.2—2021)中提取3 211個術語;(6)從《中醫臨床診療術語 第3部分:治法》[22](GB/T 16751.3—2023)中提取1 809個術語。
1.2.4" 構建字表和標簽表" 為了更好地表示字和標簽以及id值之間的映射關系,本研究構建了字表和標簽表。首先統計每個字和每個標簽出現的頻率,對統計結果從高到低排序,賦予每個字和每個標簽唯一、不重復的id值[23],并在構建術語詞典時添加“PAD”和“UNK”標識。其中,“PAD”標識是在同一批次中某個句子與最長句子不等長時進行填充;“UNK”標識表示未知字符,可以將測試集、驗證集中未在詞典中出現的字符,統一表示為“UNK”的id。
1.2.5" 數據處理流程" 本研究的數據處理流程分為5個步驟,具體如下:(1)對中醫醫案進行標注,并將標注后的實體標簽信息和文字對應,得到“字和標簽”的對應關系;(2)將標注后的中醫醫案隨機打亂順序,按照7∶1∶2的方式劃分為訓練集、驗證集和測試集;(3)檢驗文本的BIO編碼是否正確,并將BIO編碼轉化為BIOES編碼;(4)通過統計字和標簽,創建字映射和標簽映射,賦予字和標簽唯一且不重復的數值,并將數據集中的每句話均轉化為字列表、字典映射列表、標簽映射列表、分詞列表4個集合;(5)對轉化后的集合采取統一的批次管理,以每批次中最長的句子為基準,采用填充的方式使其他句子的維度和基準維度保持一致。
1.3" 實驗模型
1.3.1" 迭代膨脹卷積神經網絡" 迭代膨脹卷積神經網絡(iterated dilated convolutions neural network,IDCNN)是一種改進的卷積神經網絡,可以解決通用卷積神經網絡中池化層信息丟失的問題[24]。與傳統池化層相比,IDCNN采用膨脹卷積,通過增加空洞,擴大感受野,使每個卷積輸出時可以包含更大范圍的信息,并在一定程度上避免了池化層帶來的信息損失。同時,IDCNN包含多個膨脹卷積塊,每個塊是一個多層的膨脹卷積神經網絡,通過引入迭代寬度實現對輸入數據的跳躍式處理,進一步增強網絡的信息獲取能力[25]。因此,IDCNN特別適用于處理自然語言處理任務中句子的長依賴關系。
1.3.2" 條件隨機場" 條件隨機場(conditional random field,CRF)是解決標注問題的經典算法,尤其是序列標注中的鏈式CRF[26]。通常,序列標注任務中的標簽之間存在前后依賴關系,這與輸入序列前后關系有關。以標簽“Yi”為例,其與前一個標簽“Yi-1”、后一個標簽“Yi+1”以及輸入序列“X”都有關聯。CRF是一種判別式模型,通過學習輸入序列和輸出序列之間的關系,達到捕捉句子中標簽的前后依賴性的目的。此外,CRF在實際應用中可以接收IDCNN的輸出結果,確保最終預測結果的準確性。
1.3.3" 模型結構" 圖2為模型結構圖,本研究以中醫醫案中“右側半身不遂”為例,詳細介紹模型實體抽取的過程,具體如下。
(1)數據預處理階段。將“右側半身不遂”一句轉化為字列表、word_to_id映射列表、label_to_id映射列表和分詞列表4個集合。其中,字列表包含句子中的每個字,word_to_id映射列表表示每個字對應的id值,label_to_id映射列表表示字對應的標簽id值。分詞列表通過加載術語詞典,對句子進行分詞,并按規則將切分后的詞轉化為數值信息,為模型的輸入增加實體特征信息。將同一批次中未達到基準長度的文本通過padding填充后,進入embedding層。
(2)IDCNN層。將第一步的結果作為IDCNN層的輸入信息,通過迭代寬度獲取更長上下文信息,映射到k維,其中k表示數據集中標注的標簽數。通過特征提取,得到每個字在各個標簽中的值,選擇最大值作為該字的標簽。
(3)CRF層。已抽取到的實體在經過IDCNN層后,可能存在不規范的標簽特征。CRF層通過在訓練過程中學習正確的約束規則,對IDCNN層輸出的標簽進行約束和糾正,確保最終預測結果的正確性。
2 實驗
2.1" 評價指標
本研究選取準確率、精確率、召回率和F1值作為模型性能的評價指標。其中TP表示模型預測為正類的正樣本,TN表示模型預測為負類的負樣本,FP表示模型預測為正類的負樣本,FN表示模型預測為負類的正樣本。
準確率:預測正確的標簽和總標簽的比例,其計算公式為:
Accuracy=" " " " (1)
精確率:預測結果為正例樣本中真實結果為正例的比例,其計算公式為:
Precision=(2)
召回率:真實結果為正例的樣本中預測結果為正例的比例,其計算公式為:
Recall=(3)
F1值:反映模型的穩健性,可以同時兼顧到精確率和召回率,F1值越大則表示模型的性能越好,其計算公式為:
F1==(4)
2.2" 參數設置
本研究配置的環境:Python 3.6.5、TensorFlow 1.13.1。
本研究的實驗參數:分詞維度為20,WordEmb?鄄
edding維度為100,梯度裁剪為5,dropout為0.5,batch_size為120,學習率為0.001,優化器選擇Adam,最大輪訓次數設置為100。
2.3" 整體結果分析
實驗1:采用IDCNN-CRF-Unloaded、Bert-BiLSTM-CRF、IDCNN-CRF-Loaded模型在中醫腦系疾病醫案訓練集上進行訓練,并在測試集和驗證集上測驗。如表4,使用術語詞典的模型(IDCNN-CRF- Loaded)的各項指標值均超過90%,其中測試集、驗證集F1值分別達到了92.07%、93.04%。IDCNN-CRF-Loaded模型表現最好,其次是Bert-BiLSTM-CRF模型,而IDCNN-CRF-Unloaded模型性能相對較差。使用術語詞典的模型,無論在測試集還是驗證集上,4種評價指標均超過未使用術語字典的模型(IDCNN-CRF-Unloaded),其中測試集、驗證集分別高出5.79%、5.47%。
實驗2:采用IDCNN-CRF-Unloaded、Bert-BiLS?鄄TM-CRF、IDCNN-CRF-Loaded模型,在公開數據集ChineseBLUE/cEHRNER上訓練。從表4分析結果可知,使用術語詞典的IDCNN-CRF-Loaded模型的4種評價指標都超過了未使用術語字典的模型(IDCNN-CRF-Unloaded),且在測試集和驗證集上,F1值分別達到了89.60%、84.13%。
實驗3:采用IDCNN-CRF-Unloaded、Bert-BiLSTM-CRF、IDCNN-CRF-Loaded模型,在公開數據集ChineseBLUE/cMedQANER上訓練。從表4分析結果可知,使用術語詞典的模型(IDCNN-CRF-Loaded)的4種評價指標都超過了未使用術語字典的IDCNN-CRF Unloaded模型,且在測試集和驗證集上,F1值分別達到了82.88%、83.53%。
實驗4:采用IDCNN-CRF-Unloaded、Bert-BiLS?鄄
TM-CRF、IDCNN-CRF-Loaded模型,在公開數據集CBLUE/CMeEE-V2上訓練。從表4分析結果可知,使用術語詞典的模型(IDCNN-CRF-Loaded)的4種評價指標都超過了未使用術語字典的IDCNN-CRF-Unloaded模型,且在測試集和驗證集上,F1值分別達到了78.36%、78.48%。
由上述4個實驗可知,實驗2、實驗3和實驗4的分析結果與實驗1相比稍差,其原因如下:(1)實驗2、實驗3和實驗4所用的公開數據集標注的質量較差,很多實體的詞語間存在標點符號,在一定程度上會影響關鍵信息的識別;(2)訓練集、測試集和驗證集存在劃分不平衡的情況,實驗2中表現比較明顯。通過模型性能比較可知:IDCNN-CRF-Loaded模型在大多數情況下表現最好,其次是Bert-BiLSTM-CRF模型,而IDCNN-CRF-Unloaded模型性能相對較差。上述結果表明,在中醫醫案實體抽取任務中,IDCNN-CRF-Loaded模型是最佳選擇。
2.4" 實體類別結果分析
本研究基于IDCNN-CRF-Loaded模型,分析中醫治療腦系疾病醫案中6種實體的訓練結果。IDCNN-CRF-Loaded模型在各類實體之間的識別結果如表5—6所示。其中,表5為測試集之間是否使用術語詞典結果的對比,表6為驗證集之間是否使用術語詞典結果的對比。在6類實體結果上分析,使用術語詞典的模型的F1值高于未使用術語詞典的模型。
2.5" 中醫醫案在線實體抽取系統
本研究采用Flask框架,結合中醫領域術語詞典和在中醫腦系疾病醫案數據集上訓練得到的IDCNN-CRF-Loaded模型,設計與實現了中醫醫案在線實體抽取系統。系統界面分為輸入中醫醫案的左側部分、顯示實體類別的中間部分以及輸出識別結果的右側部分(如圖3)。通過該系統,用戶可以準確地識別中醫醫案中的癥狀、病因病機、治法、用藥、處方、取穴6類實體,快捷地對術語詞典中識別出的新實體進行核驗。對于術語詞典中已包含的實體,系統會自動提示;對于新識別出的實體,系統會自動將其標記為紅色,待進一步核驗或修改識別結果。用戶確認無誤后,可以直接獲得識別結果。如需修改識別錯誤的實體,點擊確定后,系統會自動將修正后的正確實體添加到術語詞典中。
3 討論
本研究使用3種深度學習模型,提出了加載術語詞典的實體抽取方法。對比不同模型在4個數據集上的表現,觀察到在4個實驗中,使用術語詞典的模型IDCNN-CRF-Loaded在測試集和驗證集上的性能普遍優于未使用術語詞典的模型IDCNN-CRF-Unloaded。在中醫腦系疾病醫案訓練集上,使用術語詞典的模型在測試集和驗證集上的F1值分別達到了92.07%和93.04%,相比未使用術語詞典的模型分別高出了5.79%和5.47%。在其他3種公開數據集上,采用術語詞典的模型同樣取得了更高的評價結果。通過比較不同模型之間的性能差異,本研究發現,在中醫腦系疾病醫案數據集和其他公開數據集上,IDCNN-CRF-Loaded模型表現最好,其次是Bert-BiLSTM-CRF模型,而IDCNN-CRF-Unloaded模型性能相對較差。上述結果表明,引入術語詞典在垂直領域開展實體抽取研究,能有效提升模型對術語的識別和分類能力。
采用IDCNN-CRF-Loaded模型對中醫腦系疾病醫案數據集中的6類實體進行識別和分析,在識別不同類別的實體時,對病因病機和癥狀兩類實體而言,加載術語詞典后,模型的識別效果明顯提升,這主要因為病因病機和癥狀的表達方式與常規詞語有較大差異。例如,在中醫胸痹醫案中,病因病機常以飲食不節、情志失調、稟賦異常等四字短語形式出現;癥狀常用肌膚不仁、舌強語謇、四肢厥冷等四字術語。加載術語詞典可以幫助模型更好地識別和理解上述特定術語,從而提高對病因病機和癥狀這兩類實體識別的準確性。針對用藥和取穴兩類實體而言,加載術語詞典對模型的性能提升影響較小,主要因為用藥和取穴涉及的詞語與常規詞匯更為接近,藥物或穴位名稱如麻黃、桂枝、太子參或百會、風池、足三里等,較為常見且易于被模型學習和識別。
本研究可為后續關系抽取和知識圖譜構建奠定基礎,但也存在一些不足:本研究主要圍繞中醫腦系疾病展開,未涉及其他疾病,今后將考慮拓展研究范圍,結合其他疾病深入探索,進一步豐富樣本類型和數量;同時,當前研究是以中醫學為切入點進行,未涉及藏族醫學、蒙古族醫學、維吾爾族醫學等知識,今后將嘗試融入其他醫學寶貴知識,旨在提升模型的普適性和應用價值,推動中醫藥知識的傳承與發展,為中醫臨床診療提供新路徑與方法。
參考文獻
[1] 王桂彬, 龐" 博. 名老中醫隱性知識發現與醫案解構模式研究[J]. 中華中醫藥雜志, 2023, 38(5): 2230-2234.
[2] 郝瑞森. 基于多元融合方法的劉燕池教授道術傳承研究[D]. 北京: 北京中醫藥大學, 2022.
[3] 林" 玲, 沈紹武, 付文嬌, 等. 中醫病案知識結構及其要素演變比較研究[J]. 時珍國醫國藥, 2023, 34(10): 2554-2557.
[4] 李" 綱, 潘榮清, 毛" 進, 等. 整合BiLSTM-CRF網絡和詞典資源的中文電子病歷實體識別[J]. 現代情報, 2020, 40(4): 3-12, 58.
[5] 木其爾, 詹" 青, 陳" 偉. 重癥腦病的中醫藥治療進展[J]. 世界科學技術: 中醫藥現代化, 2020, 22(11): 4025-4032.
[6] 孔靜靜, 于" 琦, 李敬華, 等. 實體抽取綜述及其在中醫藥領域的應用[J]. 世界科學技術: 中醫藥現代化, 2022, 24(8): 2957-2963.
[7] 屈丹丹, 楊" 濤, 朱" 垚, 等. 基于字向量的BiGRU-CRF肺癌醫案四診信息實體抽取研究[J]. 世界科學技術: 中醫藥現代化, 2021, 23(9): 3118-3125.
[8] 楊延云, 杜建強, 聶" 斌, 等. 一種面向中醫文本的實體關系深度學習聯合抽取方法[J]. 計算機應用與軟件, 2023, 40(3): 217-222, 234.
[9] 楊錦鋒, 關" 毅, 何" 彬, 等. 中文電子病歷命名實體和實體關系語料庫構建[J]. 軟件學報, 2016, 27(11): 2725-2746.
[10] 胡蘊慧, 劉" 朋, 熊皓舒, 等. 數智中藥: 現代中藥數智化升級與創新發展[J]. 中草藥, 2024, 55(1): 1-11.
[11] 鐘起哲. 名中醫治愈腦血管病醫案集[M]. 北京: 中國醫藥科技出版社, 1992.
[12] 蔣" 翔, 馬建霞, 袁" 慧. 基于BiLSTM-IDCNN-CRF模型的生態治理技術領域命名實體識別[J]. 計算機應用與軟件, 2021, 38(3): 134-141.
[13] 高佳奕, 劉" 震, 楊" 濤, 等. 基于條件隨機場的中醫臨床醫案癥狀命名實體抽取研究[J]. 世界科學技術: 中醫藥現代化, 2020, 22(6): 1947-1954.
[14] 肖" 瑞, 胡馮菊, 裴" 衛. 基于BiLSTM-CRF的中醫文本命名實體識別[J]. 世界科學技術: 中醫藥現代化, 2020, 22(7): 2504-2510.
[15] WANG C Y, WANG H, ZHUANG H, et al. Chinese medical named entity recognition based on multi-granularity semantic dictionary and multimodal tree[J]. Journal of Biomedical Informatics, 2020, 111: 103583.
[16] 湯潔儀, 李大軍, 劉" 波. 基于BERT-BiLSTM-CRF模型的地理實體命名實體識別[J]. 北京測繪, 2023, 37(2): 143-147.
[17] 王世民. 基于深度學習的中文電子病歷命名實體識別研究: 以腦卒中為例[D]. 武漢: 華中科技大學, 2020.
[18] 賈" 波, 許二平. 方劑學[M]. 新世紀3版. 北京: 中國中醫藥出版社, 2021.
[19] 鐘贛生,楊柏燦. 中藥學[M]. 新世紀5版. 北京: 中國中醫藥出版社, 2021.
[20] 國家市場監督管理總局, 國家標準化管理委員會. 中醫臨床診療術語 第1部分: 疾病: GB/T 16751.1—2023[S]. 北京: 中國標準出版社, 2023.
[21] 國家市場監督管理總局, 國家標準化管理委員會. 中醫臨床診療術語 第2部分: 證候: GB/T 16751.2—2021[S]. 北京: 中國標準出版社, 2021.
[22] 國家市場監督管理總局, 國家標準化管理委員會. 中醫臨床診療術語 第3部分: 治法: GB/T 16751.3—2023[S]. 北京: 中國標準出版社, 2023.
[23] 祖" 弦, 謝" 飛, 劉嘯劍. 融合詞和文檔嵌入的關鍵詞抽取算法[J]. 計算機科學與探索, 2021, 15(2): 294-304.
[24] ZHANG R Y, ZHAO P Y, GUO W Y, et al. Medical named entity recognition based on dilated convolutional neural network[J]. Cognitive Robotics, 2022, 2: 13-20.
[25] HE Z R, LUO X N, ZHONG Y R, et al. Information extraction method based on dilated convolution and character-enhanced word embedding[C]//2020 International Conference on Cyber-Enabled Distributed Computing and Knowledge Discovery (CyberC). Chongqing, China. IEEE, 2020: 138-143.
[26] PATIL N, PATIL A, PAWAR B. Named entity recognition using conditional random fields[J]. Procedia Computer Science, 2020, 167(C): 1181-1188.