卓瑪措,桑杰端珠,才讓加,羊毛卓么
(省部共建藏語(yǔ)智能信息處理及應(yīng)用國(guó)家重點(diǎn)實(shí)驗(yàn)室,青海 西寧810008)
醫(yī)學(xué)實(shí)體識(shí)別(Medical Entity Recognition,MER)[1]是臨床自然語(yǔ)言處理(Clinical Natural Language Processing,CNLP)的基礎(chǔ)性任務(wù)之一,它為醫(yī)學(xué)方面的信息檢索、臨床診斷等下游臨床自然語(yǔ)言處理任務(wù)提供重要的特征信息。早期的實(shí)體識(shí)別方法更多地依賴(lài)人工特征工程以及許多現(xiàn)成的工具包,并且較難實(shí)現(xiàn)領(lǐng)域適應(yīng)。然而近年來(lái),深度學(xué)習(xí)的發(fā)展減少了模型對(duì)人工特征工程以及工具包的依賴(lài)[2-13]。特別是在實(shí)體識(shí)別任務(wù)方面,有一種網(wǎng)格長(zhǎng)短期記憶(Lattice-LSTM)模型在中文命名實(shí)體識(shí)別任務(wù)上取得了較好的效果[14]。由于Lattice-LSTM網(wǎng)絡(luò)結(jié)構(gòu)能夠?qū)@性的字信息和該字隱性的詞信息充分融合,因此可以有效避免分詞錯(cuò)誤向下游任務(wù)的傳遞。
針對(duì)藏文通用領(lǐng)域的實(shí)體識(shí)別研究,已經(jīng)有一些研究結(jié)果[15-17]。但是,面向藏文臨床文本的自然語(yǔ)言處理資源稀缺導(dǎo)致相應(yīng)的工具包十分匱乏,極大地影響了藏文臨床自然語(yǔ)言處理的發(fā)展進(jìn)程。特別是面向藏文臨床文本的醫(yī)學(xué)實(shí)體識(shí)別研究還處于起步階段。
鑒于此,本文旨在開(kāi)展針對(duì)藏文臨床病歷的醫(yī)學(xué)實(shí)體識(shí)別研究工作。因此,本文基于Lattice LSTM CRF深度學(xué)習(xí)模型并結(jié)合藏語(yǔ)的音節(jié)(一個(gè)音節(jié)相當(dāng)于漢語(yǔ)中的一個(gè)字)特征構(gòu)建了適合藏文臨床病歷實(shí)體識(shí)別的S-Lattice LSTM(音節(jié)網(wǎng)格長(zhǎng)短期記憶)模型。藏文詞匯是構(gòu)成藏文句子的基本單元,而藏文音節(jié)是構(gòu)成藏文詞匯的基本單位。S-Lattice LSTM網(wǎng)絡(luò)結(jié)構(gòu)能夠?qū)⒉匚牡囊艄?jié)信息和該音節(jié)隱性的詞信息充分融合,從而有效避免分詞錯(cuò)誤向下游任務(wù)的傳遞。實(shí)驗(yàn)結(jié)果表明,本文的方法對(duì)藏文臨床病歷文本的醫(yī)學(xué)實(shí)體識(shí)別正確率、召回率和F1值分別達(dá)到91.89%、93.15%和92.52%,取得了較好的識(shí)別性能。
在英文領(lǐng)域,Hammerton等人首次采用神經(jīng)網(wǎng)絡(luò)進(jìn)行實(shí)體識(shí)別的研究,使用了單向LSTM模型。由于LSTM模型良好的序列建模能力,LSTM-CRF模型成為實(shí)體識(shí)別的基礎(chǔ)架構(gòu)之一,很多方法都是以LSTM-CRF為主體框架,在此之上融入各種相關(guān)特征[18]。本文將LSTM-CRF作為主要網(wǎng)絡(luò)結(jié)構(gòu)并結(jié)合藏語(yǔ)的音節(jié)特征,在該模型對(duì)一系列輸入字符(包含藏語(yǔ)的音節(jié))進(jìn)行編碼的同時(shí)將所有與詞典匹配的詞匯網(wǎng)格結(jié)構(gòu)融入模型中。
表1 藏文臨床病歷醫(yī)學(xué)實(shí)體識(shí)別的音節(jié)序列和標(biāo)記序列舉例
基于音節(jié)的實(shí)體識(shí)別模型輸入向量為音節(jié)序列。此模型存在一種顯著缺陷,即忽略了詞序以及詞的顯性信息。模型如圖1所示。
圖1 基于音節(jié)的模型
基于詞的模型原理與基于音節(jié)的模型類(lèi)似,區(qū)別就在于此模型輸入的向量為分詞后的詞序列。因此,這種模型會(huì)導(dǎo)致分詞錯(cuò)誤的傳遞,并最終影響實(shí)體識(shí)別的性能。模型如圖2所示。
圖2 基于詞的模型
本文采用S-Lattice LSTM模型來(lái)處理句子中的藏語(yǔ)詞匯詞(lexicon word),從而把所有潛在的藏語(yǔ)詞信息整合到基于藏文音節(jié)的LSTM-CRF基本框架中。本文采用構(gòu)建的詞表對(duì)句子進(jìn)行匹配,從而構(gòu)建基于詞的藏文Lattice網(wǎng)格。因?yàn)榫W(wǎng)格中存在詞到音節(jié)的指數(shù)級(jí)數(shù)量的路徑,因此,對(duì)藏文臨床病歷中的句子從左到右的信息流使用Lattice LSTM模型結(jié)構(gòu)來(lái)進(jìn)行自動(dòng)控制。門(mén)控神經(jīng)單元將來(lái)自不同路徑的信息動(dòng)態(tài)的傳送到每一個(gè)藏文音節(jié)。在完成數(shù)據(jù)的訓(xùn)練后,S-Lattice LSTM模型能夠?qū)W會(huì)自動(dòng)從信息流中找到有用的詞,從而提升醫(yī)學(xué)實(shí)體識(shí)別性能,整體模型框架如圖3所示。與基于藏文音節(jié)和基于藏文詞的實(shí)體識(shí)別方法相比,本文的模型利用詞匯的顯性信息對(duì)句子進(jìn)行分詞,而不只是自動(dòng)關(guān)注。因此,減少了分詞帶來(lái)的誤差。
圖3 S-Lattice LSTM模型
循環(huán)神經(jīng)網(wǎng)絡(luò)(RNN)在理論上可以處理任意長(zhǎng)度的序列信息,但是在實(shí)際應(yīng)用中,如果序列太長(zhǎng)就會(huì)出現(xiàn)梯度消失現(xiàn)象,并且也不容易學(xué)會(huì)長(zhǎng)時(shí)間依賴(lài)的特征。為此,Graves等人對(duì)RNN進(jìn)行了改進(jìn),提出了LSTM 模型[19]。LSTM 模塊通過(guò)輸入、輸出和遺忘三個(gè)模塊來(lái)控制信息的傳輸。長(zhǎng)短期記憶網(wǎng)絡(luò)(Long Short-Term Memory,LSTM),是一種特殊的RNN,能夠?qū)W習(xí)長(zhǎng)期的規(guī)律,它們?cè)诟鞣N各樣的NLP任務(wù)上應(yīng)用非常廣泛。LSTM編碼單元如圖4所示。
圖5 迭代次數(shù)和 P、R 和 F1 值的變化趨勢(shì)
it=σ(Wiht-1+Ui+bi)
(1)
ft=σ(Wfht-1+Ufxt+bf)
(2)
(3)
(4)
ot=σ(Woht-1+Uoxt+bo)
(5)
ht=ot⊙tanh(ct)
(6)
其中,σ表示Sigmoid 激活函數(shù),⊙是點(diǎn)積。xt表示t時(shí)刻的輸入向量,ht表示t時(shí)刻的隱藏狀態(tài),也表示輸出向量,包含前面t時(shí)刻的全部有用信息。ct是一個(gè)改良模塊,掌控信息傳入下一個(gè)環(huán)節(jié);ft是一個(gè)復(fù)位模塊,掌控信息遺失;而隱藏狀態(tài)的輸出是由二者共同決定的。
3.1.1 音節(jié)向量
為了構(gòu)建藏語(yǔ)音節(jié)向量,本文從中國(guó)藏族網(wǎng)通網(wǎng)站下載了包含4.53億個(gè)音節(jié)的新聞數(shù)據(jù),并用GloVe[20]模型進(jìn)行訓(xùn)練,生成的音節(jié)向量維度為50。
3.1.2 實(shí)驗(yàn)數(shù)據(jù)集
由于目前藏文臨床病歷醫(yī)學(xué)實(shí)體識(shí)別缺乏公開(kāi)的標(biāo)注數(shù)據(jù)集,因此本文對(duì)現(xiàn)有的530份電子病歷進(jìn)行標(biāo)注構(gòu)建了一個(gè)藏文臨床病歷醫(yī)學(xué)實(shí)體識(shí)別數(shù)據(jù)集。對(duì)以上病歷數(shù)據(jù)以病歷文檔為單位進(jìn)行任意比例的劃分,其中由305份文檔構(gòu)成訓(xùn)練集,由225份文檔構(gòu)成測(cè)試集。本數(shù)據(jù)集中包含癥狀 (SYMPTOM)、方劑 (PRESCRIPTION)和疾病 (DISEASE)三大類(lèi)醫(yī)學(xué)類(lèi)實(shí)體,其類(lèi)別數(shù)量分布如表2所示。
表2 藏文臨床病歷醫(yī)學(xué)實(shí)體識(shí)別數(shù)據(jù)集
常見(jiàn)的醫(yī)學(xué)實(shí)體識(shí)別標(biāo)注方法有OBI 策略,OBIE策略,SOBIE策略。本文采用的是SOBIE標(biāo)注策略,其中B是實(shí)體的首部,I是實(shí)體的內(nèi)部,E是實(shí)體的尾部。O表示非實(shí)體或?qū)嶓w外部,S表示單音節(jié)實(shí)體。實(shí)體識(shí)別包括預(yù)測(cè)實(shí)體的邊界和實(shí)體的類(lèi)型,所以待預(yù)測(cè)的標(biāo)簽一共11種,分別是O,S,B-S,I-S,E-S,B-D,I-D,E-D,B-P,I-P,E-P。當(dāng)識(shí)別實(shí)體時(shí),只有在一個(gè)實(shí)體的邊界和類(lèi)型都預(yù)測(cè)的完全正確時(shí),才認(rèn)為該實(shí)體被準(zhǔn)確識(shí)別。
藏文臨床病歷實(shí)體的識(shí)別性能評(píng)測(cè)指數(shù)有正確率(P)、召回率(R)和綜合指數(shù)F1值。具體計(jì)算方法如式(7)所示。其中Tp表示模型準(zhǔn)確識(shí)別的實(shí)體個(gè)數(shù),Fp表示模型識(shí)別到的無(wú)關(guān)實(shí)體個(gè)數(shù),Fn表示同類(lèi)實(shí)體但模型沒(méi)有準(zhǔn)確識(shí)別的個(gè)數(shù)。
(7)
本研究中的實(shí)驗(yàn)環(huán)境為Python 2.7,深度學(xué)習(xí)框架為Pytorch 0.3.0.post4
神經(jīng)網(wǎng)絡(luò)的超參數(shù)取值會(huì)影響神經(jīng)網(wǎng)絡(luò)的性能。本文的神經(jīng)網(wǎng)絡(luò)超參設(shè)置如表3所示。
表3 神經(jīng)網(wǎng)絡(luò)超參取值
為了驗(yàn)證本研究中所使用的模型對(duì)藏文臨床病歷實(shí)體識(shí)別數(shù)據(jù)集中的癥狀、疾病、方劑三大類(lèi)實(shí)體的識(shí)別性能,分別設(shè)計(jì)了以下兩組實(shí)驗(yàn)。實(shí)驗(yàn)的評(píng)測(cè)指數(shù)有正確率(P)、召回率(R)和綜合指數(shù)F1值。
實(shí)驗(yàn)1 不同模型對(duì)藏文臨床病歷實(shí)體識(shí)別結(jié)果比較。表4分別給出了CRF(條件隨機(jī)場(chǎng))模型和S-Lattice LSTM模型的識(shí)別結(jié)果。
表4 不同模型對(duì)藏文臨床病歷文本實(shí)體識(shí)別性能對(duì)比(%)
實(shí)驗(yàn)結(jié)果表明,S-Lattice LSTM模型的F1值比CRF模型的F1值提升了2.55%,這說(shuō)明深度神經(jīng)網(wǎng)絡(luò)模型比傳統(tǒng)的統(tǒng)計(jì)模型在藏文臨床病歷實(shí)體識(shí)別任務(wù)上表現(xiàn)性能較好。并且證明使用表示學(xué)習(xí)的神經(jīng)網(wǎng)絡(luò)模型可以較大程度的減少模型對(duì)人工特征的過(guò)度依賴(lài)。
實(shí)驗(yàn)2 基于詞向量的CNN-BiLSTM-CRF模型與S-Lattice LSTM模型對(duì)藏文臨床病歷文本進(jìn)行實(shí)體識(shí)別性能對(duì)比。S-Lattice LSTM模型可以同時(shí)對(duì)音節(jié)序列信息和它對(duì)應(yīng)的詞序信息進(jìn)行編碼,并且提供給模型自動(dòng)取用。相較于音節(jié)粒度(字符級(jí))的編碼,后者加入了詞信息,豐富了語(yǔ)義表達(dá),可以有效避免分詞錯(cuò)誤傳遞問(wèn)題。表5說(shuō)明了S-Lattice LSTM模型能有效提升實(shí)體識(shí)別的性能。
表5 基于詞向量的模型與S-Lattice LSTM模型的性能對(duì)比(%)
癥狀、疾病和方劑三類(lèi)實(shí)體的正確率(P)、召回率(R)和綜合指數(shù)F1值如表6所示。
表6 不同類(lèi)型實(shí)體識(shí)別結(jié)果
以某份住院病歷中的一個(gè)句子為例展示S-Lattice LSTM模型的實(shí)體識(shí)別效果。具體實(shí)例如表7所示。
表7 藏文臨床病歷文本醫(yī)學(xué)實(shí)體識(shí)別實(shí)例
本文針對(duì)藏文臨床病歷中醫(yī)學(xué)類(lèi)實(shí)體的識(shí)別問(wèn)題,提出了一種適用于藏文臨床病歷醫(yī)學(xué)實(shí)體識(shí)別的深度神經(jīng)網(wǎng)絡(luò)模型。該結(jié)構(gòu)用網(wǎng)格LSTM來(lái)代替?zhèn)鹘y(tǒng)的LSTM單元,在藏文音節(jié)模型的輸入端同時(shí)利用顯性的藏文詞匯和詞序信息。因此,有效避免了分詞錯(cuò)誤向下游任務(wù)的傳遞。整體架構(gòu)的隱藏層是具有長(zhǎng)短期記憶功能的LSTM模型,解決了藏文臨床病歷中部分結(jié)構(gòu)較長(zhǎng)的醫(yī)學(xué)實(shí)體識(shí)別準(zhǔn)確率較低的問(wèn)題;最后的標(biāo)簽推理層使用CRF模塊,解決文本序列標(biāo)簽之間的依賴(lài)問(wèn)題。在已構(gòu)建的藏文臨床病歷醫(yī)學(xué)實(shí)體識(shí)別數(shù)據(jù)集上進(jìn)行實(shí)驗(yàn),結(jié)果證明S-Lattice LSTM模型是有效的。
基于深度學(xué)習(xí)的藏文臨床病歷醫(yī)學(xué)實(shí)體識(shí)別模型S-Lattice LSTM 也可以推廣到其它具有類(lèi)似特點(diǎn)的垂直領(lǐng)域,具有一定的通用性。