胡 為,劉 偉,石玉敬
(湖南中醫藥大學信息科學與工程學院,湖南 長沙 410012)
中醫醫案記錄了古今眾多從醫者的診斷經驗和診療規律,是中醫從醫者辨證論治的重要基礎。目前的中醫醫案信息化程度較低,因此研究如何從海量的中醫醫案數據中挖掘癥狀描述或癥狀術語信息具有重要意義。早期對中醫醫案的命名實體識別研究,主要使用基于統計學的方法,文獻[2]在2009 年利用CRF 方法對明清古醫案進行了病癥、方劑、藥材等中醫術語抽取,F值均達到了80%以上。文獻[3]等用條件隨機場對中醫病歷進行命名實體識別研究,并通過和傳統的HMM 模型對比,驗證了該方法是一種較為適用的中醫臨床病歷命名實體抽取方法。近年來由于深度學習在自然語言中的良好表現,大量研究者采用深度學習方法對中醫醫案進行命名實體識別研究。文獻[4]針對于中醫醫案臨床癥狀術語提出了一種基于長短期記憶(LSTM)網絡和條件隨機場(CRF)的深度學習癥狀術語識別方法,該方法在中醫典籍《全國名醫驗案類方》數據集上F值最好達到了78%。文獻[5]利用BiLSTM 能夠更有效的獲取輸入語句前后特征的特點,用BiLSTM-CRF 模型對中醫醫案進行命名實體識別,在曹滄洲醫案數據集上F值達89.8%。文獻[6]基于word2vec 的向量構建,通過BiLSTM-CRF 方法對中醫醫案文本進行命名實體識別,在人工標注的老中醫醫案數據集上F值達到了88.34%。上述的中醫醫案的命名實體識別方法中,傳統的機器學習命名實體識別方法由于無法捕獲長距離上下文的信息,而深度學習方法如BiLSTM 算法可以從雙向來捕獲上下文的信息,還能從文本中挖掘隱藏特征,故深度學習方法和機器學習方法相比,優勢比較明顯。
本文在現有中醫醫案命名實體識別研究基礎上,提出在BiLSTM-CRF 算法上加入BERT 語言模型(Bidirectional Encoder Representationfrom Transformers,BERT)來提高中醫醫案命名實體識別效果。BERT 語言模型是一個強大的預訓練模型,通過采用Transformer訓練出一個強大的預訓練模型,并可以將預訓練的模型進行遷移學習,只需在小規模的中醫醫案訓練集上進行微調,即可提升命名實體識別任務的效果,同時還能解決文本特征表示時一詞多義的問題。
BERT-BiLSTM-CRF模型核心由BERT語言模型、BiLSTM 模型、CRF 模型三個大的模塊組成,其整體結構如圖1所示。

圖1 BERT-BiLSTM-CRF模型圖
BERT-BiLSTM-CRF 模型首先利用預訓練的BERT語言模型的Transformer機制對輸入的數據進行編碼,輸出文本的字向量序列表示即={,,…,x},然后將結果輸入到BiLSTM 層進一步獲取數據隱藏層的高層特征,最后通過CRF 對BiLSTM 的輸出結果進行狀態轉移約束,并最終輸出命名實體結果。
自然語言處理任務的第一步是如何將文本信息轉化為計算機能識別的數據形式,早期的主流做法是采用詞向量模型,比較經典的詞向量模型有Google 在2012 年提出的Word2Vec。該方法生成的詞向量雖然考慮了上下文信息,但該方法本身屬于一種淺層結構的詞向量,所學到的上下文語義信息受限于窗口大小導致無法獲取長距離的上下文依賴關系,并且該方法也無法解決一詞多義的問題。文獻[7]提出的BERT預訓練語言模型可有效解決上述問題。該模型的結構如圖2 所示,該模型采用雙向Transformer 編碼器,生成的字向量可以充分融合字詞左右的上下文信息,與傳統語言模型相比,該模型可以更充分地表征字的多義性。
LSTM(Long Short-Term Memory)是一種特殊的RNN(Recurrent Neural Network),每個LSTM 單元由輸入門、遺忘門和輸出門組成。其單元結構如圖2所示。

