王星予,呂學(xué)強(qiáng),游新冬
(北京信息科技大學(xué) 網(wǎng)絡(luò)文化與數(shù)字傳播北京市重點(diǎn)實(shí)驗(yàn)室,北京 100101)
大數(shù)據(jù)時(shí)代的到來(lái)為獲取信息帶來(lái)了便利,面對(duì)大量的信息,信息抽取可以幫助人們快速的從大量文檔中獲取有效的信息并對(duì)有效信息進(jìn)行分析,因此信息抽取得到了廣泛的應(yīng)用.實(shí)體抽取是信息抽取中十分重要的內(nèi)容,同時(shí)也是構(gòu)建知識(shí)圖譜、對(duì)話系統(tǒng)、機(jī)器翻譯等的基礎(chǔ)任務(wù),近年來(lái),隨著機(jī)器學(xué)習(xí)、深度學(xué)習(xí)等方法也被廣泛應(yīng)用于實(shí)體抽取研究.智慧醫(yī)療的出現(xiàn)打破了傳統(tǒng)醫(yī)療的禁錮[1],在互聯(lián)網(wǎng)+醫(yī)療健康的背景下[2],人工智能在醫(yī)療健康方面的應(yīng)用是大勢(shì)所趨,越來(lái)越多的學(xué)者開(kāi)始從事醫(yī)療領(lǐng)域?qū)嶓w抽取、關(guān)系抽取等信息抽取研究.
在現(xiàn)有的實(shí)體抽取研究方法中,常常將數(shù)據(jù)處理為字符級(jí)或是詞級(jí),作為模型的輸入部分.詞級(jí)的數(shù)據(jù)往往是通過(guò)各類分詞工具得到,錯(cuò)誤的分詞結(jié)果可能會(huì)導(dǎo)致錯(cuò)誤的抽取結(jié)果,分詞的準(zhǔn)確性就會(huì)直接影響到實(shí)體抽取的準(zhǔn)確性.而詞性、詞頻、詞長(zhǎng)、依存句法分析等可以輔助進(jìn)行實(shí)體抽取的特征也大多是基于詞的,如果采用字符級(jí)的數(shù)據(jù)作為輸入,則無(wú)法直接融入詞級(jí)特征,而目前也鮮有可用于字符級(jí)的特征.同時(shí),現(xiàn)有的實(shí)體抽取研究大多聚焦在模型和方法上的改進(jìn),較少聚焦在特定領(lǐng)域數(shù)據(jù)的獨(dú)特性上.
對(duì)于上述問(wèn)題,KBLCC方法聚焦醫(yī)療領(lǐng)域數(shù)據(jù),根據(jù)醫(yī)療數(shù)據(jù)特點(diǎn)融入字符級(jí)特征,提出一種融合實(shí)體關(guān)鍵字特征的醫(yī)療領(lǐng)域?qū)嶓w分類方法.抽取醫(yī)療實(shí)體中的檢驗(yàn)指標(biāo)、疾病、癥狀這3大類,在進(jìn)行實(shí)體抽取任務(wù)的同時(shí)完成了實(shí)體分類任務(wù),因此可以將其轉(zhuǎn)化為序列標(biāo)注問(wèn)題.本文主要有以下3點(diǎn)貢獻(xiàn):1)構(gòu)建了一個(gè)醫(yī)療領(lǐng)域?qū)嶓w抽取人工標(biāo)注語(yǔ)料庫(kù);2)提出融合字符級(jí)的關(guān)鍵字特征,并采用TF-IDF輔助構(gòu)建了醫(yī)療領(lǐng)域關(guān)鍵字表;3)提出了KBLCC方法用于醫(yī)療領(lǐng)域?qū)嶓w分類,搭建了融合實(shí)體關(guān)鍵字特征的BERT-BILSTM-CNN-CRF混合模型,融合BILSTM模型和CNN模型,BILSTM模型進(jìn)行全局特征抽取,再通過(guò)CNN進(jìn)行局部特征抽取,提高抽取準(zhǔn)確性.通過(guò)進(jìn)行大量對(duì)比實(shí)驗(yàn),相較其他方法,使用KBLCC模型在準(zhǔn)確率、召回率和F1值上都取得了最好的實(shí)驗(yàn)效果,可見(jiàn)KBLCC模型在進(jìn)行醫(yī)療領(lǐng)域?qū)嶓w抽取并分類任務(wù)中是有效的.
早期的實(shí)體識(shí)別方法一般由人工提取特征,主要是基于規(guī)則的方法和基于統(tǒng)計(jì)的方法.Abney[3]使用Bootstrapping自動(dòng)生成規(guī)則的方法提取實(shí)體.周昆等人[4]提出基于本體論和規(guī)則匹配的中文人名識(shí)別方法,這種方法在特定語(yǔ)料上得到了良好的效果.吳瓊等人[5]提出了一種運(yùn)用統(tǒng)計(jì)與規(guī)則相結(jié)合的方法來(lái)識(shí)別時(shí)間表達(dá)式的方法,使用條件隨機(jī)場(chǎng)識(shí)別時(shí)間單元,篩選出正確觸發(fā)詞,根據(jù)規(guī)則對(duì)時(shí)間表達(dá)式邊界進(jìn)行定位,得到了不錯(cuò)的識(shí)別效果.Kraus等人[6]通過(guò)構(gòu)建正則表達(dá)式,識(shí)別了大學(xué)醫(yī)療系統(tǒng)臨床記錄中的藥品、劑量等醫(yī)療實(shí)體.何云琪等人[7]提出,在統(tǒng)計(jì)特征上融合句法和語(yǔ)義將這一系列特征輸入CRF模型中來(lái)識(shí)別其中的疾病實(shí)體.通過(guò)構(gòu)造規(guī)則模板進(jìn)行實(shí)體識(shí)別的方法需要人工構(gòu)造規(guī)則,且在面對(duì)復(fù)雜數(shù)據(jù)的數(shù)據(jù)時(shí),難以達(dá)到較好的抽取效果.
深度學(xué)習(xí)是機(jī)器學(xué)習(xí)的一個(gè)重要的發(fā)展方向,是機(jī)器學(xué)習(xí)中十分重要的領(lǐng)域,利用深度學(xué)習(xí)來(lái)解決NER(Name Entity Recognition)問(wèn)題已經(jīng)成為當(dāng)前的一種重要趨勢(shì).與傳統(tǒng)的實(shí)體識(shí)別方法相比,深度學(xué)習(xí)的最大的優(yōu)勢(shì)是它可以通過(guò)算法提取出處理過(guò)的數(shù)據(jù)的特征,而不需要通過(guò)人工的方法得到,且有較強(qiáng)的遷移能力.Peters等人[8]提出利用大量的無(wú)標(biāo)記語(yǔ)料,來(lái)訓(xùn)練神經(jīng)網(wǎng)絡(luò)模型,從語(yǔ)言模型中學(xué)習(xí)到額外的特征,來(lái)提升序列標(biāo)注任務(wù)的性能.王銀瑞等人[9]提出了Trans-NER模型,運(yùn)用遷移學(xué)習(xí),雙向循環(huán)神經(jīng)網(wǎng)絡(luò)進(jìn)行訓(xùn)練,實(shí)驗(yàn)效果優(yōu)于其他模型.Kuru等人[10]使用層疊雙向長(zhǎng)短時(shí)記憶網(wǎng)絡(luò)的方法,來(lái)提取文本中的全局特征,實(shí)驗(yàn)過(guò)程中,在7種不同語(yǔ)言上進(jìn)行了對(duì)比實(shí)驗(yàn),并且都取得了良好的識(shí)別效果.Lample等人[11]提出使用BILSTM-CRF的方法,用BILSTM替換卷積神經(jīng)網(wǎng)絡(luò)來(lái)處理單詞序列,并最終在多個(gè)序列標(biāo)注任務(wù)上取得了較好的效果.Zhang等人[12]提出了Lattice LSTM模型,將詞匯信息融入到基于字符的模型中.Liu等人[13]提出了WC-LSTM模型,該方法沒(méi)有改變BILSTM的結(jié)構(gòu),而是在輸入的字向量中融入詞匯信息.王子牛等人[14]提出使用BERT-BILSTM-CRF模型進(jìn)行中文實(shí)體識(shí)別研究,首先用BERT模型進(jìn)行訓(xùn)練,再用BILSTM模型獲取上下文特征,最后經(jīng)過(guò)CRF模型解碼,該方法取得了不錯(cuò)的實(shí)驗(yàn)效果.
近年來(lái),運(yùn)用深度學(xué)習(xí)方法進(jìn)行醫(yī)療領(lǐng)域?qū)嶓w抽取的研究也逐漸增多.Almgren等人[15]提出一種基于字符的深度雙向遞歸神經(jīng)網(wǎng)絡(luò)的醫(yī)療命名實(shí)體識(shí)別方法,實(shí)驗(yàn)結(jié)果比經(jīng)典模型提高了60%.張帆等人[16]運(yùn)用深度學(xué)習(xí)算法對(duì)醫(yī)療文本數(shù)據(jù)中的五大類目標(biāo)實(shí)體進(jìn)行識(shí)別,提升了識(shí)別效果.李慧林[17]等人提出基于塊表示的神經(jīng)網(wǎng)絡(luò)模型,在醫(yī)療文本上進(jìn)行命名實(shí)體識(shí)別,與傳統(tǒng)模型實(shí)驗(yàn)結(jié)果相比得到了更好的F值.楊文明等人[18]提出IDCNN-BiLSTM-CRF、IndRNN-CRF這兩種模型對(duì)數(shù)據(jù)集中的疾病、癥狀、檢查、治療4種實(shí)體進(jìn)行抽取,并通過(guò)實(shí)驗(yàn)驗(yàn)證了模型的有效性.李麗雙等人[19]提出了一種基于CNN-BILSTM-CRF模型的生物醫(yī)學(xué)命名實(shí)體識(shí)別研究,取得了良好的實(shí)驗(yàn)效果.梁文桐等人[20]提出基于BERT模型來(lái)識(shí)別醫(yī)療電子病歷中的實(shí)體,實(shí)驗(yàn)結(jié)果和基線模型相比有所提升.醫(yī)療領(lǐng)域?qū)嶓w抽取和通用領(lǐng)域相比,難點(diǎn)在于語(yǔ)料中的專業(yè)名詞較多,待抽取實(shí)體較為復(fù)雜,因此在醫(yī)療實(shí)體抽取問(wèn)題中多使用雙向LSTM充分利用上下文信息以提高抽取準(zhǔn)確性.
通過(guò)對(duì)國(guó)內(nèi)外命名實(shí)體識(shí)別相關(guān)工作進(jìn)行分析,可以發(fā)現(xiàn),近年來(lái)在進(jìn)行醫(yī)療實(shí)體抽取任務(wù)時(shí),大多使用雙向LSTM模型.還可以發(fā)現(xiàn)現(xiàn)有的實(shí)體抽取研究中鮮有基于字符級(jí)的特征,因此提出的KBLCC方法融合實(shí)體關(guān)鍵字特征、加入BILSTM模型進(jìn)行醫(yī)療領(lǐng)域?qū)嶓w分類研究.
圖1 整體結(jié)構(gòu)圖Fig.1 Overall structure diagram
KBLCC方法將醫(yī)療領(lǐng)域?qū)嶓w分類問(wèn)題轉(zhuǎn)化為序列標(biāo)注問(wèn)題,構(gòu)建醫(yī)療領(lǐng)域關(guān)鍵字表,提出一種融合實(shí)體關(guān)鍵字的醫(yī)療領(lǐng)域?qū)嶓w分類方法,抽取數(shù)據(jù)集中的檢驗(yàn)指標(biāo)、疾病、癥狀這3種實(shí)體,模型整體結(jié)構(gòu)如圖1所示.整個(gè)模型主要分為3個(gè)模塊:
1)BERT向量化模塊:進(jìn)行向量化操作,經(jīng)過(guò)BERT預(yù)訓(xùn)練語(yǔ)言模型將標(biāo)注數(shù)據(jù)以及關(guān)鍵字特征轉(zhuǎn)化為字向量.
2)BILSTM-CNN特征提取模塊:將字向量輸入BILSTM中進(jìn)行特征提取,再將預(yù)測(cè)結(jié)果經(jīng)過(guò)CNN層進(jìn)一步提取特征.
3)CRF序列標(biāo)注模塊:將CNN層輸出的結(jié)果輸入到CRF層進(jìn)行標(biāo)注,得到標(biāo)注序列,從而實(shí)現(xiàn)醫(yī)療實(shí)體分類.
關(guān)鍵字又稱保留字(keyword)往往是一篇文章的中心主旨,一句話中的重點(diǎn),或是一個(gè)詞匯中有代表性的關(guān)鍵信息,在自然語(yǔ)言處理任務(wù)中也經(jīng)常會(huì)用到關(guān)鍵詞或是關(guān)鍵字.聚焦醫(yī)療領(lǐng)域數(shù)據(jù),研究醫(yī)療實(shí)體分類任務(wù),通過(guò)觀察、分析醫(yī)療領(lǐng)域數(shù)據(jù),可以發(fā)現(xiàn)醫(yī)療領(lǐng)域數(shù)據(jù)中所要抽取的實(shí)體往往也都包含關(guān)鍵字信息,如表1中展示的數(shù)據(jù)示例所示,因此借助關(guān)鍵字信息輔助實(shí)體抽取任務(wù).
表1 醫(yī)療領(lǐng)域數(shù)據(jù)
Table 1 Medical field data
數(shù)據(jù)示例實(shí) 體實(shí)體關(guān)鍵字血紅蛋白可降低,便隱血試驗(yàn)陽(yáng)性可能是急性糜爛性胃炎。血紅蛋白、便隱血試驗(yàn)、急性糜爛性胃炎血、紅、白、試、驗(yàn)、急、炎丙氨酸氨基轉(zhuǎn)移酶升高,膽紅素升高,提示可能為急性膽囊炎。丙氨酸氨基轉(zhuǎn)移酶、膽紅素、急性膽囊炎酶、紅、急、炎肺癌表現(xiàn)為咳嗽,伴隨胸悶,產(chǎn)生呼吸困難等癥狀。肺癌、咳嗽、胸悶、呼吸困難癌、咳、悶、難
用TF-IDF(term frequency-inverse document frequency)算法輔助構(gòu)建關(guān)鍵字.考慮到關(guān)鍵字信息一般出現(xiàn)在關(guān)鍵詞中,因此采用TF-IDF首先抽取醫(yī)療領(lǐng)域?qū)嶓w關(guān)鍵詞,再通過(guò)關(guān)鍵詞構(gòu)建關(guān)鍵字.TF-IDF根據(jù)詞在文中出現(xiàn)的次數(shù),來(lái)評(píng)估一個(gè)詞的重要程度.在使用TF-IDF來(lái)抽取關(guān)鍵詞時(shí),首先需要構(gòu)建停用詞表,去除語(yǔ)料中無(wú)關(guān)緊要的標(biāo)點(diǎn)符號(hào)和詞語(yǔ),接下來(lái)就需要計(jì)算詞頻即詞語(yǔ)在文件中出現(xiàn)的次數(shù),如公式(1)所示,其中Nk是詞k在文本中出現(xiàn)的次數(shù)N是文本中詞的個(gè)數(shù),再根據(jù)大量醫(yī)療領(lǐng)域數(shù)據(jù),計(jì)算逆文檔頻率(IDF),計(jì)算方法如公式(2)所示,其中Y是語(yǔ)料文檔總數(shù)Yk是包含詞k的文檔數(shù),最后計(jì)算TF-IDF值如公式(3)所示.得到的TF-IDF值按降序排列,選擇前800個(gè)作為提取出的關(guān)鍵詞.接下來(lái)以人工的方法從抽取的關(guān)鍵詞中篩選、提取關(guān)鍵字,由專業(yè)人員校驗(yàn)最終構(gòu)建了醫(yī)療領(lǐng)域關(guān)鍵字表,再將關(guān)鍵字作為特征,與字向量一起輸入模型進(jìn)行實(shí)體分類,部分關(guān)鍵字示例如表2所示.
(1)
(2)
TF-IDFk=TFk*IDFk
(3)
BERT[21]是谷歌公司2018年提出的一個(gè)新模型,BERT的出現(xiàn)刷新了11項(xiàng)自然語(yǔ)言處理任務(wù)的結(jié)果.BERT能夠?qū)渥又械恼Z(yǔ)義信息進(jìn)行識(shí)別,因此BERT模型生成的字向量包含著語(yǔ)境信息,這對(duì)醫(yī)療領(lǐng)域的實(shí)體抽取將會(huì)有很大的幫助,因此KBLCC方法采用BERT預(yù)處理模型生成字向量,提高生成的字向量的質(zhì)量,以便達(dá)到更高的實(shí)體分類效果.
表2 醫(yī)療實(shí)體關(guān)鍵字表
Table 2 Medical entity key table
實(shí)體類別部分關(guān)鍵字檢驗(yàn)指標(biāo)白、紅、血、驗(yàn)、值、數(shù)、積、藥、色、試、氮、檢、能、片、規(guī)、體、酶、養(yǎng)、間、原、查、質(zhì)、醇、酯、率、…疾病 病、炎、瘤、染、癥、虛、癌、征、瘍、礙、毒、衰、瘡、喘、疹、急、局、慢、血、栓、寒、核、阻、竭、塞、…癥狀 疼、痛、倦、難、少、咳、熱、竭、悶、脹、瀉、斑、瘦、苦、礙、大、腫、脹、痰、小、快、慢、感、喘、癢、…
在實(shí)驗(yàn)過(guò)程中,輸入序列X=(x1,x2,x3,…,xn),對(duì)每個(gè)序列最開(kāi)始的位置添加“[CLS]”字符,用于存儲(chǔ)整個(gè)輸入序列的語(yǔ)義信息,再用“[SEP]”分隔、區(qū)分句子,在每個(gè)句子的末尾加上特殊字符“[SEP]”.使用BERT模型訓(xùn)練詞向量,需要進(jìn)行3個(gè)Embedding操作,分別是詞嵌入、句子嵌入和位置嵌入.
1)KBLCC方法的輸入部分是字符級(jí)數(shù)據(jù),首先進(jìn)行字嵌入,就是經(jīng)過(guò)BERT預(yù)訓(xùn)練模型對(duì)輸入醫(yī)療領(lǐng)域?qū)嶒?yàn)數(shù)據(jù)進(jìn)行Embedding操作,將輸入的字符轉(zhuǎn)化為向量.
2)接下來(lái)是句子嵌入,需要區(qū)分輸入實(shí)驗(yàn)數(shù)據(jù)為句子A或是句子B,對(duì)標(biāo)記語(yǔ)料N中的s個(gè)句子按句子所在位置的奇偶性進(jìn)行劃分,如N={n1,n2,…,nk,…,nn}若句子所在位置k為奇數(shù),將這句話中每個(gè)字向量的Segment Embeddings定義為EA,如句子所在位置k為偶數(shù),則定義為EB.
3)然后定義位置信息進(jìn)行位置嵌入,標(biāo)記該字符在輸入數(shù)據(jù)中所處的位置.
4)最后將這3個(gè)Embedding對(duì)應(yīng)位置生成的結(jié)果組合起來(lái),得到BERT模型生成的向量T=(T1,T2,T3,…,Tn).
分別將語(yǔ)料中的字與輸入的關(guān)鍵字特征通過(guò)BERT模型進(jìn)行訓(xùn)練,生成字向量,作為BILSTM-CNN特征提取模型的輸入部分.
LSTM(Long Short Term Memory)是1997年Hochreiter[22]等人提出的,LSTM的出現(xiàn)解決了一般神經(jīng)網(wǎng)絡(luò)模型存在的長(zhǎng)期依賴問(wèn)題.LSTM結(jié)構(gòu)如圖2所示,LSTM引入了門(mén)控結(jié)構(gòu),即遺忘門(mén)、輸入門(mén)和輸出門(mén),通過(guò)門(mén)控結(jié)構(gòu)實(shí)現(xiàn)了對(duì)信息的長(zhǎng)期記憶,還可以實(shí)現(xiàn)信息的選擇性記憶與遺忘.在此基礎(chǔ)上,Graves A等人[23]提出了BILSTM(Bidirectional Long-Short Term Memory)模型,近年來(lái)廣泛應(yīng)用于各領(lǐng)域?qū)嶓w識(shí)別任務(wù).
圖2 LSTM結(jié)構(gòu)圖Fig.2 LSTM structure diagram
圖3 BILSTM結(jié)構(gòu)圖Fig.3 BILSTM structure diagram
CNN(Convolutional Neural Network)是前饋神經(jīng)網(wǎng)絡(luò)中的一種,卷積神經(jīng)網(wǎng)絡(luò)的關(guān)鍵就在于對(duì)輸入數(shù)據(jù)進(jìn)行卷積操作,對(duì)數(shù)據(jù)中的隱藏特征進(jìn)行提取.BILSTM有著出色的利用上下文信息的能力,對(duì)處理長(zhǎng)距離文本中的信息有更好的效果,而CNN更適合對(duì)局部特征進(jìn)行提取.
KBLCC方法將BILSTM與CNN融合進(jìn)行特征提取,在BILSTM層后加入4層CNN,卷積核尺寸為(5,256)維.BERT模型生成的向量T=(T1,T2,T3,…,Tn),經(jīng)過(guò)BILSTM層進(jìn)行特征提取,BILSTM層輸出的特征向量h=(h1,h2,h3,…,hn)包含了豐富的上下文信息、初始標(biāo)記信息、關(guān)鍵字特征信息以及輸出標(biāo)記信息,再將BILSTM輸出的特征向量輸入CNN提取局部特征,得到輸出矩陣Pn*k=(p1,p2,…,pn)其中k為定義的標(biāo)簽個(gè)數(shù),Pn*k=(p1,p2,…,pn)就是輸入字的各個(gè)標(biāo)簽打分值,如Pij為第i個(gè)字是第j個(gè)標(biāo)簽的打分值.但是僅依據(jù)打分值的高低進(jìn)行預(yù)測(cè),結(jié)果并不準(zhǔn)確這就需要引入CRF模型.
CRF(conditional random fields),是Lafferty[24]等人在2001年提出的,常被用于詞性標(biāo)注、分詞、命名實(shí)體識(shí)別等自然語(yǔ)言處理任務(wù)中,與LSTM融合解決實(shí)體抽取問(wèn)題.KBLCC方法引入CRF層進(jìn)行序列標(biāo)注,CRF層能夠?qū)︻A(yù)測(cè)標(biāo)簽添加約束,可以在標(biāo)注過(guò)程中利用已有的標(biāo)注信息,比如實(shí)體中標(biāo)簽為“B-”的字的下一個(gè)字對(duì)應(yīng)的標(biāo)簽應(yīng)該是“I-”或“O”,CRF還能在訓(xùn)練過(guò)程中從數(shù)據(jù)集中學(xué)習(xí)到某些約束,比如實(shí)體中第一個(gè)字的標(biāo)簽應(yīng)該是“B-”或“O”.
通過(guò)BILSTM-CNN特征提取模塊的敘述可知,序列X=(x1,x2,x3,…,xn)經(jīng)過(guò)特征提取得到了輸出矩陣Pn*k=(p1,p2,…,pn),對(duì)于預(yù)測(cè)序列Y=(y1,y2,y3,…,yn)定義它的分?jǐn)?shù)函數(shù)如公式(4)所示:
(4)
其中Aij為其由i標(biāo)簽轉(zhuǎn)移為j標(biāo)簽的得分,各個(gè)位置分值之和為整個(gè)序列的打分值每個(gè)位置的分值由兩部分組成,一部分是CRF的轉(zhuǎn)移分?jǐn)?shù)矩陣A,另一部分是特征提取模塊的輸出矩陣P.
CRF模型在進(jìn)行預(yù)測(cè)時(shí),使用動(dòng)態(tài)規(guī)劃算法中的維特比算法得到最優(yōu)標(biāo)記序列,根據(jù)最優(yōu)標(biāo)記序列進(jìn)行標(biāo)注.公式如下,其中Yr為真實(shí)標(biāo)注數(shù)據(jù)序列如式(5)所示.
(5)
目前可以用于醫(yī)療實(shí)體抽取的中文醫(yī)療領(lǐng)域的公開(kāi)數(shù)據(jù)集較少,根據(jù)實(shí)際需求,本文構(gòu)建了醫(yī)療領(lǐng)域?qū)嶓w抽取人工標(biāo)注語(yǔ)料庫(kù)(1)https://pan.baidu.com/s/1t-b6v3mfs_pV_InCR5Q2hQ.語(yǔ)料庫(kù)共標(biāo)注了3034條句子,句子長(zhǎng)度在20字符到60字符之間,訓(xùn)練集測(cè)試集和驗(yàn)證集按照6∶2∶2的比例劃分,訓(xùn)練集為1874條,測(cè)試集為582條,驗(yàn)證集為578條.語(yǔ)料庫(kù)中有3種類型的實(shí)體,分別為疾病實(shí)體、檢驗(yàn)指標(biāo)實(shí)體和癥狀實(shí)體.3034條句子中共標(biāo)注了7017個(gè)3種類型的醫(yī)療領(lǐng)域?qū)嶓w.3種實(shí)體類別的數(shù)量關(guān)系如表3所示.由表3可以看出語(yǔ)料庫(kù)中包含的疾病、檢驗(yàn)指標(biāo)、癥狀實(shí)體的數(shù)量基本持平.
表3 語(yǔ)料庫(kù)中實(shí)體標(biāo)注數(shù)量表
Table 3 Number of entity labels in corpus
類別數(shù)量/個(gè)檢驗(yàn)指標(biāo)2119疾病 2298癥狀 2161合計(jì) 6578
表4展示了語(yǔ)料庫(kù)的測(cè)試集驗(yàn)證集和訓(xùn)練集中3種類別的實(shí)體數(shù)量,由表4可以看出3種類別實(shí)體在訓(xùn)練集測(cè)試集和驗(yàn)證集中的數(shù)量也基本持平,保證了樣本的均衡,這也為后續(xù)實(shí)驗(yàn)的可信度提供了保障,更能驗(yàn)證KBLCC方法的有效性.
表4 實(shí)體數(shù)量表
Table 4 Number of entity
類別檢驗(yàn)指標(biāo)疾病癥狀訓(xùn)練126313671286驗(yàn)證431471426測(cè)試425460449合計(jì)211922982161
在構(gòu)建語(yǔ)料庫(kù)的過(guò)程中考慮到醫(yī)療領(lǐng)域的特殊性,對(duì)數(shù)據(jù)的真實(shí)性、準(zhǔn)確性有著較高的要求,因此語(yǔ)料庫(kù)中的數(shù)據(jù)來(lái)源于權(quán)威的醫(yī)療領(lǐng)域教材中的非結(jié)構(gòu)化數(shù)據(jù),以及從一些專業(yè)可靠且權(quán)威的醫(yī)療網(wǎng)站,如39健康網(wǎng)(2)http://ask.39.net/question、快速問(wèn)醫(yī)生(3)http://so.120ask.com/上獲取的專業(yè)醫(yī)生的回答.將獲取到的非結(jié)構(gòu)化數(shù)據(jù)首先進(jìn)行數(shù)據(jù)清洗、數(shù)據(jù)預(yù)處理,再對(duì)實(shí)驗(yàn)數(shù)據(jù)以及關(guān)鍵字信息進(jìn)行標(biāo)注.在對(duì)語(yǔ)料庫(kù)中的數(shù)據(jù)進(jìn)行標(biāo)注的過(guò)程中,為了保證數(shù)據(jù)的真實(shí)性和增強(qiáng)語(yǔ)料的可信度,根據(jù)經(jīng)過(guò)專業(yè)醫(yī)療人員校驗(yàn)過(guò)的檢驗(yàn)指標(biāo)、疾病、癥狀詞典,對(duì)語(yǔ)料中3種類型的實(shí)體進(jìn)行標(biāo)注.標(biāo)注樣例如表5中所示,其中“B”表示醫(yī)療實(shí)體的開(kāi)始,“I”表示非頭實(shí)體,“-”后接實(shí)體所屬類別,“jb”代表疾病類別,“zb”代表指標(biāo)類別,“zz”代表癥狀類別.并對(duì)實(shí)體關(guān)鍵字特征進(jìn)行標(biāo)注,根據(jù)專業(yè)人員校驗(yàn)過(guò)的實(shí)體關(guān)鍵字表對(duì)關(guān)鍵字特征進(jìn)行標(biāo)注.若字符為關(guān)鍵字則進(jìn)行標(biāo)注,不是關(guān)鍵字則標(biāo)注“無(wú)”為了驗(yàn)證KBLCC方法在解決醫(yī)療領(lǐng)域?qū)嶓w分類問(wèn)題中是行之有效的,將F1值、準(zhǔn)確率(P)和召回率(R)作為驗(yàn)證KBLCC方法有效性的評(píng)價(jià)標(biāo)準(zhǔn),其中P、R和F1的計(jì)算公式見(jiàn)公式(6)-公式(8):
表5 醫(yī)療領(lǐng)域數(shù)據(jù)標(biāo)注樣例
Table 5 Examples of data labeling in the medical field
食 無(wú)B-jb管 無(wú)I-jb癌 癌I-jb有 無(wú)O的 無(wú)O病 無(wú)O例 無(wú)O可 無(wú)O有 無(wú)O咽 無(wú)B-zz下 無(wú)I-zz食 無(wú)I-zz物 無(wú)I-zz梗 無(wú)I-zz阻 無(wú)I-zz感 感I-zz,無(wú)O出 無(wú)O現(xiàn) 無(wú)O胸 無(wú)B-zz骨 無(wú)I-zz疼 疼I-zz痛 痛I-zz和 無(wú)O食 無(wú)B-zz管 無(wú)I-zz內(nèi) 無(wú)I-zz異 無(wú)I-zz物 無(wú)I-zz感 感I-zz
(6)
(7)
(8)
通過(guò)進(jìn)行實(shí)驗(yàn)可以發(fā)現(xiàn)實(shí)驗(yàn)環(huán)境及模型參數(shù),會(huì)對(duì)實(shí)驗(yàn)結(jié)果造成影響,因此分別列舉出實(shí)驗(yàn)環(huán)境和部分模型參數(shù).本實(shí)驗(yàn)采用的是深度學(xué)習(xí)中的tensorflow框架,模型訓(xùn)練環(huán)境配置如表6所示.
表6 訓(xùn)練環(huán)境配置
Table 6 Training environment configuration
操作系統(tǒng)Ubuntu16.04GPU8*Tesla V100GPU顯存16Gpython3.6tensorflow1.14.0
在訓(xùn)練醫(yī)療實(shí)體分類模型KBLCC進(jìn)行醫(yī)療實(shí)體分類任務(wù)的過(guò)程中,通過(guò)進(jìn)行大量的對(duì)比實(shí)驗(yàn)以及對(duì)模型中的參數(shù)進(jìn)行微調(diào),依據(jù)實(shí)驗(yàn)效果最終將模型各部分參數(shù)設(shè)置如表7所示.
本文基于構(gòu)建的醫(yī)療領(lǐng)域語(yǔ)料庫(kù)進(jìn)行了以下5組對(duì)比實(shí)驗(yàn)觀察實(shí)驗(yàn)效果,實(shí)驗(yàn)結(jié)果如表8所示.
實(shí)驗(yàn)1.采用張應(yīng)成等人[25]提出的BILSTM-CRF模型,在BERT模型出現(xiàn)之前是常用的實(shí)體抽取方法.
實(shí)驗(yàn)2.采用BERT-CRF模型,采用BERT模型生成字向量,將生成的字向量輸入CRF模型進(jìn)行訓(xùn)練,完成醫(yī)療實(shí)體分類任務(wù).
表7 模型參數(shù)設(shè)置
Table 7 Model parameter settings
參數(shù)名稱參數(shù)值BILSTM模型層數(shù)1CNN模型層數(shù)4batch-size32dropout值0.5max_seq_length202learning_rate1e-5
實(shí)驗(yàn)3.使用王子牛等人[14]提出的BERT-BILSTM-CRF模型,BERT模型生成字向量,BILSTM-CRF模型訓(xùn)練,這也是目前最為常用的實(shí)體抽取模型,在眾多領(lǐng)域的實(shí)體抽取任務(wù)中取得了良好的效果.
實(shí)驗(yàn)4.采用BRET-BILSTM-CNN-CRF模型,在實(shí)驗(yàn)2模型的基礎(chǔ)上加入4層CNN,學(xué)習(xí)局部特征以提高準(zhǔn)確率.
實(shí)驗(yàn)5.采用KBLCC方法將醫(yī)療領(lǐng)域?qū)嶓w關(guān)鍵字特征融入BERT-BILSTM-CNN-CRF混合模型進(jìn)行實(shí)體分類任務(wù).
表8 模型實(shí)驗(yàn)結(jié)果
Table 8 Model experiment results
編號(hào)模型名稱指標(biāo)(%)PRF11BILSTM-CRF84.0785.9885.022BERT-CRF86.8390.2788.513BERT-BILSTM-CRF86.6390.8588.694BERT-BILSTM-CNN-CRF87.6490.6689.125KBLCC89.3892.4690.89
首先對(duì)實(shí)驗(yàn)1和實(shí)驗(yàn)3結(jié)果進(jìn)行比較,實(shí)驗(yàn)3在實(shí)驗(yàn)1的基礎(chǔ)上采用BERT模型進(jìn)行字嵌入效果有較大的提升,準(zhǔn)確率、召回率、F1值分別提升了2.56%、4.87%和3.67%,可見(jiàn)采用BERT模型進(jìn)行字嵌入能夠較大的提升實(shí)驗(yàn)效果.實(shí)驗(yàn)2和實(shí)驗(yàn)3的實(shí)驗(yàn)結(jié)果進(jìn)行比較,實(shí)驗(yàn)3在實(shí)驗(yàn)3的基礎(chǔ)上加入BILSTM模型在召回率和F1值上都略有提升分別提升了0.58%和0.18%.實(shí)驗(yàn)4加入了CNN后實(shí)驗(yàn)效果較實(shí)驗(yàn)3也有所提升,準(zhǔn)確率提升了1.04%,F(xiàn)1值提升了0.43%,驗(yàn)證了在特征提取層加入CNN提取局部特征對(duì)實(shí)驗(yàn)效果的促進(jìn)作用.實(shí)驗(yàn)5在實(shí)驗(yàn)4基礎(chǔ)上融入實(shí)體關(guān)鍵字特征,在各個(gè)評(píng)測(cè)指標(biāo)上效果都有了一定的提升,其中召回率提升了1.8%,準(zhǔn)確率提升了1.74%,F(xiàn)1值提升了1.77%,在進(jìn)行對(duì)比實(shí)驗(yàn)中KBLCC方法取得了最好的實(shí)驗(yàn)結(jié)果,可見(jiàn)融入實(shí)體關(guān)鍵字特征的KBLCC方法是有效的,能夠在較大程度上提升醫(yī)療實(shí)體分類實(shí)驗(yàn)效果.
圖4為模型結(jié)果柱狀圖,圖中展示了5組實(shí)驗(yàn)的準(zhǔn)確率、召回率和F1值.通過(guò)柱狀圖更加直觀的展示了5個(gè)對(duì)比實(shí)驗(yàn)的實(shí)驗(yàn)結(jié)果以及3個(gè)評(píng)價(jià)指標(biāo)的變化情況,從總體來(lái)看KBLCC方法的實(shí)驗(yàn)效果最好,5個(gè)實(shí)驗(yàn)的實(shí)驗(yàn)效果總體上呈上升趨勢(shì),每種實(shí)驗(yàn)方法對(duì)實(shí)驗(yàn)效果的提升有所不同,其中采用BERT生成字向量的實(shí)驗(yàn)效果提升最大,在都采用BERT模型進(jìn)行字嵌入的實(shí)驗(yàn)2、實(shí)驗(yàn)3、實(shí)驗(yàn)4和實(shí)驗(yàn)5中,加入實(shí)體關(guān)鍵字特征的實(shí)驗(yàn)5實(shí)驗(yàn)效果提升最大.
圖4 模型實(shí)驗(yàn)結(jié)果柱狀圖Fig.4 Histogram of model experiment results
為了更好的展示KBLCC方法在進(jìn)行醫(yī)療實(shí)體抽取并分類任務(wù)中的準(zhǔn)確性,表9中列舉了實(shí)驗(yàn)過(guò)程中的部分樣例,從表9可以看出,第1個(gè)例子BERT-BILSTM-CNN-CRF方法抽取的檢驗(yàn)指標(biāo)實(shí)體為網(wǎng)織紅細(xì)胞數(shù),抽取結(jié)果并不準(zhǔn)確,而融入了實(shí)體關(guān)鍵字特征“紅”、“數(shù)”、“值”后的KBLCC方法抽取出更為準(zhǔn)確的檢驗(yàn)指標(biāo)實(shí)體為網(wǎng)織紅細(xì)胞數(shù)絕對(duì)值,在第2個(gè)例子中融入實(shí)體關(guān)鍵字特征“紅”、“數(shù)”抽取出的檢驗(yàn)指標(biāo)實(shí)體紅細(xì)胞計(jì)數(shù)要比未融合實(shí)體關(guān)鍵字特征抽取出的檢驗(yàn)指標(biāo)實(shí)體紅細(xì)胞更加準(zhǔn)確,第3個(gè)例子中KBLCC方法抽取出的癥狀實(shí)體為情緒波動(dòng)大比未融合實(shí)體關(guān)鍵字特征模型抽取出的情緒波動(dòng)更加準(zhǔn)確,第4個(gè)例子中采用BERT-BILSTM-CNN-CRF模型抽取出癥狀實(shí)體尿,所抽取的實(shí)體及實(shí)體的類別都不準(zhǔn)確,而采用KBLCC模型融入了實(shí)體關(guān)鍵字特征“比”抽取出檢驗(yàn)指標(biāo)類型的實(shí)體尿比重,得到了正確的 實(shí)體及實(shí)體正確的類別.顯然采用KBLCC模型能夠得到更好的抽取效果,能夠更加準(zhǔn)確的對(duì)醫(yī)療實(shí)體進(jìn)行抽取并分類.
表9 實(shí)驗(yàn)部分樣例展示
Table 9 Sample display of experimental part
實(shí)驗(yàn)?zāi)P蜆?biāo)注結(jié)果抽取結(jié)果BERT-BIL-STM-CNN-CRF純 B-jb/紅 I-jb/細(xì) I-jb/胞 I-jb/再 I-jb/生 I-jb/障 I-jb/礙 I-jb/性 I-jb貧 I-jb/血 I-jb/患 O/者 O/網(wǎng) B-zb/織 I-zb/紅 I-zb/細(xì) I-zb/胞 I-zb數(shù) I-zb/絕 O/對(duì) O/值 O/減 O/少 O/。O純紅細(xì)胞再生障礙性貧血;網(wǎng)織紅細(xì)胞數(shù)KBLCC純 B-jb/紅 I-jb/細(xì) I-jb/胞 I-jb/再 I-jb/生 I-jb/障 I-jb/礙 I-jb/性 I-jb貧 I-jb/血 I-jb/患 O/者 O/網(wǎng) B-zb/織 I-zb/紅 I-zb/細(xì) I-zb/胞 I-zb數(shù) I-zb/絕 I-zb/對(duì) I-zb/值 I-zb/減 O/少 O/。O純紅細(xì)胞再生障礙性貧血;網(wǎng)織紅細(xì)胞數(shù)絕對(duì)值BERT-BILSTM-CNN-CRF紅 B-zb/細(xì) I-zb/胞 I-zb/計(jì) O/數(shù) I-zb/減 O/少 O/及 O/血 B-zb/紅 I-zb/蛋 I-zb/白 I-zb/降 O/低 O/,O/提 O/示 O/可 O/能 O/為 O/各 O/種 O/貧 B-jb/血 I-jb/性 I-jb/疾 I-jb/病 I-jb/。O紅細(xì)胞;血紅蛋白;貧血性疾病KBLCC紅 B-zb/細(xì) I-zb/胞 I-zb/計(jì) I-zb/數(shù) I-zb/減 O/少 O/及 O/血 B-zb/紅 I-zb/蛋 I-zb/白 I-zb/降 O/低 O/,O/提 O/示 O/可 O/能 O/為 O/各 O/種 O/貧 B-jb/血 I-jb/性 I-jb/疾 I-jb/病 I-jb/。O紅細(xì)胞計(jì)數(shù);血紅蛋白;貧血性疾病BERT-BILSTM-CNN-CRF根 O/據(jù) O/你 O/描 O/述 O/情 B-zz/緒 I-zz/波 I-zz/動(dòng) I-zz/大 O/的 O/情 O/況 O/,O/考 O/慮 O/應(yīng) O/該 O/是 O/屬 O/于 O/更 B-jb/年 I-jb/期 I-jb/綜 I-jb/合 I-jb/癥 I-jb/。O/情緒波動(dòng);更年期綜合癥KBLCC根 O/據(jù) O/你 O/描 O/述 O/情 B-zz/緒 I-zz/波 I-zz/動(dòng) I-zz/大 I-zz/的 O/情 O/況 O/,O/考 O/慮 O/應(yīng) O/該 O/是 O/屬 O/于 O/更 B-jb/年 I-jb/期 I-jb/綜 I-jb/合 I-jb/癥 I-jb/。O/情緒波動(dòng)大;更年期綜合癥BERT-BILSTM-CNN-CRF尿 B-zz/比 O/重 O/降 O/ 低O/,O/提 O/示 O/可 O/能 O/為 O/尿 B-jb/崩 I-jb/癥 I-jb/引O/起 O/的 O/多 B-zz/尿 I-zz/。O/尿;尿崩癥;多尿KBLCC尿 B-zb/比 I-zb /重 I-zb /降 O/ 低O/,O/提 O/示 O/可 O/能 O/為 O/尿 B-jb/崩 I-jb/癥 I-jb/引O/起 O/的 O/多 B-zz/尿 I-zz/。O/尿比重;尿崩癥;多尿
在采用KBLCC方法抽取醫(yī)療實(shí)體中的檢驗(yàn)指標(biāo)、疾病和癥狀這3種類別實(shí)體的過(guò)程中,通過(guò)對(duì)比實(shí)驗(yàn)發(fā)現(xiàn)加入實(shí)體關(guān)鍵字特征對(duì)不同類別的實(shí)體抽取效果的提升程度有所不同.為了觀察分析加入實(shí)體關(guān)鍵字特征對(duì)這3類實(shí)體抽取的影響情況,將實(shí)驗(yàn)4、實(shí)驗(yàn)5中不同類別實(shí)體的實(shí)驗(yàn)結(jié)果展示如表10所示.
表10 實(shí)驗(yàn)3、實(shí)驗(yàn)4中不同實(shí)體類別實(shí)驗(yàn)結(jié)果
Table 10 Experimental results of different entity types in experiments three and four
編號(hào)實(shí)體類型和模型名稱指標(biāo)(%)P RF11檢驗(yàn)指標(biāo)BERT-BILSTM-CNN-CRF84.1788.2686.172檢驗(yàn)指標(biāo)KBLCC87.8991.0989.463疾病BERT-BILSTM-CNN-CRF90.1293.0091.544疾病KBLCC91.1193.7592.415癥狀BERT-BILSTM-CNN-CRF87.9489.7488.836癥狀KBLCC88.3792.0190.15
由表10可知,融入實(shí)體關(guān)鍵字后對(duì)檢驗(yàn)指標(biāo)、疾病、癥狀的抽取效果都有一定的提升.為了更直觀地展現(xiàn)出加入實(shí)體 關(guān)鍵字特征對(duì)這3類實(shí)體抽取效果的影響,將加入實(shí)體關(guān)鍵字后不同實(shí)體類別的評(píng)價(jià)指標(biāo)的提升值繪制成了折線圖,如圖5所示.
圖5 融入實(shí)體關(guān)鍵字不同實(shí)體類別提升圖Fig.5 Integrate entity keywords into different entity categories
圖5中橫坐標(biāo)從左到右分別為準(zhǔn)確率、召回率、F1值的提升值,折線圖展示了加入實(shí)體關(guān)鍵字特征后檢驗(yàn)指標(biāo)、疾病、癥狀的提升情況.通過(guò)折線圖可以清晰的看出,加入實(shí)體關(guān)鍵字特征后實(shí)驗(yàn)效果都有所提升,其中檢驗(yàn)指標(biāo)的各項(xiàng)評(píng)價(jià)指標(biāo)提升最多,相對(duì)來(lái)說(shuō)疾病的效果提升較小.同時(shí)從表10中可知,抽取疾病實(shí)體的各項(xiàng)評(píng)價(jià)指標(biāo)分值最高,而檢驗(yàn)指標(biāo)的分值最低.檢驗(yàn)指標(biāo)這類實(shí)體的表述相對(duì)復(fù)雜,且種類較為繁多、名稱偶有生僻,如麝香草酚濁度試驗(yàn)、天門(mén)冬氨酸氨基轉(zhuǎn)移酶等,容易導(dǎo)致抽取效果較低,檢驗(yàn)指標(biāo)實(shí)體中也包含著較多的關(guān)鍵字,這些關(guān)鍵字能夠幫助抽取出醫(yī)療實(shí)體,因此加入關(guān)鍵字特征后效果明顯.通過(guò)進(jìn)行對(duì)比實(shí)驗(yàn)以及對(duì)檢驗(yàn)指標(biāo)、疾病、癥狀3類實(shí)體抽取結(jié)果進(jìn)行分析,可知使用KBLCC模型進(jìn)行醫(yī)療領(lǐng)域?qū)嶓w分類能夠提高準(zhǔn)確率、召回率和F1值.
KBLCC方法旨在研究醫(yī)療領(lǐng)域?qū)嶓w抽取及分類問(wèn)題,針對(duì)目前存在的中文醫(yī)療領(lǐng)域公開(kāi)數(shù)據(jù)集較少以及在實(shí)體抽取研究中字符級(jí)特征較少等問(wèn)題,構(gòu)建了一個(gè)醫(yī)療領(lǐng)域?qū)嶓w抽取人工標(biāo)注語(yǔ)料庫(kù),提出一種融合實(shí)體關(guān)鍵字特征的醫(yī)療領(lǐng)域?qū)嶓w分類方法.通過(guò)對(duì)大量醫(yī)療領(lǐng)域數(shù)據(jù)進(jìn)行觀察,發(fā)現(xiàn)待抽取的醫(yī)療實(shí)體中通常包含著一些明顯的關(guān)鍵字信息,采用TF-IDF輔助構(gòu)建關(guān)鍵字表,將這些關(guān)鍵字作為特征輸入模型,采用BERT模型進(jìn)行文本向量化操作生成字向量,將字向量輸入BILSTM-CNN混合模型學(xué)習(xí)特征,再經(jīng)過(guò)CRF層進(jìn)行序列標(biāo)注,最終實(shí)現(xiàn)醫(yī)療實(shí)體分類.經(jīng)過(guò)對(duì)比實(shí)驗(yàn),KBLCC方法取得了最好的實(shí)驗(yàn)結(jié)果.因此,采用KBLCC方法能夠有效地解決醫(yī)療領(lǐng)域?qū)嶓w抽取及分類問(wèn)題,能夠提升實(shí)驗(yàn)結(jié)果的準(zhǔn)確性.本文尚未研究關(guān)鍵字實(shí)體所處的位置對(duì)實(shí)體分類問(wèn)題的影響,希望在后續(xù)的研究過(guò)程中能夠?qū)?shí)驗(yàn)進(jìn)一步的完善,達(dá)到更好的實(shí)驗(yàn)效果.文中提出的KBLCC方法所做實(shí)驗(yàn)基于醫(yī)療領(lǐng)域數(shù)據(jù)集,驗(yàn)證了在醫(yī)療領(lǐng)域的有效性和準(zhǔn)確性.在解決其他領(lǐng)域的實(shí)體抽取及分類問(wèn)題時(shí),考慮到各領(lǐng)域?qū)嶓w一般都具有該領(lǐng)域的關(guān)鍵字特征,因而本文提出的KBLCC方法也可供其他領(lǐng)域借鑒,這也將成為本文后續(xù)的研究?jī)?nèi)容.