高佳奕,楊濤,董海艷,史話躍,胡孔法
1.南京中醫(yī)藥大學(xué)人工智能與信息技術(shù)學(xué)院,江蘇 南京 210023; 2.南京中醫(yī)藥大學(xué)中醫(yī)學(xué)院,江蘇 南京 210023
中醫(yī)醫(yī)案是中醫(yī)臨床診療的記錄,是中醫(yī)師辨證論治、察明證素的基礎(chǔ),是中醫(yī)文化的重要傳承紐帶。個體化的專家表達與非結(jié)構(gòu)化的中醫(yī)癥狀,使得從復(fù)雜醫(yī)案中抽取有效信息具有挑戰(zhàn)性。中醫(yī)臨床信息抽取是從海量臨床數(shù)據(jù)中抽取關(guān)鍵信息的過程[1],涉及癥狀、診斷、治法、方藥等信息,其中又以癥狀抽取最為復(fù)雜。有效的信息抽取是挖掘中醫(yī)辨證規(guī)律、探尋疾病機理的重要基礎(chǔ)。近年來,隨著對詞嵌入模式的改進,神經(jīng)網(wǎng)絡(luò)在信息抽取領(lǐng)域取得較大進展,在部分任務(wù)中的表現(xiàn)超過傳統(tǒng)的統(tǒng)計學(xué)習(xí)方法。Huang等[2]提出雙向長短時記憶網(wǎng)絡(luò)與條件隨機場(long short term memory network-conditional random fields,LSTM-CRF)混合模型,減少模型對詞嵌入的依賴,極大提高了模型的穩(wěn)健性。李明浩等[3]針對中醫(yī)醫(yī)案臨床癥狀術(shù)語構(gòu)建LSTM-CRF模型,根據(jù)常見癥狀的組成要素制定額外的字符級別特征,識別的F1值最高達78%。上述研究為中醫(yī)臨床文本醫(yī)案自動化分析和處理,尤其是癥狀識別和抽取帶來了新的契機。鑒于此,本研究嘗試將LSTM-CRF模型應(yīng)用于中醫(yī)醫(yī)案的命名實體抽取,設(shè)計多種癥狀命名實體抽取模型,并在中醫(yī)肺癌數(shù)據(jù)集上進行實驗,分析比較各方法的優(yōu)劣,為實現(xiàn)中醫(yī)臨床信息的自動化抽取提供方法學(xué)參考。
數(shù)據(jù)來自國醫(yī)大師周仲瑛工作室,為1986年7月10日-2014年12月3日周仲瑛教授治療肺癌的醫(yī)案。
納入標準:①醫(yī)案明確記載診斷為肺癌;②患者就診時主訴以肺癌為主;③數(shù)據(jù)完整,至少包含臨床表現(xiàn)、病機分析和治法、用藥內(nèi)容。
排除標準:①非原發(fā)性肺癌,如復(fù)發(fā)癌或轉(zhuǎn)移性腫瘤;②醫(yī)案記錄存在明確錯誤或缺失。
根據(jù)篩選標準篩選到1000份高質(zhì)量醫(yī)案,圍繞病史進行癥狀命名實體識別??紤]到中醫(yī)醫(yī)案中的描述包括“咳嗽”等癥狀特征、“胸、背”等部位特征、“稍有”等程度特征,醫(yī)者據(jù)此進行辨證論治,本研究根據(jù)如上的實體特征,將單條醫(yī)案劃分為癥狀(名)、(癥狀)程度、(癥狀發(fā)生)部位3類不同標簽,與疾病無關(guān)的信息劃分為非命名實體組成部分。標簽具體特征見表1。
表1 醫(yī)案標簽對應(yīng)部分特征
癥狀詞、程度詞、部位詞依次記為ZZ、CD、BW,非命名實體組成部分記為O。利用BIO三元集的標注方法進行標注,具體方法見表2。如某份原始病案可標注為“近O來O左B-BW胸I-BW脅I-BW肋I-BW隱B-ZZ痛I-ZZ,咳B-ZZ嗽I-ZZ深O呼O吸O有O影O響O,行O走O講O話O氣B-ZZ短I-ZZ,疲B-ZZ勞I-ZZ乏I-ZZ力I-ZZ,咳B-ZZ嗽I-ZZ不B-CD多I-CD,煩B-ZZ躁I-ZZ,咽B-BW后I-BW壁I-BW有O痰B-ZZ黏I-ZZ不I-ZZ爽I-ZZ?!?/p>
表2 命名實體標注方法
本研究利用爬蟲獲取中國知識資源總庫(CNKI)與中醫(yī)主題相關(guān)的100條文本摘要,結(jié)合已標注的1000份中醫(yī)臨床肺癌醫(yī)案,利用Python中Gensim庫,通過基于Skip-Gram方法的Word2Vec模型生成維度為100的字向量集,以此作為預(yù)訓(xùn)練的字嵌入。為驗證生成字嵌入的可靠性,本文以“咳”字為例,選取與之相關(guān)度較高的字向量,結(jié)果見圖1。可以看出詞嵌入結(jié)果符合先驗知識。
圖1 “咳”字的字嵌入相關(guān)性分析
長短時記憶網(wǎng)絡(luò)(long short term memory network,LSTM)模型通過門限機制(即輸入門、輸出門和遺忘門)對輸入序列進行有效的過濾和保存[4-5],實現(xiàn)對特定實體的長期記憶,解決了傳統(tǒng)識別任務(wù)中的梯度消失和梯度爆炸現(xiàn)象。因此,本研究采用LSTM層作為特征提取層,抽取出中醫(yī)醫(yī)案實體的抽象特征。條件隨機場(conditional random fields,CRF)是用來標注和劃分序列結(jié)構(gòu)數(shù)據(jù)的概率化結(jié)構(gòu)模型[6],可以在句子級別上實現(xiàn)個體標簽的預(yù)測,有效避免標注的句子存在非法語義??紤]到各個標簽表現(xiàn)出較強的語法約束,如病位的起始詞后不應(yīng)接程度的中間詞,本研究選擇CRF層作為輸出標注層,根據(jù)LSTM層輸出學(xué)習(xí)醫(yī)案的語法規(guī)則,在可行的標注路徑中找到最優(yōu)路徑,進而實現(xiàn)相應(yīng)實體的合理標注。LSTM-CRF模型結(jié)構(gòu)圖見圖2。
圖2 LSTM-CRF模型結(jié)構(gòu)圖
模型具體實現(xiàn)步驟:①根據(jù)中醫(yī)醫(yī)案的術(shù)語特點,結(jié)合中醫(yī)醫(yī)案與CNKI中醫(yī)詞條相關(guān)的文本摘要,獲得維度為100的字向量表示。②構(gòu)建LSTM層,結(jié)合預(yù)訓(xùn)練的字向量,抽取出中醫(yī)醫(yī)案的上下文抽象特征,計算序列與標簽的概率分布矩陣。③應(yīng)用CRF層學(xué)習(xí)序列與標簽、標簽與標簽之間的潛在關(guān)系,在句子級別上排除不符合語法規(guī)則的標注序列。④通過多分類評價指標對模型結(jié)果進行評價。LSTM層的實現(xiàn)步驟如下。
輸入:預(yù)訓(xùn)練的字嵌入。
輸出:輸入序列與對應(yīng)標簽的概率分布矩陣P。
步驟1:根據(jù)輸入序列x中的字符,將預(yù)訓(xùn)練生成的對應(yīng)字向量送入LSTM(前向)的輸入層中。
步驟2:更新當(dāng)前LSTM網(wǎng)絡(luò)中所在單元的狀態(tài)。
步驟3:將序列輸入LSTM(后向)中,重復(fù)上述過程。將2次遍歷的隱藏層序列拼接得到與上下文相關(guān)的字向量表示。
有學(xué)者通過改變LSTM的內(nèi)部結(jié)構(gòu),設(shè)計出帶有peephole connection機制[7]與門控循環(huán)單元(gated recurrent unit,GRU)[8]的LSTM變體,極大簡化其復(fù)雜的門限機制。本研究參照上述建模步驟,選取傳統(tǒng)的循環(huán)神經(jīng)網(wǎng)絡(luò)(recurrent neural network,RNN)模型作為基線實驗,LSTM、GRU、雙向LSTM(BiLSTM)與帶有Peephole機制的BiLSTM(BiLSTM with Peephole)作為對比實驗,比較分析不同模型的實體識別效果。
基于Tensorflow框架構(gòu)建中醫(yī)醫(yī)案的LSTM-CRF模型,部分參數(shù)設(shè)置:全局學(xué)習(xí)率(learning_rate)為0.001,最大訓(xùn)練輪數(shù)(max_epoch)為100,訓(xùn)練語料的句子最大長度(max_length)不超過100個字符,選擇優(yōu)化器為Adam。為防止梯度爆炸和過度擬合現(xiàn)象,設(shè)置梯度截斷參數(shù)(gradient clip)為5,隨機失活參數(shù)(dropout)為0.5。以上參數(shù)設(shè)置均為實驗過程中調(diào)參的最優(yōu)結(jié)果。此外,為提高LSTM-CRF模型的泛化能力,避免序列的輸入順序?qū)?shù)學(xué)習(xí)造成影響,每輪訓(xùn)練前預(yù)先對輸入數(shù)據(jù)進行Shuffle。
本研究使用準確率(precision,P)、召回率(recall,R)和F1-測度值(F1-measure,F(xiàn)1)3個指標,評估LSTM-CRF模型在中醫(yī)醫(yī)案信息抽取任務(wù)中的性能。將真實類別與計算機預(yù)測類別相互組合,分別記為真正例(true positive,TP)、假正例(false positive,F(xiàn)P)、真反例(true negative,TN)與假反例(false negative,F(xiàn)N),則P=TP/(TP+FP)×100%,R=TP/(TP+FN)×100%,F(xiàn)1=2×P×R/(P+R)。
將1000份肺癌醫(yī)案劃分為訓(xùn)練集800份和測試集200份,采用經(jīng)典的留出法進行模型評估。設(shè)置隨機種子為1~10,取10次測試結(jié)果的平均值作為最終評估值。實驗結(jié)果排除非命名實體組成部分,分別觀察LSTM及其變體對癥狀、程度、部位實體的識別情況(各變體均默認后接CRF層進行序列標注)。結(jié)果顯示,各變體均對癥狀詞的識別精度最高,對部位詞的識別精度最低。與RNN相比,帶有Peephole機制的BiLSTM識別效果最好,F(xiàn)1值最高達84.23%,3類標簽F1值分別高于基線模型RNN 6.76%、10.89%、14.94%,見表3。
同時,與傳統(tǒng)的CRF相比,BiLSTM-CRF模型對程度和部位的識別能力均有提升,分別為5.71%和2.45%,但對癥狀的識別能力低于CRF(見表4)。
進一步探究嵌入粒度對實驗結(jié)果的影響,將預(yù)訓(xùn)練的詞嵌入(WE)作為基線,結(jié)果未經(jīng)過預(yù)訓(xùn)練、直接根據(jù)輸入語料隨機初始化字嵌入(RE)識別效果略優(yōu),采用預(yù)訓(xùn)練的字嵌入(CE)識別效果最好,3類標簽分別高于基線0.42%、1.35%、1.98%,見表5。
表3 中醫(yī)醫(yī)案癥狀命名實體在不同模型中的識別結(jié)果比較(±s)
表3 中醫(yī)醫(yī)案癥狀命名實體在不同模型中的識別結(jié)果比較(±s)
注:*該行最大值
標簽 指標 RNN LSTM GRU BiLSTM BiLSTM with Peephole ZZ P 0.786 5±0.106 2 0.798 0±0.029 8 0.805 7±0.025 3 0.838 5±0.029 3 0.844 6±0.022 7 R 0.791 7±0.021 6 0.792 0±0.018 9 0.796 6±0.024 6 0.840 1±0.030 9 0.840 2±0.019 2 F1 0.789 0±0.023 4 0.794 9±0.022 4 0.801 1±0.024 1 0.839 1±0.027 5 0.842 3±0.019 4* CD P 0.774 8±0.043 8 0.784 1±0.021 2 0.789 1±0.048 1 0.816 2±0.062 7 0.813 5±0.028 0 R 0.713 8±0.050 9 0.738 7±0.059 3 0.749 0±0.045 7 0.822 8±0.028 1 0.833 4±0.045 6 F1 0.742 0±0.042 4 0.759 8±0.037 9 0.768 0±0.038 9 0.818 7±0.042 2 0.822 8±0.032 7* BW P 0.719 9±0.028 7 0.723 3±0.101 6 0.715 6±0.078 1 0.739 5±0.091 9 0.766 3±0.082 7 R 0.588 6±0.021 6 0.623 4±0.109 5 0.605 9±0.088 3 0.714 4±0.092 4 0.720 6±0.078 7 F1 0.644 2±0.023 4 0.661 3±0.080 6 0.651 9±0.067 2 0.720 9±0.070 7 0.740 5±0.068 2*
表4 CRF與BiLSTM-CRF識別效果(R)比較(±s)
表4 CRF與BiLSTM-CRF識別效果(R)比較(±s)
模型 ZZ CD BW CRF 0.871 2±0.014 5 0.788 4±0.032 5 0.703 4±0.049 1 BiLSTM-CRF 0.840 2±0.019 2 0.833 4±0.045 6 0.720 6±0.078 7
表5 中醫(yī)醫(yī)案癥狀命名實體在不同嵌入粒度下的識別結(jié)果比較(±s)
表5 中醫(yī)醫(yī)案癥狀命名實體在不同嵌入粒度下的識別結(jié)果比較(±s)
注:*該行最大值
標簽 指標 WE RE CE ZZ P 0.835 6±0.028 5 0.837 6±0.023 7 0.844 6±0.022 7 R 0.842 1±0.023 3 0.841 9±0.021 8 0.840 2±0.019 2 F1 0.838 7±0.024 9 0.839 6±0.019 6 0.842 3±0.019 4*CD P 0.836 5±0.047 1 0.829 0±0.047 8 0.813 5±0.028 0 R 0.792 9±0.053 6 0.810 5±0.043 3 0.833 4±0.045 6 F1 0.811 8±0.046 3 0.818 3±0.032 1 0.822 8±0.032 7*BW P 0.786 8±0.080 4 0.774 0±0.080 2 0.766 3±0.082 7 R 0.696 2±0.084 1 0.709 7±0.071 6 0.720 6±0.078 7 F1 0.726 1±0.067 9 0.737 8±0.063 9 0.740 5±0.068 2*
本研究應(yīng)用LSTM-CRF模型進行中醫(yī)臨床癥狀命名實體識別,對肺癌中醫(yī)臨床數(shù)據(jù)進行實驗。從整體結(jié)果分析,模型對癥狀詞的識別效果最好,其評價指標P、R、F1值分別為0.844 6±0.022 7、0.840 2±0.019 2、0.842 3±0.019 4;對部位詞的識別效果最差,P、R、F1值分別為0.766 3±0.082 7、0.720 6±0.078 7、0.740 5±0.068 2。考慮為部位詞的樣本數(shù)較少(共2501處)而癥狀詞的樣本數(shù)較多(共計184 649處),訓(xùn)練過程中網(wǎng)絡(luò)學(xué)習(xí)到部位詞的類別特征不明顯,影響了識別精度。
從LSTM及其各變體的識別結(jié)果分析,LSTM利用門限機制和內(nèi)部的細胞狀態(tài)較好地實現(xiàn)了對信息的更新與長時積累,使3個標簽的F1值均優(yōu)于傳統(tǒng)的RNN;GRU得益于其較為簡單的門控機制與較少的訓(xùn)練參數(shù),整體識別效果略高于LSTM;BiLSTM在LSTM的基礎(chǔ)上對輸入序列進行了額外的反向?qū)W習(xí),使其對輸入序列的部分語法規(guī)則(如“I-CD”標簽前不可能出現(xiàn)“B-ZZ”標簽等)學(xué)習(xí)更加準確,加強了對上下文所攜帶信息的記憶,癥狀、程度、部位3類標簽的F1值分別高于LSTM 5.78%、7.53%、8.61%;帶有Peephole機制的BiLSTM識別效果最好,3類標簽的F1值分別高于LSTM 5.96%、8.29%、11.98%。
對BiLSTM-CRF與CRF的識別效果進行比較分析,發(fā)現(xiàn)BiLSTM有效提高了CRF在程度詞與部位詞識別上的召回能力。由于部位詞與程度詞的標簽數(shù)目較少,且在實際標注過程中二者常分散存在于癥狀詞中,常與癥狀詞相混淆,人工編寫的特征模板難以識別,同時,部位詞和程度詞的表述相對靈活,重現(xiàn)性差,如形容程度較輕有“偶”“稍”“稍有”“少”“微微有”“不多”“有時”等多種表達方式,部位常與多個方位詞連用,如“右脅”“胸脅”“脅部”等,CRF的特征模板具有一定局限性,只能在有限窗口內(nèi)進行提取,無法根據(jù)具體語義進行靈活識別,而BiLSTM摒棄傳統(tǒng)特征模板,對學(xué)習(xí)內(nèi)容具有長時記憶,加強了各窗口之間聯(lián)系。針對癥狀詞,CRF的識別效果略優(yōu)于BiLSTM,這是由于中醫(yī)病案中癥狀名多為雙字或四字成詞,如“咳嗽”“咯痰”“疲勞乏力”,且樣本數(shù)較多,特征明顯,獨立性強,不太依賴長遠信息,用人工標注的模板即可學(xué)習(xí)到這些特征,BiLSTM額外的復(fù)雜性給癥狀詞識別帶來干擾。
對不同的嵌入粒度進行深入探究,發(fā)現(xiàn)隨機初始化字嵌入方法的識別效果略優(yōu)于預(yù)訓(xùn)練后的詞嵌入方法??紤]為中醫(yī)醫(yī)案多為白話夾雜部分文言的敘述方式,現(xiàn)有的詞嵌入生成工具對未能識別的詞按字切分,如“納可”被切分為“納可”,中醫(yī)術(shù)語常存在一字多義情況,如“二便”往往被切分為“二便”,導(dǎo)致生成的詞向量語義與醫(yī)案中詞語的實際語義差別較大,使按字嵌入的效果優(yōu)于按詞嵌入,與文獻[3]研究結(jié)果一致。預(yù)訓(xùn)練的字嵌入方法識別效果最好,這是因為隨機初始化方式僅局限于字在當(dāng)前訓(xùn)練集中的上下文信息,而預(yù)訓(xùn)練方式包含字在全局范圍內(nèi)的上下文信息,有效提高了模型的語義信息量。
中醫(yī)醫(yī)案是古今醫(yī)家通過不斷實踐總結(jié)的寶貴經(jīng)驗,在傳承及指導(dǎo)臨床等方面具有舉足輕重作用。本研究構(gòu)建了基于LSTM-CRF的中醫(yī)醫(yī)案癥狀命名實體抽取模型,并就不同變體算法與嵌入粒度等進行了測評,結(jié)果顯示基于字嵌入并帶有Peephole機制的雙向LSTM識別效果較好。但本研究采用的數(shù)據(jù)集樣本量較小,數(shù)據(jù)集標簽類別分布不均衡,癥狀術(shù)語未進行統(tǒng)一規(guī)范,存在實體間相互包含與混淆等問題。今后研究將進一步增加樣本量,設(shè)計更為精細的標簽?zāi)J?,從而提高模型的識別效果。