張 杰,黃 杰,萬 健
(浙江科技學(xué)院 信息與電子工程學(xué)院,杭州 310023)
中文電子病歷(chinese electronic medical record,CEMR)具有安全可靠、時(shí)效性強(qiáng)、存儲便利等優(yōu)點(diǎn),已經(jīng)被廣泛應(yīng)用于醫(yī)療體系中[1]。面向中文電子病歷的命名實(shí)體識別(named entity recognition,NER)指從CEMR中識別出醫(yī)療相關(guān)的實(shí)體名稱,如疾病名稱、病癥描述、藥物名稱等。命名實(shí)體識別技術(shù)可用于挖掘CEMR中包含的醫(yī)療信息,基于醫(yī)療信息構(gòu)建的知識庫和知識圖譜可以輔助醫(yī)生完成疾病診斷和藥物推薦等工作[2]。因此,研究中文電子病歷命名實(shí)體識別具有現(xiàn)實(shí)意義和實(shí)際經(jīng)濟(jì)價(jià)值。
隨著深度學(xué)習(xí)技術(shù)和神經(jīng)網(wǎng)絡(luò)模型的不斷發(fā)展,卷積神經(jīng)網(wǎng)絡(luò)(convolutional neural network,CNN)、雙向長短期記憶網(wǎng)絡(luò)[3](bidirectional long-short-term memory,BiLSTM)、雙向門控循環(huán)單元[4](bidirectional gated recurrent unit,BiGRU)、條件隨機(jī)場(conditional random field,CRF)等模型被廣泛應(yīng)用于NER任務(wù)中。醫(yī)療領(lǐng)域包含眾多專業(yè)名詞,直接將通用領(lǐng)域NER模型應(yīng)用于中文電子病歷命名實(shí)體識別任務(wù)時(shí),模型的識別效果不佳,研究者將醫(yī)療領(lǐng)域特征引入NER模型,有效地提升了模型的實(shí)體識別效果。Wang等[5]提出一種基于多粒度語義字典和多模態(tài)樹的NER模型,利用多模態(tài)樹提取詞匯特征及詞邊界特征,試驗(yàn)結(jié)果表明該模型能顯著提升實(shí)體識別的效果。Ji等[6]提出一種將醫(yī)療詞匯信息和詞語糾錯(cuò)規(guī)則引入BiLSTM-CRF的集成模型,試驗(yàn)結(jié)果表明該模型在準(zhǔn)確率和召回率上均優(yōu)于傳統(tǒng)NER模型。Yin等[7]提出一種基于部首級特征和自注意力機(jī)制的NER模型,試驗(yàn)結(jié)果表明該模型能顯著提升實(shí)體識別的效果。Wu等[8]提出一種融合多特征的醫(yī)療NER模型,使用預(yù)訓(xùn)練語言模型獲得文本的字符特征,引入BiLSTM提取文本的部首特征,試驗(yàn)結(jié)果表明該模型極大地提高了醫(yī)療實(shí)體識別的性能。
上述方法引入額外的醫(yī)療特征(如詞典特征、部首特征等)來提升實(shí)體識別效果,但是,這類方法依賴于大規(guī)模的標(biāo)注語料和文本特征?,F(xiàn)存的中文電子病歷標(biāo)注語料十分匱乏且規(guī)模較小,而未標(biāo)注的中文電子病歷語料卻海量且易獲得,如何利用未標(biāo)注語料來提高NER效果已成為研究的熱點(diǎn)[9]。部分研究者提出利用海量未標(biāo)注醫(yī)療文本進(jìn)行訓(xùn)練的語言模型,如Tang等[10]提出一種融合語言模型和自注意力模型的方法,利用大量的未標(biāo)注醫(yī)療語料訓(xùn)練雙向語言模型,深入捕捉醫(yī)療文本的語義特征;Wen等[11]使用雙向語言模型和掩碼語言模型獲取未標(biāo)注醫(yī)療語料中包含的上下文語義特征,分別通過權(quán)重遷移和特征融合的方法與字符特征向量進(jìn)行拼接,有效地提升了NER效果;Yu等[12]使用海量的未標(biāo)注生物醫(yī)學(xué)文本訓(xùn)練基于轉(zhuǎn)換器的雙向編碼表征模型[13](bidirectional encoder representation from transformers,BERT),將自舉算法結(jié)合NER模型進(jìn)行迭代訓(xùn)練,充分利用有限的標(biāo)注語料和大量未標(biāo)注語料,顯著提升實(shí)體識別效果。以上3種方法利用語言模型訓(xùn)練大量未標(biāo)注語料,通過捕捉文本中的深層語義特征來提高識別的準(zhǔn)確率,然而在缺乏大量未標(biāo)注訓(xùn)練語料或訓(xùn)練語料長度較短的領(lǐng)域,使用該類方法進(jìn)行命名實(shí)體識別則效果欠佳。
針對上述問題,本研究提出一個(gè)基于半監(jiān)督學(xué)習(xí)的融合雙向語言模型(bidirectional language model,BiLM)和自舉(bootstrapping)算法的命名實(shí)體識別模型(BiLM_BNER模型),該模型使用大量未標(biāo)注的醫(yī)療文本訓(xùn)練BERT和雙向語言模型。BERT用于獲取CEMR文本的字符向量,BiLM用于獲取醫(yī)療文本的上下文語義特征向量。此外,引入醫(yī)療詞典來構(gòu)建CEMR文本的詞典特征向量。為了充分利用未標(biāo)注醫(yī)療語料中包含的語義信息,BiLM_BNER模型引入自舉算法將未標(biāo)注語料轉(zhuǎn)換為高置信度的標(biāo)注語料,通過模型的迭代訓(xùn)練來不斷擴(kuò)大標(biāo)注語料的規(guī)模以提升模型的識別效果。
圖1為BiLM_BNER模型結(jié)構(gòu)示意圖,BiLM_BNER集成模型包含BERT模型、BiLM模型、詞典特征、BiGRU-Attention-CRF及bootstrapping算法。BiLM_BNER模型訓(xùn)練的具體流程如下:1) 利用未標(biāo)注醫(yī)療文本訓(xùn)練BERT和BiLM,學(xué)習(xí)醫(yī)療文本的字符向量表示和上下文特征向量表示;2) 給定中文醫(yī)療文本序列W=[w1,w2,…,wm],wt(t∈[1,…,m])表示一個(gè)中文字符,BERT模型將文本中的字符轉(zhuǎn)化為向量表示hc=[hc1,hc2,…,hcm],hct(t∈[1,…,m])為字符的向量表示形式;BiLM獲得字符在病歷文本的上下文特征向量hf=[hf1,hf2,…,hfm]和hb=[hb1,hb2,…,hbm],hft、hbt(t∈[1,…,m])分別為表示正向語言模型和反向語言模型的輸出結(jié)果;構(gòu)建醫(yī)療詞典,將詞典結(jié)合雙向最大匹配算法來標(biāo)注訓(xùn)練文本中的醫(yī)療詞匯,構(gòu)建詞典特征向量hw=[hw1,hw2,…,hwm],hwt(t∈[1,…,m])為字符對應(yīng)的詞典特征向量;3) 融合字符特征向量、上下文特征向量和詞典特征向量,將融合結(jié)果輸入BiGRU-Attention-CRF進(jìn)行訓(xùn)練,訓(xùn)練好的模型通過預(yù)測未標(biāo)注中文電子病歷文本得到候選標(biāo)注語料;4) bootstrapping算法設(shè)定最優(yōu)閾值來篩選候選標(biāo)注語料中置信度高的新標(biāo)注語料,將其加入初始醫(yī)療標(biāo)注數(shù)據(jù)集后繼續(xù)訓(xùn)練NER模型;5) 重復(fù)步驟4,隨著NER模型的迭代訓(xùn)練,初始標(biāo)注數(shù)據(jù)規(guī)模不斷擴(kuò)大,模型的識別效果不斷提升,迭代終止條件為設(shè)置的最大訓(xùn)練次數(shù)或模型的F1值達(dá)到最大值。
圖1 BiLM_BNER模型結(jié)構(gòu)示意圖
圖2 雙向語言模型結(jié)構(gòu)示意圖
語言模型(language model,LM)可以預(yù)測句子序列出現(xiàn)的概率,能夠從大規(guī)模自然語言中學(xué)習(xí)到豐富的語義知識和內(nèi)在的規(guī)律,目前被廣泛應(yīng)用于自然語言處理任務(wù)中[14]。雙向語言模型由正向LM和反向LM組成,LM包含字向量層、LSTM層和softmax層。圖2為雙向語言模型的結(jié)構(gòu)示意圖。
BiLM的訓(xùn)練流程如下:1) 字向量層使用字轉(zhuǎn)換向量模型(word to vector,word2vec)[15]技術(shù)將中文字符處理成向量表示形式,將字向量分別輸入正向LSTM和反向LSTM中提取文本特征,正向LSTM能夠根據(jù)歷史信息預(yù)測當(dāng)前字符wt的后一個(gè)字符為wt+1,反向LSTM能夠根據(jù)未來的信息預(yù)測出其前一個(gè)字符為wt-1;2) 將正向LSTM和反向LSTM輸出的特征向量分別輸入softmax層中計(jì)算字符出現(xiàn)的概率。
以正向LM為例,輸入文本序列表示一個(gè)中文字符,通過word2vec處理后得到中文字符的向量表示ct,將ct輸入正向LSTM單元得到隱藏層的輸出向量hf,t。
hf,t=LSTMf(ct,hf,(t-1);bf)。
(1)
式(1)中:hf,t為LSTM的隱藏層輸出;ct為字向量;hf,(t-1)為上一時(shí)刻LSTM隱藏層的輸出向量;bf為正向LSTM模型的參數(shù)。
LSTM的輸出結(jié)果包含了每個(gè)標(biāo)簽的預(yù)測分值,將LSTM的輸出向量輸入softmax層,計(jì)算字典中各個(gè)字符在當(dāng)前位置出現(xiàn)的概率
(2)
以句子“腦額葉損傷的表現(xiàn)”為例,正向LM輸出結(jié)果為“額葉損傷的表現(xiàn)
我們使用大量的未標(biāo)注醫(yī)療文本分別訓(xùn)練正向語言模型和反向語言模型,使得模型學(xué)習(xí)到醫(yī)療文本的語法和語義信息。在訓(xùn)練BiLM_BNER模型時(shí),我們將正向語言模型和反向語言模型的softmax層去除,固定語言模型的權(quán)重,利用BiLM提取電子病歷文本的上下文語義特征,將正向語言模型和反向語言模型對應(yīng)位置的特征進(jìn)行拼接。
BERT模型將多層雙向變壓器(transformer)模型作為編碼器,在訓(xùn)練時(shí)能更好地捕捉文本中上下文的語義信息,有效地解決了word2vec存在的一詞多義問題。圖3為BERT模型處理字向量過程示意圖,BERT模型的輸入由字向量、句向量和位置向量疊加生成,BERT模型通過查詢字向量表將中文序列中的字符轉(zhuǎn)換為字向量表示,句子向量用于區(qū)分不同的句子,位置向量用于區(qū)分句子中不同位置的字符,將三者進(jìn)行拼接后輸入多層transformer中提取文本特征,最終的輸出向量作為字符特征向量。以“[CLS]頭暈[SEP]腦梗死[SEP]”為例,用[CLS]標(biāo)識句子的開始位置,用[SEP]標(biāo)識句子的結(jié)束位置,E表示向量表達(dá),Trm表示transformer模型。
圖3 BERT模型處理字向量過程示意圖
Lee等[16]利用海量的英文生物醫(yī)學(xué)語料庫再次訓(xùn)練BERT模型,獲得面向英文醫(yī)療領(lǐng)域的BioBERT模型。本研究使用中文醫(yī)療語料庫訓(xùn)練BERT模型,使得BERT學(xué)到適合中文醫(yī)療文本的向量表達(dá)方式,將面向中文醫(yī)療領(lǐng)域的BERT模型命名為CbBERT模型,如何構(gòu)建中文醫(yī)療訓(xùn)練語料庫的過程將在2.1節(jié)做詳細(xì)介紹。本研究參照BERT模型提出者的思路構(gòu)建BERT模型并設(shè)置模型參數(shù),將醫(yī)療txt文本處理成一個(gè).tfrecord文件,調(diào)用run_pretraining.py進(jìn)行預(yù)訓(xùn)練,訓(xùn)練完成后得到一個(gè).ckpt格式的TensorFlow模型,最終利用轉(zhuǎn)換腳本將.ckpt格式轉(zhuǎn)換為.bin格式的PyTorch模型。
醫(yī)療領(lǐng)域詞典中包含豐富的詞匯特征,本研究通過引入詞匯特征幫助NER模型識別實(shí)體的邊界,從而提升實(shí)體識別效果[17]。使用CCKS2017和CCKS2018電子病歷數(shù)據(jù)集中標(biāo)注的醫(yī)療實(shí)體構(gòu)建一個(gè)包含癥狀描述、檢查檢驗(yàn)、疾病診斷、身體部位和治療方案的醫(yī)療詞典,并獲取搜狗醫(yī)療詞庫等互聯(lián)網(wǎng)中包含的醫(yī)療詞匯來進(jìn)一步擴(kuò)充詞匯量。此外,使用分詞工具對CCKS發(fā)布的電子病歷和醫(yī)院真實(shí)腦血管電子病歷文本進(jìn)行分詞和詞性標(biāo)注,對人工篩選分詞結(jié)果中符合要求的名詞,將其加入醫(yī)療詞典中。去除醫(yī)療詞典的重復(fù)名詞和噪聲詞匯,得到最終的醫(yī)療領(lǐng)域詞典統(tǒng)計(jì)表,具體見表1。
表1 醫(yī)療領(lǐng)域詞典統(tǒng)計(jì)表
利用醫(yī)療詞典和雙向最大匹配算法[18](bi-direction maximum matching,BMM)標(biāo)注測試集中的電子病歷文本的詞語。BMM算法以匹配詞匯量多且詞語長度宜長為原則,選取正向最大匹配法和反向最大匹配法的分詞最優(yōu)解。將匹配到的實(shí)體根據(jù)其類型進(jìn)行標(biāo)注,為了標(biāo)注實(shí)體的邊界信息,使用“B-”標(biāo)注實(shí)體首字符,使用“I-”標(biāo)注實(shí)體的其他字符,非實(shí)體則用None標(biāo)注。以“因頭痛伴心悸,檢查心電圖和顱腦CT”為例,實(shí)體類型標(biāo)注結(jié)果為“None B-Symptom I-Symptom None B-Symptom I-Symptom None None None B-Check I-Check I-Check None B-Check I-Check I-Check I-Check”。將實(shí)體類型名稱隨機(jī)初始化成一個(gè)50維詞典特征向量,并將當(dāng)前字符對應(yīng)的實(shí)體類型名稱轉(zhuǎn)化為詞典特征向量。
BiGRU模型用于獲取醫(yī)療文本的上下文語義特征,但BiGRU模型存在長距離依賴問題,其獲取語義信息的能力會隨著文本序列的增加而減弱,引入自注意力機(jī)制可有效解決此問題。自注意力機(jī)制能夠忽略字詞之間的距離,通過計(jì)算依賴關(guān)系來增大文本中重要字詞的權(quán)重,從而解決BiGRU模型存在的長距離依賴問題。CRF模型訓(xùn)練過程中能自動(dòng)地學(xué)習(xí)標(biāo)簽之間的約束關(guān)系,利用維特比算法解碼生成最優(yōu)標(biāo)注序列。圖4為BiGRU-Attention-CRF模型的序列標(biāo)注過程示意圖。
圖4 BiGRU-Attention-CRF模型的序列標(biāo)注過程示意圖
bootstrapping算法可以利用有限的樣本資源進(jìn)行多次重復(fù)抽樣,從而建立起一個(gè)足以代表母體樣本分布的新樣本[19]。圖5為bootstrapping算法訓(xùn)練流程示意圖。bootstrapping算法的訓(xùn)練過程如下:1) 將一個(gè)數(shù)據(jù)規(guī)模較小的標(biāo)注數(shù)據(jù)集作為初始數(shù)據(jù)集,NER模型在初始數(shù)據(jù)集上進(jìn)行訓(xùn)練;2) 訓(xùn)練好的NER模型用于預(yù)測未標(biāo)注醫(yī)療語料,得到候選標(biāo)注語料,bootstrapping算法通過設(shè)置閾值來篩選候選標(biāo)注語料中置信度較高的語料,將符合要求的候選標(biāo)注語料合并到初始標(biāo)注數(shù)據(jù)集中,再次訓(xùn)練NER模型;3) 重復(fù)步驟2,迭代訓(xùn)練NER模型,迭代終止的條件是達(dá)到設(shè)定的最大訓(xùn)練次數(shù)或者模型的識別效果不再提升。
圖5 bootstrapping算法訓(xùn)練流程示意圖
2.1.1 醫(yī)療領(lǐng)域未標(biāo)注數(shù)據(jù)集
利用爬蟲技術(shù)爬取:“疾病百科問藥網(wǎng)”的疾病簡介、癥狀描述、醫(yī)治方案等文本,“尋醫(yī)問藥網(wǎng)”等在線咨詢網(wǎng)站中的疾病信息和診斷依據(jù)文本,“中國公眾健康網(wǎng)”中的疾病癥狀、診斷、治療方案等醫(yī)療方案文本,以及CCKS比賽公開的無標(biāo)注電子病歷及我們從合作醫(yī)院獲得的中文電子病歷。對上述醫(yī)療文本經(jīng)過數(shù)據(jù)清洗,刪除包含特殊字符、無關(guān)醫(yī)療的噪聲句子,再經(jīng)過分句后最終獲得一個(gè)包含92 784個(gè)醫(yī)療句子、總計(jì)大小為1.5 GB的結(jié)構(gòu)化醫(yī)療未標(biāo)注數(shù)據(jù)集。
2.1.2 CCKS CNER醫(yī)療數(shù)據(jù)集
CCKS2017數(shù)據(jù)集包含已標(biāo)注的400份病歷文檔,將其中300份作為訓(xùn)練集用于模型訓(xùn)練,100份作為測試集,數(shù)據(jù)集中標(biāo)注了5類實(shí)體(癥狀體征、檢查檢驗(yàn)、疾病診斷、治療方案、身體部位)。CCKS2018數(shù)據(jù)集包含一個(gè)訓(xùn)練集和一個(gè)測試集,分別包括600個(gè)醫(yī)療記錄和400個(gè)醫(yī)療記錄,標(biāo)注了5類實(shí)體(解剖部位﹑癥狀描述﹑獨(dú)立癥狀、藥物、手術(shù))。2個(gè)數(shù)據(jù)集的實(shí)體類型和數(shù)量統(tǒng)計(jì)分別見表2和表3。
表2 CCKS2017數(shù)據(jù)集的實(shí)體類型及數(shù)量統(tǒng)計(jì)
表3 CCKS2018數(shù)據(jù)集的實(shí)體類型及數(shù)量統(tǒng)計(jì)
2.1.3 自建腦血管疾病數(shù)據(jù)集
我們從合作醫(yī)院提供的400份臨床電子病歷中提取現(xiàn)病狀、既往史、入院診斷、住院經(jīng)過等醫(yī)療文本,總計(jì)獲得1 062個(gè)文本,按句號劃分,總計(jì)獲得4 920個(gè)句子。使用pkuseg分詞工具對句子進(jìn)行分詞,并組織3名醫(yī)學(xué)專業(yè)人員結(jié)合專家構(gòu)建的醫(yī)療詞表對分詞結(jié)果進(jìn)行標(biāo)注,獲得一個(gè)腦血管疾病標(biāo)注數(shù)據(jù)集。將標(biāo)注完的80%的句子作為訓(xùn)練集,剩下的20%用于測試集??紤]醫(yī)療文本特征和后續(xù)構(gòu)建醫(yī)療知識圖譜所需的實(shí)體類型,我們定義了4種實(shí)體類型:1) 身體部位,包含身體器官,如“冠狀動(dòng)脈”“小腦半球”“右側(cè)上頜竇”;2) 癥狀體征,由患病導(dǎo)致的不適,如“意識障礙”“頭暈”“行走不穩(wěn)”;3) 疾病診斷,包含疾病名稱、綜合征,如“高血壓”“腦梗死”“腦血栓”;4) 治療方案,包括治療過程中涉及到的手術(shù)名稱和藥物名稱,如“冠脈造影術(shù)”“阿司匹林片”。
腦血管疾病數(shù)據(jù)集的實(shí)體類型及數(shù)量統(tǒng)計(jì)見表4。
表4 腦血管疾病數(shù)據(jù)集的實(shí)體類型及數(shù)量統(tǒng)計(jì)
試驗(yàn)所用服務(wù)器配置如下:CPU為i7-8700,運(yùn)行內(nèi)存為16 GB,顯卡為GeForce RTX 2080Ti。模型在Ubuntu操作系統(tǒng)下使用PyTorch 1.12進(jìn)行訓(xùn)練。
BiLM_BNER模型的參數(shù)主要包含CbBERT模型、BiLM模型及BiGRU-Attention-CRF的參數(shù)。CbBERT使用BERT-base-Chinese-uncased模型參數(shù)進(jìn)行初始化,所以兩者參數(shù)相同,共計(jì)12層雙向transformer,transformer的隱藏層的維度設(shè)置為768、注意力機(jī)制頭數(shù)為12、模型參數(shù)數(shù)量為個(gè)。BiLM模型設(shè)置字向量維度為128,LSTM隱藏層的維度設(shè)置為128,句子的批處理大小為32句,最大訓(xùn)練次數(shù)為50,使用自適應(yīng)時(shí)刻估計(jì)(adaptive moment estimation,Adam)算法優(yōu)化模型參數(shù),引入隨機(jī)失活方法防止過擬合問題,BiLM的參數(shù)配置見表5。
表5 BiLM的參數(shù)配置
BiGRU-Attention-CRF設(shè)置最大訓(xùn)練次數(shù)為100,批處理大小為32句,GRU隱藏層的維度設(shè)置為128,BiGRU-Attention-CRF的參數(shù)配置見表6。
表6 BiGRU-Attention-CRF的參數(shù)配置
NER任務(wù)中,通常采用準(zhǔn)確率(precision,P)、召回率(recall,R)和F1值作為評價(jià)模型性能的指標(biāo),3個(gè)評價(jià)指標(biāo)的計(jì)算公式如下:
(3)
式(3)中:TP為預(yù)測結(jié)果和實(shí)際結(jié)果均為正例的樣例個(gè)數(shù);FP為實(shí)際結(jié)果為反例且預(yù)測結(jié)果為正例的樣例個(gè)數(shù);FN為實(shí)際結(jié)果為正例而預(yù)測結(jié)果為負(fù)例的樣例個(gè)數(shù)。
2.4.1 bootstrapping算法最優(yōu)閾值試驗(yàn)
設(shè)計(jì)相鄰閾值間隔為0.1,閾值區(qū)間為0.1和1.0的試驗(yàn),探究bootstrapping算法在不同醫(yī)療數(shù)據(jù)集上的最優(yōu)閾值。BiLM_BNER模型的F1值隨閾值變化示意圖如圖6所示。
圖6 BiLM_BNER模型的F1值隨閾值變化示意圖
當(dāng)閾值為0.6時(shí),BiLM_BNER模型在自建腦血管數(shù)據(jù)集和CCKS2018數(shù)據(jù)集的F1最高值分別為90.16%和90.93%。當(dāng)閾值為0.7時(shí),BiLM_BNER模型在CCKS2017數(shù)據(jù)集的F1值最高為92.72%。試驗(yàn)結(jié)果表明,最優(yōu)閾值與標(biāo)注數(shù)據(jù)集的數(shù)據(jù)規(guī)模和實(shí)體類型數(shù)量、未標(biāo)注數(shù)據(jù)集的數(shù)據(jù)規(guī)模有關(guān),當(dāng)標(biāo)注數(shù)據(jù)較少時(shí),需要降低閾值才能獲得更多的候選標(biāo)注數(shù)據(jù)。
2.4.2 不同命名實(shí)體識別模型對比試驗(yàn)
設(shè)計(jì)對比試驗(yàn)來驗(yàn)證BiLM_BNER模型在中文電子病歷實(shí)體識別任務(wù)的有效性,試驗(yàn)對照組包括通用領(lǐng)域NER模型、引入額外特征(包括部首特征和詞典特征)的NER模型和基于預(yù)訓(xùn)練語言模型的NER模型。具體如下:1) 通用領(lǐng)域NER模型,如BiLSTM-CRF、BiGRU-CRF、BERT-CRF及Qiu等[20]提出的殘差擴(kuò)張卷積神經(jīng)網(wǎng)絡(luò)(RDCNN-CRF)模型。2) 引入額外特征的NER模型,如Li等[21]提出的融合醫(yī)療詞典信息和漢字偏旁部首特征的中文醫(yī)療NER模型,Wang等[17]提出的結(jié)合領(lǐng)域字典和BiLSTM-CRF的NER模型。3) 基于預(yù)訓(xùn)練語言模型的NER模型,如Luo等[22]提出的基于筆畫ELMO和多任務(wù)學(xué)習(xí)的電子病歷NER模型,Tang等[10]提出的一種融合預(yù)訓(xùn)練雙向語言模型和自注意力機(jī)制的NER模型。不同命名實(shí)體識別模型對比試驗(yàn)結(jié)果見表7。
表7 不同命名實(shí)體識別模型對比試驗(yàn)結(jié)果
試驗(yàn)結(jié)果表明,與通用領(lǐng)域NER模型相比,引入額外醫(yī)療特征(包括部首特征和詞典特征)的NER模型和基于預(yù)訓(xùn)練語言模型的NER模型可有效地提升其識別精度。本研究提出的BiLM_BNER將字符特征、詞典特征和上下文語義特征進(jìn)行融合,提取電子病歷文本的深層語義特征,將bootstrapping算法結(jié)合NER模型,利用小規(guī)模標(biāo)注語料和大規(guī)模未標(biāo)注語料進(jìn)行迭代訓(xùn)練,篩選新的置信度高的標(biāo)注語料添加到初始標(biāo)注語料,不斷擴(kuò)大標(biāo)注語料的規(guī)模,因此,BiLM_BNER在腦血管數(shù)據(jù)集及CCKS2017和CCKS2018醫(yī)療數(shù)據(jù)集的準(zhǔn)確率、召回率和F1值上均優(yōu)于對比試驗(yàn)中的其他NER模型,從而證明了本模型在中文電子病歷NER任務(wù)中的優(yōu)良表現(xiàn)。
2.4.3 消融試驗(yàn)
設(shè)計(jì)消融試驗(yàn)來分析和驗(yàn)證CbBERT、BiLM、詞典特征和bootstrapping算法對提升NER效果的作用,試驗(yàn)結(jié)果見表8。
表8 消融試驗(yàn)結(jié)果
本試驗(yàn)將BiGRU-Attention-CRF作為基準(zhǔn)模型,引入CbBERT、BiLM、詞典特征、BiLM-CbBERT-詞典特征進(jìn)行試驗(yàn)。結(jié)果表明,引入CbBERT、BiLM、詞典特征、BiLM-CbBERT-詞典特征后,模型在腦血管數(shù)據(jù)集上的F1值分別提升0.41%、0.73%、1.22%和2.73%,在CCKS2017數(shù)據(jù)集上F1值分別提升0.3%、0.95%、1.68%和2.24%,在CCKS2018數(shù)據(jù)集上F1值分別提升0.29%、0.92%、1.4%和2.01%。試驗(yàn)結(jié)果表明引入額外醫(yī)療特征可以提升NER任務(wù)的識別效果,融合多個(gè)醫(yī)療特征可以實(shí)現(xiàn)多角度提取文本語義信息,提升效果更加顯著。
將bootstrapping算法引入基準(zhǔn)模型后,模型在腦血管數(shù)據(jù)集、CCKS2017數(shù)據(jù)集和CCKS2018數(shù)據(jù)集的F1值分別提升1.2%、1.67%和1.7%。將bootstrapping算法結(jié)合NER模型,利用小規(guī)模標(biāo)注語料和大量易獲得的未標(biāo)注文本迭代訓(xùn)練模型,有效地提高了模型的識別精度。
本研究提出一種基于半監(jiān)督學(xué)習(xí)的BiLM_BNER模型,通過構(gòu)建中文電子病歷文本的字符特征向量、上下文特征向量和詞典特征向量,融合3個(gè)特征向量后輸入BiGRU-Attention-CRF模型中進(jìn)行序列標(biāo)注,BiGRU-Attention-CRF可通過預(yù)測未標(biāo)注語料得到候選標(biāo)注數(shù)據(jù)。bootstrapping算法能篩選置信度高的候選標(biāo)注語料,將其合并到初始標(biāo)注語料進(jìn)行迭代訓(xùn)練。BiLM_BNER模型在CCKS2017數(shù)據(jù)集、CCKS2018數(shù)據(jù)集和腦血管疾病數(shù)據(jù)集中均獲得令人滿意的實(shí)體識別效果。下一步我們將不斷完善醫(yī)療詞典,并嘗試向模型引入詞性特征、分詞特征等,研究更高效的多特征融合方法,以提高模型的識別精度。