圖2 LSTM單元結構圖
LSTM 存儲單元不僅能夠存儲短期輸入信息,還能保存長期的輸入狀態。LSTM 核心的3 個門中,輸入門控制輸入的新存儲內容的大小,遺忘門確定需要忘記的存儲量,輸出門調制輸出存儲器內容的數量。通過三個門還能克服傳統RNN 模型在面向長序列特征提取過程中存在的梯度消失等問題。
由于LSTM 模型都是從前向后編碼,使得句子只能掌握從前到后的上下文信息,而很多句子后面的詞語跟前面的詞語也是有很強的關聯性,因此BiLSTM模型組合了前向LSTM 模型與后向LSTM 模型,通過前向LSTM 模型和后向LSTM 模型組成BiLSTM 模型來學習雙向上下文信息。
CRF 是Lafferty 等在2001 年提出的一種遵循馬爾可夫性的概率圖模型,通過隨機變量作為輸入來輸出隨機變量的條件概率分布的一種算法。對于標簽分類問題,由于CRF 能夠充分考慮標簽與標簽之間的依賴關系,相比于Softmax 分類器,CRF 更適合用于分詞任務,CRF結構如圖3所示。

圖3 CRF模型結構圖
圖3中{,,…,x}為需要預測的文本序列,={,,…,y}為輸出結果的預測序列。
本文使用的數據集來源于《中國現代名中醫醫案精粹》,從數據集中甄選出1000 條高質量醫案后由多位經驗豐富的中醫學者共同對數據集進行人工標注。數據集共設計了六個實體類別,即癥狀實體、辯證實體、治則實體、方藥實體、人群實體、功效實體。數據集采用BIO 標注法,其中屬于六個類別的實體元素標注為B-X 或I-X,B-X 為此實體元素的開頭,I-X 表示次實體元素的中間或結尾,不屬于六類實體中的其他實體用元素O 來表示。具體的標注表1 所示,最后從標注后的數據集中選取70%作為訓練數據,20%作為測試數據,10%為驗證數據來進行實驗。

表1 待預測的標簽
本文采用命名實體識別的常用的三個評價指標即精確率(P)、召回率(R)和F值。具體公式如下:

其中T為模型正確識別的實體數,F為模型識別錯誤實體數,F為模型沒有檢測到的實體數。
本文實驗采用一臺操作系統為Ubuntu、CPU 型號為2.2 GHz八核Intel Core i7、顯卡型號為GTX2080i、顯存11G 的機器。在機器上搭建了Tensorflow1.15 框架、Python3.7 版本的環境,BERT 預訓練模型采用Google 官方的Bert_Base_Chinese 版本,該版本模型設置了12 層的Transformer,12 個Attention-head,768 個隱藏層單元,整個模型有110m 個參數。在實驗的過程中,將BERT 模型的參數最大句子長度設置成256,batchsize設置成8,學習率為1e-5,dropout 為0.5,BiLSTM中隱藏層的維度為128,訓練的輪數設置為20。
本文利用BERT-BiLSTM-CRF 得到的各個實體預測結果如表2所示。

表2 各類實體標簽的識別結果
從表2 的結果看出,BERT-BiLSTM-CRF 模型在各個實體上得分有一定的差異,比如“辯證實體”的F得分只有0.814,分析其原因是由于“辯證實體”、“治則實體”、“功效實體”在概念上存在一定的相似性,人工標注時,對部分實體比較難界定其邊界,導致標注時比較容易受到主觀因素和習慣的影響,另外,部分實體的數量較低也會影響其識別效果。
為了驗證本模型BERT-BiLSTM-CRF 的效果,我們選取了如下幾種方法進行對比:①傳統的HMM模型;②機器學習CRF 模型;③深度學習BiLSTM模型;④深度學習BiLSTM-CRF模型。上述四種命名實體算法在本文的數據集上進行了實驗,將實驗結果和本文的BERT-BiLSTM-CRF模型進行對比,各模型性能指標如表3所示。
從表3 可以看出,傳統的機器學習模型HMM 和CRF 深度學習模型相比,深度學習模型各方面的性能都優于傳統的機器學習模型。在深度學習模型中加入序列標注CRF的BiLSTM-CRF模型,在各方面都優于BiLSTM 模型,說明CRF 在考慮了序列的全局標簽信息后對模型的性能有一定的提升。在深度學習BiLSTM-CRF模型上加入BERT模型后,F值提升3.3%,由此可以說明,BERT 模型對于文本數據字符間的關系特征提取及其性能提升有明顯效果,同時也說明本文BERT-BiLSTM-CRF 模型在中醫醫案的命名實體識別相比于其他模型優勢較明顯。

表3 各種模型的結果對比
本文研究設計了一種BERT-BiLSTM-CRF 中醫醫案命名實體識別方法,利用BERT語言模型,能夠解決在文本特征表示的一詞多義問題,結合BiLSTM 算法充分學習上下文信息的特點以及CRF 算法提取全局最優標注序列,得到中醫醫案的實體,最后通過實驗對比,P 值、R 值和F值相比以往研究者所提出的中醫醫案命名實體識別效果最好的方法分別提高了3.58%,1.95%,3.4%。本文提出的方法解決了中醫醫案實體識別效率一般的問題,將為挖掘中醫醫案的有用信息提供了技術支撐。