楊文明,褚偉杰
(北京大學(xué) 軟件與微電子學(xué)院,北京 102600)
通訊作者: 褚偉杰,E-mail: chuwj@ss.pku.edu.cn
伴隨互聯(lián)網(wǎng)和大數(shù)據(jù)技術(shù)的發(fā)展,很多患者在感到身體不適時(shí),首先會(huì)到醫(yī)療問(wèn)答網(wǎng)站上提問(wèn)和查詢疾病相關(guān)的問(wèn)題,同時(shí)許多醫(yī)生也會(huì)到醫(yī)療問(wèn)答網(wǎng)站去回答患者的疑問(wèn),這類網(wǎng)站已經(jīng)成為聯(lián)系患者和醫(yī)生之間的樞紐.在線醫(yī)療問(wèn)答社區(qū)的發(fā)展使得我們獲取醫(yī)學(xué)知識(shí)的渠道多樣化,有助于患者了解自己的健康狀況,同時(shí)也有助于健康醫(yī)學(xué)知識(shí)的普及.國(guó)內(nèi)如39健康網(wǎng),尋醫(yī)問(wèn)藥,春雨醫(yī)生等網(wǎng)站,不僅提供基礎(chǔ)的疾病知識(shí)和醫(yī)學(xué)知識(shí),而且每天還積累了大量的問(wèn)答數(shù)據(jù),這些醫(yī)療文本數(shù)據(jù)中包含大量有意義的信息,如尋醫(yī)問(wèn)藥從2004年開(kāi)始一直到現(xiàn)在,已經(jīng)積累了大量真實(shí)的信息,并且每天都在產(chǎn)生數(shù)萬(wàn)條的問(wèn)答數(shù)據(jù).這些醫(yī)療文本數(shù)據(jù)將匯聚成非??陀^的大數(shù)據(jù),數(shù)據(jù)中包含有大量的真實(shí)案例和醫(yī)生的診療建議.在這些數(shù)據(jù)中蘊(yùn)含著比較豐富的醫(yī)療價(jià)值.但這些數(shù)據(jù)是非結(jié)構(gòu)化的狀態(tài),無(wú)法進(jìn)行更深的數(shù)據(jù)挖掘,實(shí)現(xiàn)數(shù)據(jù)的充分利用.為了更好的利用這類數(shù)據(jù),抽取和挖掘更有價(jià)值的醫(yī)療信息,需要把非結(jié)構(gòu)化的數(shù)據(jù)進(jìn)行結(jié)構(gòu)化,而命名實(shí)體識(shí)別是結(jié)構(gòu)化文本中的第一步,而且該類文本的命名實(shí)體識(shí)別可以為醫(yī)療問(wèn)答的研究和應(yīng)用打好基礎(chǔ).本文利用醫(yī)療問(wèn)答網(wǎng)站積累的數(shù)據(jù),進(jìn)行了命名實(shí)體識(shí)別的研究.
實(shí)體是文本的基本信息元素,是構(gòu)成文本的基礎(chǔ).命名實(shí)體識(shí)別(Named Entity Recognition,NER)是自然語(yǔ)言處理的一項(xiàng)基本任務(wù),主要是從一段文本中找出實(shí)體,并對(duì)實(shí)體出現(xiàn)的位置和類別進(jìn)行標(biāo)記.NER概念的提出是在MUC-6(Message Understanding Conference)會(huì)議上[1],最初的提出是作為信息提取的重要任務(wù)之一.通用的命名實(shí)體識(shí)別任務(wù),主要是在一段文本中識(shí)別出人名,地名,專業(yè)機(jī)構(gòu),時(shí)間和數(shù)字(貨幣,百分?jǐn)?shù))等.在特定的領(lǐng)域,可以用來(lái)識(shí)別特殊領(lǐng)域的實(shí)體如醫(yī)療領(lǐng)域和金融領(lǐng)域等.命名實(shí)體識(shí)別技術(shù)包括許多不同的方法: 基于詞典和規(guī)則的方法;基于統(tǒng)計(jì)學(xué)習(xí)的方法;還有將二者混合的方法.常見(jiàn)的統(tǒng)計(jì)學(xué)習(xí)的方法有支持向量機(jī)(SVM)、最大熵模型、貝葉斯分類等,這些方法把NER任務(wù)看成分類問(wèn)題.此外,還有隱馬爾可夫模型(HMM)和條件隨機(jī)場(chǎng)(CRF),這類模型把NER任務(wù)當(dāng)做序列標(biāo)注問(wèn)題處理.隨著深度學(xué)習(xí)的發(fā)展,最近幾年出現(xiàn)了大量的基于神經(jīng)網(wǎng)絡(luò)的模型,并取得了較好的效果,最具代表性的是BiLSTMCRF模型[2],該模型在各個(gè)公共數(shù)據(jù)集上均取得了不錯(cuò)的效果.在RNN的輸出層連接CRF層,這種結(jié)構(gòu)已經(jīng)成為命名實(shí)體識(shí)別模型的常用結(jié)構(gòu).目前對(duì)于醫(yī)療文本命名實(shí)體識(shí)別的研究主要集中在電子病歷,醫(yī)學(xué)文獻(xiàn),醫(yī)學(xué)書籍等,而互聯(lián)網(wǎng)醫(yī)療問(wèn)答社區(qū)文本的研究并不多,國(guó)內(nèi)最近幾年也有研究者開(kāi)始關(guān)注這方面的研究,比如蘇婭等[3]使用CRF在自建數(shù)據(jù)集上進(jìn)行研究,抽取的目標(biāo)實(shí)體共5類,分別包括疾病、癥狀、藥品、治療方法和檢查,通過(guò)采用逐一添加特征的方式訓(xùn)練模型,模型精確率達(dá)到81.26%,召回率60.18%.張帆等人[4]設(shè)計(jì)深度神經(jīng)網(wǎng)絡(luò)應(yīng)用到在線醫(yī)療文本實(shí)體識(shí)別上,抽取的目標(biāo)實(shí)體也是5類.深度神經(jīng)網(wǎng)絡(luò)模型同CRF等方法相比減少了很多人工特征,并且提高了精確率和召回率.
本文以BiLSTM-CRF作為基準(zhǔn)模型,設(shè)計(jì)了兩種不同的命名實(shí)體識(shí)別模型,并且在自構(gòu)建的數(shù)據(jù)集上進(jìn)行驗(yàn)證,均取得了不錯(cuò)的效果.
雙向循環(huán)神經(jīng)網(wǎng)絡(luò)(BiLSTM)由兩個(gè)單向的循環(huán)神經(jīng)網(wǎng)絡(luò)構(gòu)成,兩個(gè)網(wǎng)絡(luò)中一個(gè)隨時(shí)間正向,另一個(gè)隨時(shí)間逆向,逆向網(wǎng)絡(luò)的實(shí)現(xiàn)本質(zhì)上把輸入序列進(jìn)行逆轉(zhuǎn),然后輸入到正向網(wǎng)絡(luò)中.BiLSTM的優(yōu)勢(shì)是可以在當(dāng)前節(jié)點(diǎn)獲取正反兩個(gè)方向的特征信息,即能捕捉到未來(lái)信息的特征,也能捕捉到過(guò)去信息的特征.但是,兩個(gè)方向的循環(huán)神經(jīng)網(wǎng)絡(luò)并不會(huì)共享一個(gè)隱狀態(tài),正向LSTM的隱狀態(tài)傳給正向的LSTM,逆向LSTM的隱狀態(tài)傳給逆向的LSTM,兩個(gè)方向的循環(huán)神經(jīng)網(wǎng)絡(luò)之間沒(méi)有連接,兩個(gè)輸出會(huì)共同連接到輸出節(jié)點(diǎn)合成最終輸出.方向不同的兩個(gè)循環(huán)神經(jīng)網(wǎng)絡(luò),都可以展開(kāi)成為普通的前饋網(wǎng)絡(luò),使用反向傳播算法(BPTT)進(jìn)行訓(xùn)練.雙向循環(huán)神經(jīng)網(wǎng)絡(luò)被用在許多序列標(biāo)注任務(wù)上.
條件隨機(jī)場(chǎng)(CRF)模型是一種概率無(wú)向圖模型,可以解決序列標(biāo)注任務(wù),命名實(shí)體識(shí)別可以看做是序列標(biāo)注任務(wù),即給定觀察序列X={x1,x2,…,xn}的條件下,求Y的概率.隨機(jī)變量Y={y1,y2,…,yn},Y是隱狀態(tài)序列.數(shù)學(xué)表達(dá)式為P(Y|X).在命名實(shí)體識(shí)別上使用的CRF主要是CRF線性鏈,CRF建模的數(shù)學(xué)公式如式(1)和(2).
上式中fk是特征函數(shù),wk是特征函數(shù)的權(quán)重,Z(x)是歸一化因子.條件隨機(jī)場(chǎng)可以看成是定義在序列上的對(duì)數(shù)線性模型,能夠使用極大似然估計(jì)方法求參數(shù).目前已經(jīng)有了一些優(yōu)化算法進(jìn)行該問(wèn)題的求解,比如梯度下降法,改進(jìn)的迭代尺度法和擬牛頓法等.模型在進(jìn)行解碼時(shí)可以利用維特比算法,這是一種動(dòng)態(tài)規(guī)劃算法,在給定觀察序列的條件下,求出最大的標(biāo)記序列的概率.BiLSTM與CRF的結(jié)合,本質(zhì)上是把BiLSTM的輸出作為CRF的輸入,BiLSTM層輸出的是每一個(gè)標(biāo)簽的預(yù)測(cè)分值,這些分值會(huì)輸入到CRF層.其過(guò)程可描述為利用BiLSTM解決提取序列特征,再使用CRF利用句子級(jí)別的標(biāo)記信息進(jìn)行訓(xùn)練,單獨(dú)使用BiLSTM也可以完成命名實(shí)體識(shí)別,可以從BiLSTM的輸出中挑選最大值對(duì)應(yīng)的標(biāo)簽,作為該單元的標(biāo)簽,但是這不能保證每次預(yù)測(cè)的標(biāo)簽都是合法的,比如對(duì)于{B,I,O}體系的標(biāo)注,標(biāo)簽序列是“IOrganization I-Person”和“B-Organization I-Person”,很顯然這是錯(cuò)誤的.如果在BiLSTM的輸出層接入CRF層后,相當(dāng)于對(duì)最后的預(yù)測(cè)標(biāo)簽加入了約束,保證輸出的標(biāo)簽是合法的,這些約束會(huì)在訓(xùn)練的過(guò)程學(xué)習(xí)到,對(duì)于BiLSTM-CRF模型的學(xué)習(xí)方法同樣可以使用極大似然估計(jì)方法.
可以把雙向循環(huán)神經(jīng)網(wǎng)絡(luò)的輸出看成打分矩陣,稱為P矩陣.對(duì)于輸入語(yǔ)句X=(x1,x2,x3,…,xn),P是一個(gè)n×k的矩陣,k是輸出標(biāo)注y的個(gè)數(shù),Pi,j表示句子中第i個(gè)詞被標(biāo)記為第j個(gè)標(biāo)簽的概率.句子的預(yù)測(cè)標(biāo)注序列可以表示為:y=(y1,y2,y3,…,yn).定義y矩陣的打分函數(shù)的計(jì)算式(3).
Ai,j是看成轉(zhuǎn)移打分矩陣,代表從標(biāo)注i轉(zhuǎn)移到標(biāo)注j的得分.y0和yn分別代表句子開(kāi)始和結(jié)束的標(biāo)簽,標(biāo)注矩陣A是一個(gè)k+2階的方陣.通過(guò)式(4)計(jì)算y在給定x下的條件概率p(y|x),其中YX代表對(duì)于給定的句子X(jué)所有可能的標(biāo)簽序列,損失函數(shù)可以定義為式(5),并在訓(xùn)練的過(guò)程中極大化正確標(biāo)簽序列概率的對(duì)數(shù)值.
在模型訓(xùn)練完成后可以通過(guò)式(6)進(jìn)行模型預(yù)測(cè),其中y*是集合中使得得分函數(shù)score取最大值的序列.
以上是BiLSTM-CRF的基本原理,本文在設(shè)計(jì)的BiLSTM-CRF模型結(jié)構(gòu)圖如圖1.首先將輸入語(yǔ)句經(jīng)過(guò)一個(gè)embedding層,之后連接到BiLSTM層,在BiLSTM層后連接映射層,并進(jìn)行邏輯回歸,該層的輸出會(huì)輸入到下一層CRF層.為了提高模型的泛化能力,在embedding層和BiLSTM層之間加入了droupout層.
圖1 BiLSTM-CRF模型結(jié)構(gòu)圖
獨(dú)立循環(huán)神經(jīng)網(wǎng)絡(luò)(Independently Recurrent Neural Network,IndRNN)[5]由Li S等人提出,同傳統(tǒng)的RNN不同的是IndRNN的神經(jīng)元之間是獨(dú)立的.傳統(tǒng)的RNN的隱藏層數(shù)學(xué)公式如式(7),其中W是N×M的矩陣,U是N×N的矩陣,N是RNN中的神經(jīng)元節(jié)點(diǎn)數(shù).
在傳統(tǒng)的RNN中每個(gè)神經(jīng)元都和上一時(shí)刻的全部神經(jīng)元發(fā)生聯(lián)系(U的行向量與ht-1向量的乘積,ht-1是t-1時(shí)刻的隱狀態(tài)),也就是神經(jīng)元之間是不獨(dú)立的.而IndRNN結(jié)構(gòu)神經(jīng)元之間的連接僅發(fā)生在層與層之間,IndRNN的數(shù)學(xué)表達(dá)式可以在上面式(7)進(jìn)行改造后得到如式(8).其中U和ht-1是點(diǎn)積,此時(shí)的U不是矩陣,而是一個(gè)N維的向量,t時(shí)刻的每個(gè)神經(jīng)元只和t-1時(shí)刻自身相聯(lián)系,與其他的神經(jīng)元無(wú)關(guān).這也是獨(dú)立循環(huán)神經(jīng)網(wǎng)絡(luò)名稱的由來(lái).為了在神經(jīng)元之間發(fā)生聯(lián)系,至少需要進(jìn)行兩層的堆疊.
模型中的第n個(gè)神經(jīng)元的隱藏狀態(tài)hn,t,可由式(9)計(jì)算得出,其中wn和un分別是輸入權(quán)重和t-1到t時(shí)刻的連接權(quán)重的第n行,每個(gè)神經(jīng)元只接受前一步它自己的隱藏狀態(tài)和輸入傳來(lái)的信息.這與傳統(tǒng)的RNN是不同的,這種結(jié)構(gòu)提供了一種循環(huán)神經(jīng)網(wǎng)絡(luò)的新視角,隨著時(shí)間的推移(通過(guò)u),獨(dú)立的聚集空間模式(通過(guò)w),不同神經(jīng)元的相關(guān)性可以通過(guò)多層堆疊來(lái)實(shí)現(xiàn),下一層的神經(jīng)元處理上一層所有神經(jīng)元的輸出.模型同樣采用梯度后向傳播算法進(jìn)行優(yōu)化,IndRNN進(jìn)一步緩解了隨時(shí)間累積的梯度爆炸或消失的問(wèn)題,梯度可以在不同的時(shí)間步上有效的傳播,可以使得網(wǎng)絡(luò)疊加更深.在本文中,將BiLSTM-CRF模型中的BiLSTM換成多層的IndRNN,提出了一種新的模型Multi-IndRNN-CRF,本文中IndRNN有4層,之后拼接CRF,模型示意圖如圖2,在Embedding層后輸出的數(shù)據(jù),會(huì)進(jìn)行dropout,每層IndRNN輸出后都會(huì)進(jìn)行BatchNormalization防止數(shù)據(jù)發(fā)生嚴(yán)重偏移,同時(shí)防止梯度爆炸.IndRNN-CRF的損失函數(shù)和LSTM-CRF模型一樣,參數(shù)的學(xué)習(xí)方法依然是極大似然估計(jì).
圖2 4-IndRNN-CRF結(jié)構(gòu)圖
膨脹卷積(Dilated Convolution,簡(jiǎn)稱DCNN)是Yu F,Koltun V在2015年提出的[6],經(jīng)典卷積的filter,作用在矩陣的一片連續(xù)區(qū)域上做滑動(dòng),而膨脹卷積是在filter中增加了膨脹寬度,在輸入矩陣上做滑動(dòng)時(shí)會(huì)跳過(guò)膨脹寬度中間的數(shù)據(jù).filer矩陣大小不變,filter最終獲取到了更廣的輸入矩陣的數(shù)據(jù).DCNN的示意圖如圖3.
圖3 DCNN示意圖
圖3中的(a)圖對(duì)應(yīng)3×3的1-dilated convolution,同經(jīng)典的卷積操作一樣;(b)圖對(duì)應(yīng)3×3的2-dilated convolution,卷積核的大小仍然是3×3,空洞大小是1,可以理解成卷積核的大小是7×7,receptive filed是7×7;(c)圖是4-dilated convolution操作,receptive filed是15×15的感受野.
Strubell E等人[7]提出了IDCNN(Iterated Dilated Convolution,IDCNN)模型,用在實(shí)體識(shí)別任務(wù)上取得了不錯(cuò)的效果.膨脹的寬度隨著層數(shù)的增加呈現(xiàn)為指數(shù)增加,但參數(shù)的數(shù)量是線性增加的,這樣接受域很快就覆蓋到了全部的輸入數(shù)據(jù).模型是4個(gè)大小相同的膨脹卷積塊疊加在一起,每個(gè)膨脹卷積塊里的膨脹寬度分別為1,1,2的三層膨脹卷積.把句子輸入到IDCNN模型中,經(jīng)過(guò)卷積層,提取特征,其基本框架同BiLSTM-CER一樣,由IDCNN模型的輸出經(jīng)過(guò)映射層連接到CRF層.
盡管IDCNN模型可以使得接受域擴(kuò)大,但不會(huì)像雙向循環(huán)神經(jīng)網(wǎng)絡(luò),可以從序列的整體提取正向和反向特征,但循環(huán)神經(jīng)網(wǎng)絡(luò)不能很好的兼顧到局部特征,本文提出模型IDCNN-BiLSTM-CRF既能兼顧全局特征(通過(guò)BiLSTM),又能兼顧局部特征(通過(guò)IDCNN).
模型的基本結(jié)構(gòu)描述如下: 首先輸入語(yǔ)句經(jīng)過(guò)embedding層,輸出字向量,字向量并行輸入到IDCNN模型和BiLSTM模型,經(jīng)過(guò)兩個(gè)模型后,將輸出的向量進(jìn)行拼接后形成向量特征,然后經(jīng)過(guò)映射層后輸入到CRF層.IDCNN在提取局部特征的同時(shí)能夠兼顧到部分全局特征,但不會(huì)像BiLSTM能夠很好的提取全局特征,因此將IDCNN輸出的向量特征作為對(duì)局部特征的彌補(bǔ),拼接在BiLSTM的向量特征上,模型示意圖如圖4.其中Dilated CNN block中有三個(gè)卷積層,沒(méi)有池化層,第一層為1-dilated convolution,第二層為1-dilated convolution,第三層為2-dilated convolution.將4個(gè)block(對(duì)應(yīng)圖中的DCNN-i)堆疊,當(dāng)有數(shù)據(jù)輸入后.先經(jīng)過(guò)embedding層,然后輸入到DCNN-1,從DCNN-1的輸出有兩個(gè)去向,一是與其他DCNN的輸出拼接后形成最終的特征向量,另一個(gè)輸出變成DCNN-2的輸入,依次類推.IDCNN模型的輸出和BiLSTM模型的輸出進(jìn)行拼接后,經(jīng)過(guò)一個(gè)映射層,再將值輸入到CRF中,模型圖見(jiàn)圖4.模型的訓(xùn)練以及參數(shù)的學(xué)習(xí)方法同BiLSTM-CRF.
圖4 IDCNN-BiLSTM-CRF模型結(jié)構(gòu)圖
使用Scrapy框架編寫爬蟲,從醫(yī)療問(wèn)答網(wǎng)站爬取數(shù)據(jù).爬取的網(wǎng)站分別是“尋醫(yī)問(wèn)藥”,“39健康網(wǎng)”,“快速問(wèn)醫(yī)生”等網(wǎng)站.在各個(gè)網(wǎng)站的問(wèn)答板塊收集咨詢者的問(wèn)題,總計(jì)收集數(shù)據(jù)約1200萬(wàn)條,大約2.27 GB.從收集的數(shù)據(jù)中挑選8027條數(shù)據(jù)作為訓(xùn)練集,1972條作為測(cè)試集.采用{B,I,O}標(biāo)注體系,對(duì)醫(yī)療文本進(jìn)行人工標(biāo)注,具體格式為B-X,I-X和O.B代表實(shí)體開(kāi)始,I代表實(shí)體中間或結(jié)束部分,O代表非實(shí)體.標(biāo)注的實(shí)體類別參考楊錦峰等人[8]在論文中提出的方案,分為四類實(shí)體: 疾病、癥狀、檢查和治療.X代表命名實(shí)體的類別,分別為DISEASE、SYMPTOM、TREATMENT、CHECK四個(gè)不同的標(biāo)識(shí),代表疾病、癥狀、治療和檢查.該任務(wù)的標(biāo)記一共有9(=4×2+1)類標(biāo)簽,在標(biāo)注時(shí)把藥物歸結(jié)到治療實(shí)體.表1給出了標(biāo)注的示例.
表1 命名實(shí)體類別
實(shí)際標(biāo)注的格式如下: 對(duì)于語(yǔ)句“我有點(diǎn)發(fā)燒,渾身無(wú)力,是感冒了嗎?”,標(biāo)注為{O,O,O,B-SYMPTOM,I-SYMPTOM,O,B-SYMPTOM,I-SYMPTOM,ISYMPTOM,I-SYMPTOM,O,O,B-DISEASE,IDISEASE,O,O,O},其中語(yǔ)句中包含的標(biāo)點(diǎn)符號(hào)作為非實(shí)體,標(biāo)注為“O”.
本文實(shí)驗(yàn)是在Linux平臺(tái)下使用Python 3.5語(yǔ)言在tensorflow框架進(jìn)行開(kāi)發(fā),硬件環(huán)境如下: Intel i7的cpu,16 GB內(nèi)存以及NVIDIA GTX-1070顯卡.
使用預(yù)訓(xùn)練的字向量對(duì)embedding層進(jìn)行初始化,預(yù)訓(xùn)練字向量的過(guò)程如下: 首先將下載的1200萬(wàn)條問(wèn)句,按照字級(jí)別進(jìn)行字向量的訓(xùn)練.訓(xùn)練的模型使用的是開(kāi)源工具Word2vec,該工具是Toms Mikolov在2013年開(kāi)發(fā)的工具包,Word2vec使用CBOW模型[9-11](連續(xù)詞袋模型).對(duì)于word2vec參數(shù)的設(shè)定如下: 字向量的維度設(shè)置為200,窗口大小為5,訓(xùn)練次數(shù)為20,其余參數(shù)默認(rèn).
對(duì)于BiLSTM-CRF模型參數(shù)的設(shè)定: BiLSTM的隱層節(jié)點(diǎn)為300,模型中的droupout層參數(shù)設(shè)置為0.5,采用Adam優(yōu)化算法,學(xué)習(xí)率設(shè)置為0.001,batch size的大小為64,epoch的大小為100.
對(duì)于IndRNN-CRF模型參數(shù)的設(shè)定: IndRNN的隱層節(jié)點(diǎn)為300,共有4層IndRNN,模型中的droupout層參數(shù)設(shè)置為0.5,采用Adam優(yōu)化算法,學(xué)習(xí)率設(shè)置為0.001,batch size的大小為64,epoch的大小為100.
對(duì)于IDCNN-BiLSTM-CRF模型參數(shù)的設(shè)定:BiLSTM的隱層節(jié)點(diǎn)為300,IDCNN的filter個(gè)數(shù)為100,模型中的droupout層參數(shù)設(shè)置為0.5,采用Adam優(yōu)化算法,學(xué)習(xí)率設(shè)置為0.001,batch size的大小為64,epoch的大小為80.
實(shí)驗(yàn)結(jié)果的評(píng)價(jià)指標(biāo)有3個(gè),分別為精確率,召回率和F值.計(jì)算公式如式(10),(11),(12).
不同模型的實(shí)驗(yàn)結(jié)果分別見(jiàn)表2,3和4.
表2 BiLSTM-CRF的實(shí)驗(yàn)結(jié)果
對(duì)比實(shí)驗(yàn)結(jié)果可以看出,IndRNN-CRF模型在精確率上比基準(zhǔn)模型BiLSTM-CRF高,召回率的值為0.6848,相比于模型BiLSTM-CRF的召回率比較低.IDCNN-BiLSTM-CRF模型在精確率,召回率和F1值上均超過(guò)了基準(zhǔn)模型BiLSTM-CRF.圖5,圖6和圖7分別是模型BiLSTM-CRF,IndRNN-CRF和IDCNNBiLSTM-CRF的Loss曲線圖,縱坐標(biāo)代表Loss值,橫坐標(biāo)代表的是迭代次數(shù).從圖中可以看出在經(jīng)過(guò)了24 000次的迭代后模型BiLSTM-CRF的Loss值大于2.0,模型IndRNN-CRF和IDCNN-BiLSTM-CRF的loss值小于2.0,其中模型IndRNN-CRF的loss值最低.
表3 IndRNN-CRF的實(shí)驗(yàn)結(jié)果
表4 IDCNN-BILSTM-CRF的實(shí)驗(yàn)結(jié)果
圖5 BiLSTM-CRF的loss-step曲線圖
由于IDCNN-BiLSTM-CRF模型的總體性能最好,可以用在互聯(lián)網(wǎng)在線問(wèn)診醫(yī)療文本的實(shí)體識(shí)別上,該模型也可用在醫(yī)學(xué)文獻(xiàn),電子病歷等文本的命名實(shí)體識(shí)別上.模型IndRNN可以用在對(duì)精確率要求較高,但對(duì)召回率要求不高的任務(wù)中.
本文針對(duì)在線問(wèn)診醫(yī)療文本,利用深度學(xué)習(xí)技術(shù)設(shè)計(jì)了兩種不同的神經(jīng)網(wǎng)絡(luò)模型,進(jìn)行醫(yī)療文本命名實(shí)體識(shí)別的研究,共識(shí)別4類醫(yī)療實(shí)體: 疾病,癥狀,治療和檢查.對(duì)基于字級(jí)別的命名實(shí)體識(shí)別任務(wù),在模型IDCNN-BiLSTM-CRF中使用卷積神經(jīng)網(wǎng)絡(luò)和循環(huán)神經(jīng)網(wǎng)絡(luò)提取特征向量,并將兩個(gè)特征向量拼接,形成既包含全局特征又包含局部特征的向量,該向量經(jīng)過(guò)映射層后輸入到CRF層中,實(shí)驗(yàn)結(jié)果表明該模型的整體性能最好.但是由于醫(yī)療領(lǐng)域的特殊性,仍然需要繼續(xù)提高醫(yī)療實(shí)體的識(shí)別率,獲取更精確的挖掘結(jié)果.在接下來(lái)的工作中,可以考慮先對(duì)醫(yī)療文本分詞,然后加入詞性或者拼音等特征訓(xùn)練模型,提高識(shí)別率.此外,對(duì)于醫(yī)療文本還要考慮文本中是否含有修飾性實(shí)體,比如表示時(shí)間和否定的詞匯等,如“無(wú)頭痛”,癥狀“頭痛”前的“無(wú)”就是修飾實(shí)體.模型最終結(jié)果與參數(shù)的調(diào)試也有較大的關(guān)系,設(shè)置不同的參數(shù),模型的輸出值可能會(huì)不同.
圖6 IndRNN-CRF的loss-step曲線圖
圖7 IDCNN-BILSTM-CRF的loss-step曲線