胡 為,劉 偉,石玉敬
(湖南中醫(yī)藥大學(xué)信息科學(xué)與工程學(xué)院,湖南 長沙 410012)
中醫(yī)醫(yī)案記錄了古今眾多從醫(yī)者的診斷經(jīng)驗(yàn)和診療規(guī)律,是中醫(yī)從醫(yī)者辨證論治的重要基礎(chǔ)。目前的中醫(yī)醫(yī)案信息化程度較低,因此研究如何從海量的中醫(yī)醫(yī)案數(shù)據(jù)中挖掘癥狀描述或癥狀術(shù)語信息具有重要意義。早期對中醫(yī)醫(yī)案的命名實(shí)體識別研究,主要使用基于統(tǒng)計學(xué)的方法,文獻(xiàn)[2]在2009 年利用CRF 方法對明清古醫(yī)案進(jìn)行了病癥、方劑、藥材等中醫(yī)術(shù)語抽取,F(xiàn)值均達(dá)到了80%以上。文獻(xiàn)[3]等用條件隨機(jī)場對中醫(yī)病歷進(jìn)行命名實(shí)體識別研究,并通過和傳統(tǒng)的HMM 模型對比,驗(yàn)證了該方法是一種較為適用的中醫(yī)臨床病歷命名實(shí)體抽取方法。近年來由于深度學(xué)習(xí)在自然語言中的良好表現(xiàn),大量研究者采用深度學(xué)習(xí)方法對中醫(yī)醫(yī)案進(jìn)行命名實(shí)體識別研究。文獻(xiàn)[4]針對于中醫(yī)醫(yī)案臨床癥狀術(shù)語提出了一種基于長短期記憶(LSTM)網(wǎng)絡(luò)和條件隨機(jī)場(CRF)的深度學(xué)習(xí)癥狀術(shù)語識別方法,該方法在中醫(yī)典籍《全國名醫(yī)驗(yàn)案類方》數(shù)據(jù)集上F值最好達(dá)到了78%。文獻(xiàn)[5]利用BiLSTM 能夠更有效的獲取輸入語句前后特征的特點(diǎn),用BiLSTM-CRF 模型對中醫(yī)醫(yī)案進(jìn)行命名實(shí)體識別,在曹滄洲醫(yī)案數(shù)據(jù)集上F值達(dá)89.8%。文獻(xiàn)[6]基于word2vec 的向量構(gòu)建,通過BiLSTM-CRF 方法對中醫(yī)醫(yī)案文本進(jìn)行命名實(shí)體識別,在人工標(biāo)注的老中醫(yī)醫(yī)案數(shù)據(jù)集上F值達(dá)到了88.34%。上述的中醫(yī)醫(yī)案的命名實(shí)體識別方法中,傳統(tǒng)的機(jī)器學(xué)習(xí)命名實(shí)體識別方法由于無法捕獲長距離上下文的信息,而深度學(xué)習(xí)方法如BiLSTM 算法可以從雙向來捕獲上下文的信息,還能從文本中挖掘隱藏特征,故深度學(xué)習(xí)方法和機(jī)器學(xué)習(xí)方法相比,優(yōu)勢比較明顯。
本文在現(xiàn)有中醫(yī)醫(yī)案命名實(shí)體識別研究基礎(chǔ)上,提出在BiLSTM-CRF 算法上加入BERT 語言模型(Bidirectional Encoder Representationfrom Transformers,BERT)來提高中醫(yī)醫(yī)案命名實(shí)體識別效果。BERT 語言模型是一個強(qiáng)大的預(yù)訓(xùn)練模型,通過采用Transformer訓(xùn)練出一個強(qiáng)大的預(yù)訓(xùn)練模型,并可以將預(yù)訓(xùn)練的模型進(jìn)行遷移學(xué)習(xí),只需在小規(guī)模的中醫(yī)醫(yī)案訓(xùn)練集上進(jìn)行微調(diào),即可提升命名實(shí)體識別任務(wù)的效果,同時還能解決文本特征表示時一詞多義的問題。
BERT-BiLSTM-CRF模型核心由BERT語言模型、BiLSTM 模型、CRF 模型三個大的模塊組成,其整體結(jié)構(gòu)如圖1所示。
圖1 BERT-BiLSTM-CRF模型圖
BERT-BiLSTM-CRF 模型首先利用預(yù)訓(xùn)練的BERT語言模型的Transformer機(jī)制對輸入的數(shù)據(jù)進(jìn)行編碼,輸出文本的字向量序列表示即={,,…,x},然后將結(jié)果輸入到BiLSTM 層進(jìn)一步獲取數(shù)據(jù)隱藏層的高層特征,最后通過CRF 對BiLSTM 的輸出結(jié)果進(jìn)行狀態(tài)轉(zhuǎn)移約束,并最終輸出命名實(shí)體結(jié)果。
自然語言處理任務(wù)的第一步是如何將文本信息轉(zhuǎn)化為計算機(jī)能識別的數(shù)據(jù)形式,早期的主流做法是采用詞向量模型,比較經(jīng)典的詞向量模型有Google 在2012 年提出的Word2Vec。該方法生成的詞向量雖然考慮了上下文信息,但該方法本身屬于一種淺層結(jié)構(gòu)的詞向量,所學(xué)到的上下文語義信息受限于窗口大小導(dǎo)致無法獲取長距離的上下文依賴關(guān)系,并且該方法也無法解決一詞多義的問題。文獻(xiàn)[7]提出的BERT預(yù)訓(xùn)練語言模型可有效解決上述問題。該模型的結(jié)構(gòu)如圖2 所示,該模型采用雙向Transformer 編碼器,生成的字向量可以充分融合字詞左右的上下文信息,與傳統(tǒng)語言模型相比,該模型可以更充分地表征字的多義性。
LSTM(Long Short-Term Memory)是一種特殊的RNN(Recurrent Neural Network),每個LSTM 單元由輸入門、遺忘門和輸出門組成。其單元結(jié)構(gòu)如圖2所示。
圖2 LSTM單元結(jié)構(gòu)圖
LSTM 存儲單元不僅能夠存儲短期輸入信息,還能保存長期的輸入狀態(tài)。LSTM 核心的3 個門中,輸入門控制輸入的新存儲內(nèi)容的大小,遺忘門確定需要忘記的存儲量,輸出門調(diào)制輸出存儲器內(nèi)容的數(shù)量。通過三個門還能克服傳統(tǒng)RNN 模型在面向長序列特征提取過程中存在的梯度消失等問題。
由于LSTM 模型都是從前向后編碼,使得句子只能掌握從前到后的上下文信息,而很多句子后面的詞語跟前面的詞語也是有很強(qiáng)的關(guān)聯(lián)性,因此BiLSTM模型組合了前向LSTM 模型與后向LSTM 模型,通過前向LSTM 模型和后向LSTM 模型組成BiLSTM 模型來學(xué)習(xí)雙向上下文信息。
CRF 是Lafferty 等在2001 年提出的一種遵循馬爾可夫性的概率圖模型,通過隨機(jī)變量作為輸入來輸出隨機(jī)變量的條件概率分布的一種算法。對于標(biāo)簽分類問題,由于CRF 能夠充分考慮標(biāo)簽與標(biāo)簽之間的依賴關(guān)系,相比于Softmax 分類器,CRF 更適合用于分詞任務(wù),CRF結(jié)構(gòu)如圖3所示。
圖3 CRF模型結(jié)構(gòu)圖
圖3中{,,…,x}為需要預(yù)測的文本序列,={,,…,y}為輸出結(jié)果的預(yù)測序列。
本文使用的數(shù)據(jù)集來源于《中國現(xiàn)代名中醫(yī)醫(yī)案精粹》,從數(shù)據(jù)集中甄選出1000 條高質(zhì)量醫(yī)案后由多位經(jīng)驗(yàn)豐富的中醫(yī)學(xué)者共同對數(shù)據(jù)集進(jìn)行人工標(biāo)注。數(shù)據(jù)集共設(shè)計了六個實(shí)體類別,即癥狀實(shí)體、辯證實(shí)體、治則實(shí)體、方藥實(shí)體、人群實(shí)體、功效實(shí)體。數(shù)據(jù)集采用BIO 標(biāo)注法,其中屬于六個類別的實(shí)體元素標(biāo)注為B-X 或I-X,B-X 為此實(shí)體元素的開頭,I-X 表示次實(shí)體元素的中間或結(jié)尾,不屬于六類實(shí)體中的其他實(shí)體用元素O 來表示。具體的標(biāo)注表1 所示,最后從標(biāo)注后的數(shù)據(jù)集中選取70%作為訓(xùn)練數(shù)據(jù),20%作為測試數(shù)據(jù),10%為驗(yàn)證數(shù)據(jù)來進(jìn)行實(shí)驗(yàn)。
表1 待預(yù)測的標(biāo)簽
本文采用命名實(shí)體識別的常用的三個評價指標(biāo)即精確率(P)、召回率(R)和F值。具體公式如下:
其中T為模型正確識別的實(shí)體數(shù),F(xiàn)為模型識別錯誤實(shí)體數(shù),F(xiàn)為模型沒有檢測到的實(shí)體數(shù)。
本文實(shí)驗(yàn)采用一臺操作系統(tǒng)為Ubuntu、CPU 型號為2.2 GHz八核Intel Core i7、顯卡型號為GTX2080i、顯存11G 的機(jī)器。在機(jī)器上搭建了Tensorflow1.15 框架、Python3.7 版本的環(huán)境,BERT 預(yù)訓(xùn)練模型采用Google 官方的Bert_Base_Chinese 版本,該版本模型設(shè)置了12 層的Transformer,12 個Attention-head,768 個隱藏層單元,整個模型有110m 個參數(shù)。在實(shí)驗(yàn)的過程中,將BERT 模型的參數(shù)最大句子長度設(shè)置成256,batchsize設(shè)置成8,學(xué)習(xí)率為1e-5,dropout 為0.5,BiLSTM中隱藏層的維度為128,訓(xùn)練的輪數(shù)設(shè)置為20。
本文利用BERT-BiLSTM-CRF 得到的各個實(shí)體預(yù)測結(jié)果如表2所示。
表2 各類實(shí)體標(biāo)簽的識別結(jié)果
從表2 的結(jié)果看出,BERT-BiLSTM-CRF 模型在各個實(shí)體上得分有一定的差異,比如“辯證實(shí)體”的F得分只有0.814,分析其原因是由于“辯證實(shí)體”、“治則實(shí)體”、“功效實(shí)體”在概念上存在一定的相似性,人工標(biāo)注時,對部分實(shí)體比較難界定其邊界,導(dǎo)致標(biāo)注時比較容易受到主觀因素和習(xí)慣的影響,另外,部分實(shí)體的數(shù)量較低也會影響其識別效果。
為了驗(yàn)證本模型BERT-BiLSTM-CRF 的效果,我們選取了如下幾種方法進(jìn)行對比:①傳統(tǒng)的HMM模型;②機(jī)器學(xué)習(xí)CRF 模型;③深度學(xué)習(xí)BiLSTM模型;④深度學(xué)習(xí)BiLSTM-CRF模型。上述四種命名實(shí)體算法在本文的數(shù)據(jù)集上進(jìn)行了實(shí)驗(yàn),將實(shí)驗(yàn)結(jié)果和本文的BERT-BiLSTM-CRF模型進(jìn)行對比,各模型性能指標(biāo)如表3所示。
從表3 可以看出,傳統(tǒng)的機(jī)器學(xué)習(xí)模型HMM 和CRF 深度學(xué)習(xí)模型相比,深度學(xué)習(xí)模型各方面的性能都優(yōu)于傳統(tǒng)的機(jī)器學(xué)習(xí)模型。在深度學(xué)習(xí)模型中加入序列標(biāo)注CRF的BiLSTM-CRF模型,在各方面都優(yōu)于BiLSTM 模型,說明CRF 在考慮了序列的全局標(biāo)簽信息后對模型的性能有一定的提升。在深度學(xué)習(xí)BiLSTM-CRF模型上加入BERT模型后,F(xiàn)值提升3.3%,由此可以說明,BERT 模型對于文本數(shù)據(jù)字符間的關(guān)系特征提取及其性能提升有明顯效果,同時也說明本文BERT-BiLSTM-CRF 模型在中醫(yī)醫(yī)案的命名實(shí)體識別相比于其他模型優(yōu)勢較明顯。
表3 各種模型的結(jié)果對比
本文研究設(shè)計了一種BERT-BiLSTM-CRF 中醫(yī)醫(yī)案命名實(shí)體識別方法,利用BERT語言模型,能夠解決在文本特征表示的一詞多義問題,結(jié)合BiLSTM 算法充分學(xué)習(xí)上下文信息的特點(diǎn)以及CRF 算法提取全局最優(yōu)標(biāo)注序列,得到中醫(yī)醫(yī)案的實(shí)體,最后通過實(shí)驗(yàn)對比,P 值、R 值和F值相比以往研究者所提出的中醫(yī)醫(yī)案命名實(shí)體識別效果最好的方法分別提高了3.58%,1.95%,3.4%。本文提出的方法解決了中醫(yī)醫(yī)案實(shí)體識別效率一般的問題,將為挖掘中醫(yī)醫(yī)案的有用信息提供了技術(shù)支撐。