劉威,馬磊*,李凱,李蓉
(1.昆明理工大學(xué)信息工程與自動(dòng)化學(xué)院,云南 昆明 650500;2.云南省第一人民醫(yī)院信息科,云南 昆明 650500;3.云南省第一人民醫(yī)院科研科,云南 昆明 650500)
面向醫(yī)學(xué)領(lǐng)域的中文命名實(shí)體識(shí)別旨在從醫(yī)學(xué)領(lǐng)域非結(jié)構(gòu)化中文文本中提取具有特定指代意義的實(shí)體,并識(shí)別它們的類型,如癥狀、藥品名稱、身體部位等。該任務(wù)是準(zhǔn)確理解醫(yī)學(xué)領(lǐng)域文本語義的基礎(chǔ),同時(shí)也對(duì)面向醫(yī)學(xué)領(lǐng)域的信息檢索、智能問答等下游任務(wù)起著重要的作用。與英文的命名實(shí)體識(shí)別不同,由于中文句子中表達(dá)含義的字或詞并不是自然分割的,中文命名實(shí)體識(shí)別的難度更大。一般的中文命名實(shí)體識(shí)別(NER)問題通常被形式化為序列標(biāo)注問題,將文本劃分為多個(gè)Token,然后將Token初始化為向量輸入到神經(jīng)網(wǎng)絡(luò)模型中,最終模型輸出文本中每個(gè)Token 對(duì)應(yīng)的標(biāo)簽。常用的Token 有字符和詞兩種形式[1]。然而,由于中文字符本身不具備中文詞語那樣相對(duì)獨(dú)立的語義,基于字符的模型可能會(huì)面臨所識(shí)別的實(shí)體不完整和實(shí)體類別錯(cuò)誤等問題。為解決這一問題,研究人員主要考慮如何在基于字符的輸入基礎(chǔ)上引入詞的信息。如文獻(xiàn)[2]提出的Lattice 模型,在每個(gè)字符嵌入基礎(chǔ)上融合詞語嵌入,將匹配到的詞的嵌入以特有的方法融合到字符嵌入上以增強(qiáng)字符表示,文獻(xiàn)[3]提出SoftLexicon 的方法,將字符匹配到的詞根據(jù)在詞語中出現(xiàn)的位置分類成4 個(gè)詞集合,并以詞頻的方法對(duì)4 個(gè)詞集合的詞嵌入進(jìn)行融合,以提升模型的訓(xùn)練速度及判斷實(shí)體邊界和類型的能力。上述方法本質(zhì)上都是利用外部知識(shí)對(duì)字符信息進(jìn)行增強(qiáng),說明對(duì)于基于字符的中文命名實(shí)體識(shí)別來說,字符信息的增強(qiáng)是一種有效的手段。
對(duì)于醫(yī)學(xué)領(lǐng)域命名實(shí)體識(shí)別來說,組成領(lǐng)域?qū)嶓w的字符有自身的特點(diǎn),主要表現(xiàn)為2 個(gè)方面:
1)很多醫(yī)學(xué)領(lǐng)域中文字符的字形結(jié)構(gòu)具有獨(dú)立的語意,代表了特定的實(shí)體含義。具體來說,中文是一種象形文字,由形旁和聲旁兩部分組成,形旁的表義功能比較強(qiáng),具有相同形旁的中文字符有相近的實(shí)體含義。漢字中的形旁“艸”,俗稱草字頭,由“艸”組成的字,大多與藥品實(shí)體有關(guān),比如“葡萄糖”、“蓮花清瘟”、“感冒藥”等。由形旁“月”組成的字,大都跟身體部位有關(guān),如“膽囊”、“肝臟”、“腎臟”等。顯然,這種字形信息的利用能增加中文字符對(duì)于醫(yī)學(xué)實(shí)體邊界和類別的表征能力。
2)特定的中文字符組合成的醫(yī)學(xué)術(shù)語也代表了特定的實(shí)體含義。“肝”組成“脂肪肝”和“肝膿腫”等術(shù)語。這些術(shù)語需要從整個(gè)醫(yī)學(xué)文本數(shù)據(jù)集中獲取。對(duì)于字形多粒度信息的獲取,一方面可以從空間域處理的角度將整個(gè)字符視為一幅二維圖像,通過圖像特征編碼器提取漢字在字符中的空間形態(tài)信息,另一方面從文本的角度可以將字符拆解為形旁和其他部件結(jié)構(gòu),通過卷積神經(jīng)網(wǎng)絡(luò)進(jìn)一步獲取形旁在字符中的結(jié)構(gòu)及序列信息。對(duì)于領(lǐng)域詞信息,可以根據(jù)大規(guī)模醫(yī)學(xué)語料庫獲得專業(yè)術(shù)語集合,并根據(jù)術(shù)語的上下文得到術(shù)語嵌入。
基于以上分析,本文提出通過對(duì)字符的多粒度字形進(jìn)行增強(qiáng),從而改善基于中文字符的醫(yī)學(xué)命名實(shí)體識(shí)別模型的性能。本文主要貢獻(xiàn)有:
1)提出一種綜合利用漢字多粒度字形信息的NER 模型,通過融入中文字符的多粒度字形信息和領(lǐng)域術(shù)語信息來增強(qiáng)字符表示,增強(qiáng)字符的語義和潛在邊界信息,使模型獲得更好的實(shí)體識(shí)別能力。
2)提出并利用交互門控機(jī)制控制字符多粒度字形信息和領(lǐng)域詞信息對(duì)于字符表征的貢獻(xiàn)程度,綜合考慮到漢字的領(lǐng)域信息和漢字底層信息并進(jìn)行門控過濾,從而更好地表示輸入句子中漢字的潛在含義。
3)在兩個(gè)中文醫(yī)學(xué)NER 基準(zhǔn)數(shù)據(jù)集上對(duì)所提出的方法進(jìn)行評(píng)估,驗(yàn)證該模型對(duì)特定領(lǐng)域和密切相關(guān)實(shí)體的表示能力。
醫(yī)療領(lǐng)域的命名實(shí)體識(shí)別方法在早期主要采用傳統(tǒng)機(jī)器學(xué)習(xí)方法。一些研究者利用支持向量機(jī)(SVM)和條件隨機(jī)場(chǎng)(CRF)等機(jī)器學(xué)習(xí)算法來識(shí)別臨床實(shí)體。例如,文獻(xiàn)[4]開發(fā)了基于SVM 的NER 系統(tǒng),用于識(shí)別醫(yī)院收費(fèi)摘要中的臨床實(shí)體。文獻(xiàn)[5]為了提取詞典特征,構(gòu)建了一個(gè)醫(yī)學(xué)詞典,對(duì)基于CRF 的中文電子病歷命名實(shí)體識(shí)別進(jìn)行了深入研究。文獻(xiàn)[6]對(duì)結(jié)構(gòu)化支持向量機(jī)、最大熵CRF 和支持向量機(jī)的字袋、詞袋、詞性、信息量等特征進(jìn)行了對(duì)比實(shí)驗(yàn)。文獻(xiàn)[7]采用雙重分解模型,兼顧分詞和實(shí)體識(shí)別。文獻(xiàn)[8]提出一種基于條件隨機(jī)場(chǎng)的醫(yī)學(xué)文本藥物名稱識(shí)別方法。盡管醫(yī)學(xué)命名實(shí)體識(shí)別的研究已經(jīng)取得了很大的進(jìn)展,但基于機(jī)器學(xué)習(xí)的方法還存在許多問題,模型效果容易受稀疏數(shù)據(jù)的影響,擴(kuò)展性差,這些問題無法得到很好的解決。
近年來,深度學(xué)習(xí)迅速發(fā)展并進(jìn)入到公眾的視野。對(duì)于醫(yī)學(xué)神經(jīng)網(wǎng)絡(luò),文獻(xiàn)[9]使用神經(jīng)網(wǎng)絡(luò)對(duì)大量的醫(yī)學(xué)文本進(jìn)行訓(xùn)練,生成詞向量,然后為神經(jīng)網(wǎng)絡(luò)構(gòu)建多層CNN。文獻(xiàn)[10]使用雙向長(zhǎng)短期記憶(BiLSTM)作為基本的NER 結(jié) 構(gòu)。文 獻(xiàn)[11]將BiLSTM 和CRF 相結(jié)合,在藥物名稱識(shí)別任務(wù)中取得了良好的效果。之后,人們引入注意機(jī)制來突出輸入序列中的重要信息。文獻(xiàn)[12]構(gòu)建了一個(gè)將BiLSTM-CRF 與文檔級(jí)復(fù)合命名實(shí)體識(shí)別中的注意力機(jī)制相結(jié)合的模型,并通過引入注意力機(jī)制來獲取全局信息,以確保文檔級(jí)數(shù)據(jù)中同一實(shí)體標(biāo)注的一致性。醫(yī)學(xué)文本包含的信息錯(cuò)綜復(fù)雜,包含了大量的領(lǐng)域詞匯和專業(yè)知識(shí),這就需要更有效的方法來解決醫(yī)學(xué)專家的任務(wù)。另外,一些研究還關(guān)注于聯(lián)合提取醫(yī)學(xué)實(shí)體和關(guān)系。這些研究結(jié)果表明,深度學(xué)習(xí)在命名實(shí)體識(shí)別領(lǐng)域具有廣闊的應(yīng)用前景。文獻(xiàn)[13]提出了一種BiLSTM-CRF 模型,并將其廣泛應(yīng)用于醫(yī)療NER 任務(wù)[14]。我國電子病歷的NER有其特殊性,我國企業(yè)資源管理機(jī)構(gòu)結(jié)構(gòu)復(fù)雜,實(shí)體類型眾多,具有一定的領(lǐng)域特殊性。文獻(xiàn)[15]使用了變形Transformers 的雙向編碼器表示(BERT)結(jié)構(gòu),并利用未標(biāo)記的中文醫(yī)療文本進(jìn)行預(yù)先訓(xùn)練,實(shí)現(xiàn)了中國臨床命名實(shí)體識(shí)別。文獻(xiàn)[16]從Transformer 中的策略和思想入手,利用主流經(jīng)典模型研究了如何提高傳統(tǒng)卷積神經(jīng)網(wǎng)絡(luò)的精度,采用了BERT 預(yù)訓(xùn)練漢語模型以提高中醫(yī)神經(jīng)網(wǎng)絡(luò)的精度。文獻(xiàn)[17]提出一種用于醫(yī)學(xué)序列標(biāo)記任務(wù)的預(yù)訓(xùn)練并加入池化上下文嵌入模型。這些研究都致力于解決中文醫(yī)療文本處理中的問題,有助于提高臨床數(shù)據(jù)的建模、關(guān)系抽取和醫(yī)學(xué)序列標(biāo)注任務(wù)等的準(zhǔn)確性和效率。
在醫(yī)學(xué)領(lǐng)域,由于一般領(lǐng)域?qū)τ?xùn)練語料庫的影響,目前主流的NER 方法沒有考慮漢字字形的空間和偏旁部首序列兩個(gè)方面底層的字符信息,并引入可能包含冗余成分的詞信息。從這一角度出發(fā),本文使用多粒度的字形信息增強(qiáng)字符潛在邊界和語意信息,提升了基于字符NER 模型的性能。
針對(duì)基于字符的NER 模型中字粒度語意信息的不足和領(lǐng)域詞信息冗余問題,本文提出使用字形和部首嵌入增強(qiáng)字粒度的信息,并使用交互門控機(jī)制來過濾領(lǐng)域詞信息中噪聲的方法。本文提出方法的總體架構(gòu)如圖1 所示。首先將輸入序列中的每個(gè)字符通過預(yù)先訓(xùn)練的字嵌入表映射成向量表示,接著與字符在領(lǐng)域詞典上匹配到的詞進(jìn)行聯(lián)合嵌入,得到豐富的語意知識(shí),并使用兩種不同的卷積網(wǎng)絡(luò)分別對(duì)字符的字形信息進(jìn)行特征抽取,將多粒度字形特征與包含豐富醫(yī)學(xué)知識(shí)的字符表示使用交互門控機(jī)制來得到最終輸入,然后送入到序列編碼層和CRF 層,以獲得最終的預(yù)測(cè)。
圖1 基于多粒度字形增強(qiáng)的中文命名實(shí)體識(shí)別網(wǎng)絡(luò)框架Fig.1 Framework of Chinese named entity recognition network based on multi-granularity glyph enhancement
簡(jiǎn)體中文是最容易寫的文字,但不可避免地丟失了最重要的象形文字信息,比如意義不相關(guān)的“未”和“末”在形狀上非常相似,但在早期歷史文字中,它們的形狀卻截然不同,所以使用多種不同字體來補(bǔ)充漢字的象形信息。首先,將單個(gè)字符視為一副二維圖像,從空間域處理的角度,通過圖像特征編碼器來獲得字符的字形結(jié)構(gòu)嵌入。參考文獻(xiàn)[18]模型的做法,分析漢字字符圖像較小,使用更小的濾波器和通道數(shù)捕獲更低維的圖形特征,因此不太容易過擬合。如圖2 所示,將字符轉(zhuǎn)換為對(duì)應(yīng)的6 種不同字體的灰度圖像,其中第j種字體的大小為12×12 像素的8 bit 灰度圖像。
圖2 字形結(jié)構(gòu)特征提取Fig.2 Feature extraction of glyph structure
將不同圖像矩陣進(jìn)行拼接,得到字符ci的結(jié)構(gòu)圖像
其中:Concat 表示拼接操作。然后使用卷積核大小為5×5,有384 個(gè)輸出通道的卷積操作Conv1,捕獲較低級(jí)別的圖形特征,得到隱藏層向量
使用模板大小為4×4 的Max-Pooling 操作,將的分辨率從8×8 像素降低到2×2 像素;通過一個(gè)卷積核大小為1×1 和ds個(gè)輸出通道的卷積操作Conv2,得到隱藏層向量
將送入卷積核大小為2 的群卷積操作,并進(jìn)行維度轉(zhuǎn)化操作reshape,得到該字符的字形結(jié)構(gòu)嵌入∈Rds。
字符的形旁本身具有較強(qiáng)的實(shí)體指示作用,而這個(gè)作用僅用字形結(jié)構(gòu)信息可能無法得到完全體現(xiàn)。因此,需要進(jìn)一步強(qiáng)調(diào)形旁的作用。本文將字符拆分為形旁和其他的部件,然后用卷積神經(jīng)網(wǎng)絡(luò)來提取字符的這種特征向量。
首先將第i個(gè)字符ci拆分為K個(gè)部分,Oi=如果某個(gè)字符成分的長(zhǎng)度不足K,則將空缺位置用PAD 來填充。然后對(duì)每個(gè)字符成分進(jìn)行隨機(jī)嵌入操作Er:
將該字符隱向量序列中每一個(gè)字符成分所對(duì)應(yīng)的向量進(jìn)行Max-Pooling,然后送入一個(gè)全連接層fc進(jìn)行維度變換,得到該字符的字形序列嵌入
基于字符的中文命名實(shí)體識(shí)別模型通常采用在大規(guī)模語料上所訓(xùn)練的字符向量來作為字符的初始嵌入[19]。這種表征通常蘊(yùn)含了字符的上下文信息,即也是一種字符粒度的局部信息。使用預(yù)訓(xùn)練字符嵌入查找表Ec來獲得字符的Word2Vec 向量。字符嵌入表是在一個(gè)大量的中文語料Gigaword 上使用Word2Vec 模型訓(xùn)練得到的。通過Ec得到每一個(gè)字符ci的嵌入向量:
在獲得字符的3 種局部向量后,需要將三者結(jié)合來獲得字符的表征。具體地,首先將進(jìn)行拼接,得到初始拼接向量
然后將進(jìn)行以下兩次線性變換和激活,得到隱向量
將隱向量作為融合的漢字字形多粒度表征。
首先收集醫(yī)學(xué)語料(包括醫(yī)渡云4K、中文醫(yī)學(xué)問答、中文醫(yī)患問答、天池中文醫(yī)療信息等數(shù)據(jù)集)并與本文使用的兩個(gè)數(shù)據(jù)集合并,然后使用北大開源分詞工具包pkuseg 里的醫(yī)學(xué)領(lǐng)域分詞工具對(duì)收集到的語料進(jìn)行分詞操作,分詞后的語料包含許多醫(yī)學(xué)術(shù)語,最后使用Word2Vec 的Skip-Gram 模型得到詞嵌入,設(shè)置窗口大小為4,去掉數(shù)量少于5 的詞。通過以上操作,得到一個(gè)醫(yī)學(xué)領(lǐng)域詞典D,以及每個(gè)詞的詞嵌入查找表Ed,按照文獻(xiàn)[3]提出的方法得到每個(gè)字符的領(lǐng)域詞嵌入
在獲得字符的多粒度表征和領(lǐng)域詞嵌入后,由于兩者相對(duì)可能會(huì)存在信息冗余,因此利用交互門控機(jī)制對(duì)兩者的特征進(jìn)行信息篩選,從而得到更合理的綜合表征,計(jì)算公式如下:
最后將多粒度表征和領(lǐng)域詞表征的門控與其對(duì)應(yīng)的表征相乘并進(jìn)行拼接,得到模型自適應(yīng)學(xué)習(xí)后的綜合表征的
通過以上操作,增強(qiáng)了字符所蘊(yùn)含的字形多粒度和領(lǐng)域信息。基于字符的NER 是一個(gè)連續(xù)的標(biāo)記任務(wù),相鄰字符之間存在很強(qiáng)的約束關(guān)系。因此,還應(yīng)該考慮字符在句子序列中的上下文信息。將句子序列送入BiLSTM 網(wǎng)絡(luò)來提取字符的序列表征hi∈Rdh:
在序列標(biāo)簽輸出階段,使用CRF作為解碼器。CRF會(huì)基于前一個(gè)標(biāo)簽的結(jié)果影響當(dāng)前標(biāo)簽的結(jié)果。例如,B-Drug、I-Symptom 就是一個(gè)無效序列。字符通過BiLSTM 編碼后得到隱向量hi,使用H來表示輸入序列的隱向量矩陣,然后送到CRF 中,通過最小化負(fù)最大似然函數(shù)找到概率最大的標(biāo)簽序列。計(jì)算公式如下:
其中:?(S,y)為觀測(cè)序列與標(biāo)簽序列之間的發(fā)射概率與標(biāo)簽序列轉(zhuǎn)移分?jǐn)?shù)之和;S表示觀測(cè)序列;y為真實(shí)的標(biāo) 簽;Wt∈Rdh×tags和bt∈Rn×tags是線性 層的參數(shù);n是句子中的字符數(shù);tags 是實(shí)體標(biāo)簽數(shù);Y表示有效標(biāo)簽序列的集合。
最后使用負(fù)對(duì)數(shù)似然函數(shù)來計(jì)算標(biāo)簽分類的損失值:
使用兩個(gè)數(shù)據(jù)集:一個(gè)是中國計(jì)算語言學(xué)大會(huì)(CCL)提供的數(shù)據(jù)集IMCS21,包括2 000 組醫(yī)患對(duì)話案例樣本,覆蓋10 種兒科疾病,8 萬余句對(duì)話,樣本平均對(duì)話次數(shù)為40 次,平均每個(gè)樣本的對(duì)話字?jǐn)?shù)為523 個(gè),其數(shù)據(jù)集包含5 種實(shí)體類型,分別是癥狀、藥品名稱、藥品類型、檢查和操作,訓(xùn)練集數(shù)據(jù)15 000 條,驗(yàn)證集數(shù)據(jù)5 000 條,測(cè)試集數(shù)據(jù)3 000 條;另一個(gè)是中文醫(yī)療信息處理挑戰(zhàn)榜里的中文醫(yī)學(xué)命名實(shí)體識(shí)別(CMeEE)數(shù)據(jù)集,包含47 194 個(gè)句子和938 個(gè)文件,平均每個(gè)文件的字?jǐn)?shù)為2 355,數(shù)據(jù)集包含504種常見的兒科疾病、7 085種身體部位、12 907種臨床表現(xiàn)、4 354 種醫(yī)療程序等醫(yī)學(xué)實(shí)體。
本文采用準(zhǔn)確率(P)、召回率(R)、F1(F1)值作為評(píng)價(jià)指標(biāo)來衡量模型性能,計(jì)算公式如式(21)~式(23)所示:
其中:N為模型預(yù)測(cè)正確的實(shí)體數(shù);M為模型預(yù)測(cè)實(shí)體總數(shù);Z為數(shù)據(jù)中標(biāo)注實(shí)體總數(shù)。
基于PyTorch 框架,GPU 為NVIDIA GTX 3090,網(wǎng)絡(luò)參數(shù)優(yōu)化器為Adam,學(xué)習(xí)率設(shè)置為0.001 5,并且逐漸遞減。采用優(yōu)化函數(shù)為Adam,初始學(xué)習(xí)率大小為0.001 5,學(xué)習(xí)率縮減步長(zhǎng)lr_decay 設(shè)置為0.05,dropout 率設(shè)置為0.5。模型參數(shù)設(shè)置如表1 所示。
表1 實(shí)驗(yàn)參數(shù)設(shè)置 Table 1 Experimental parameter settings
BiLSTM-CRF[20]:使 用BiLSTM 將字符 序列進(jìn)行編碼后輸入到CRF 層進(jìn)行解碼,得到序列標(biāo)簽。
Lattice[2]:對(duì)句子中的所有字符和詞典識(shí)別的潛在詞匯進(jìn)行編碼,從而將潛在詞信息整合到基于字符的LSTM-CRF 中。
WC-LSTM[21]:對(duì)Lattice 進(jìn)行了改進(jìn),將以每個(gè)字符為結(jié)尾的詞匯信息進(jìn)行靜態(tài)編碼表示,即每個(gè)字符引入的詞匯表征是不變的,并且如果沒有對(duì)應(yīng)的詞匯,則使用<PAD>進(jìn)行填充,以實(shí)現(xiàn)批次并行化處理。
IDCNN[22]:提出dilated CNN 模型,為CNN 的卷積核增加了一個(gè)dilation width,作用在輸入矩陣時(shí)會(huì)skip 所有dilation width 中間的輸入數(shù)據(jù);而卷積核本身的大小保持不變,這樣卷積核獲取到了更廣闊的輸入矩陣上的數(shù)據(jù),可以很快覆蓋到全部的輸入數(shù)據(jù)。
LR-CNN[23]:該模形通過多層級(jí)CNN來不斷地提取n-gram 信息,通過層級(jí)attention 來加權(quán)不同詞匯權(quán)重,通過融合n個(gè)層級(jí)進(jìn)行attention 來進(jìn)行最終特征提取。
LGN[24]:利用詞典和字符序列來構(gòu)建圖,將NER轉(zhuǎn)換為節(jié)點(diǎn)分類任務(wù)。模型使用隨機(jī)梯度下降(SGD)算法進(jìn)行參數(shù)優(yōu)化,初始學(xué)習(xí)率為0.001,迭代100 次,dropout 率為0.6 進(jìn)行正則化。此外,學(xué)習(xí)率在每次迭代后會(huì)按照0.01 的步長(zhǎng)進(jìn)行縮減。
SoftLexicon[3]:對(duì)Lattice 引入詞信息的方式進(jìn)行優(yōu)化。將字典信息融入字符表示,能夠轉(zhuǎn)換到不同的序列標(biāo)注模型框架,而且容易與預(yù)訓(xùn)練模型合并。
FLAT[25]:將Lattice 結(jié)構(gòu)轉(zhuǎn)換為多個(gè)跨度表示,然后通過Transformer 模型引入位置編碼融合字詞信息,同時(shí)能夠并行化運(yùn)算。
MECT[26]:使用雙流Transformer 模型融合字符、詞典和部首信息,該模型能夠通過2 個(gè)交互的Transformer 模型綜合利用部首和字符間的關(guān)系,并使用隨機(jī)注意力進(jìn)一步提高性能。
表2 給出了不同模型在CMeEE 和IMCS21 數(shù)據(jù)集上的實(shí)驗(yàn)結(jié)果,其中加粗字體為最優(yōu)值。從表2可以觀察到:
表2 在CMeEE 和IMCS21 數(shù)據(jù)集上實(shí)驗(yàn)結(jié)果Table 2 Experimental results on the CMeEE and IMCS21 datasets %
1)本文模型在所有模型中取得了最優(yōu)性能。相比基模型中性能最好的MECT,本文模型的F1 值在CMeEE 數(shù)據(jù)集中提升了1.49%,在IMCS21 數(shù)據(jù)集中提升了0.83%。
2)從整體來看,模型BiLSTM-CRF 和WC-LSTM的性能最低,這可能是BiLSTM-CRF 模型僅僅使用了字符的上下文信息,對(duì)于中文NER 任務(wù)來說,遺漏了重要的詞語信息,而WC-LSTM 在加入詞信息的編碼上有多種方式。顯然,最短單詞優(yōu)先策略并不適合大部分實(shí)體較長(zhǎng)的醫(yī)學(xué)數(shù)據(jù)集,導(dǎo)致模型性能偏低。使用CNN 當(dāng)作特征提取器的模型如IDCNN 和LR-CNN 較MECT 和FLAT 取得了更低的F1值,推測(cè)主要原因是它們更善于提取局部語意特征,但在學(xué)習(xí)全局語意特征方面受到限制。
3)MECT、Lattice+Glyce 和本文模型整體要優(yōu)于IDCNN、LR-CNN、LGN、SoftLexicon 和FLAT 模型,前者在融入詞信息的基礎(chǔ)上都加入了字形信息,MECT 融入了偏旁部首,Lattice+Glyce 融入了字形信息,而本文模型兩者都有,后者則都是通過不同的方式融合了詞信息的模型,這說明本文模型使用外部字形信息的方法較好。
4)在CMeEE 數(shù)據(jù)集上,F(xiàn)LAT 的召回率最高,說明在長(zhǎng)句子中實(shí)體抽取能力較強(qiáng),但其精確率卻很低,導(dǎo)致整體的性能不如本文模型,本文模型在長(zhǎng)句子較多的CMeEE 數(shù)據(jù)集和短句子較多的IMCS21 數(shù)據(jù)集上都取得了最佳的F1 值,證明本文模型具有較強(qiáng)的魯棒性。
5)數(shù)據(jù)集CMeEE 的結(jié)果比IMCS21 較低,推測(cè)原因是CMeEE 數(shù)據(jù)集中實(shí)體出現(xiàn)的頻次更高,實(shí)體長(zhǎng)度更長(zhǎng),模型難以擬合。
為了驗(yàn)證本文模型各個(gè)方法的有效性,本文進(jìn)行了消融實(shí)驗(yàn)來驗(yàn)證多粒度字符信息和門控信息對(duì)模型的影響。實(shí)驗(yàn)結(jié)果如表3 所示,其中,w/o glyph structure 中去掉字形結(jié)構(gòu)嵌入,w/o radical sequence中去掉字形部首序列嵌入,w/o gate mechanism 中去掉門控機(jī)制。從表3 可以看出,去掉字形結(jié)構(gòu)嵌入和字形部首序列嵌入導(dǎo)致模型的F1 值分別下降了1.15%和1.10%,這驗(yàn)證了字形結(jié)構(gòu)和字形部首序列嵌入對(duì)于本文模型性能的保證都具有重要作用。同時(shí),去掉門控機(jī)制后F1 值下降了0.94%,這表明了門控機(jī)制的有效性。值得注意的是,去掉字形結(jié)構(gòu)嵌入比起去掉字形部首序列嵌入的效果要稍差,這可能是從圖片上做卷積會(huì)比直接對(duì)偏旁部首做卷積有效,推測(cè)有兩點(diǎn):首先字形圖片中包含偏旁部首之間的空間位置關(guān)系,比如“病”和“咳”還有“藥”,分別是半包圍、左右、上下結(jié)構(gòu),而偏旁部首嵌入顯然沒辦法融入這一信息;然后使用了多個(gè)不同朝代的字體,這些字體更加象形,能夠?qū)W到字義相近的字之間的一些相似的字形特征。從圖片上直接做卷積得到的信息更原始更豐富,因此比字形部首序列能得到更多的信息。
表3 在CMeEE 數(shù)據(jù)集上消融實(shí)驗(yàn) Table 3 Ablation experiments on the CMeEE dataset %
表4 顯示了模型在兩個(gè)數(shù)據(jù)集上實(shí)體識(shí)別錯(cuò)誤的數(shù)量,包括實(shí)體頭部邊界錯(cuò)誤(BE)、實(shí)體尾部邊界錯(cuò)誤(EE)和實(shí)體類型錯(cuò)誤(TE),其中,w/o glyph 中去掉字形結(jié)構(gòu)嵌入,w/o radical 中去掉部首序列嵌入。本文模型對(duì)比SoftLexicon 在CMeEE 上的實(shí)體頭部邊界錯(cuò)誤和實(shí)體尾部邊界錯(cuò)誤數(shù)量分別減少了377 和394 個(gè),實(shí)體類型錯(cuò)誤減少了80 個(gè)。需要指出的是,單獨(dú)增加字形結(jié)構(gòu)或者部首序列信息的模型預(yù)測(cè)實(shí)體類型錯(cuò)誤的數(shù)量會(huì)更少,這可能是因?yàn)閮蓚€(gè)信息會(huì)對(duì)實(shí)體類型判斷造成干擾。毫無疑問,本文模型對(duì)于實(shí)體邊界和實(shí)體類型的識(shí)別都是非常有益的。
表4 實(shí)體識(shí)別錯(cuò)誤類型統(tǒng)計(jì)Table 4 Statistics of entity recognition error types 單位:個(gè)
表5 列出了不同模型對(duì)CMeEE 數(shù)據(jù)集中的實(shí)例的處理結(jié)果。對(duì)于第1 個(gè)案例,可以觀察到LR-CNN 和SoftLexicon 不能有效地識(shí)別連續(xù)出現(xiàn)的全部實(shí)體,即模型對(duì)于多個(gè)連續(xù)實(shí)體的識(shí)別能力不足。此外,根據(jù)第2 句的預(yù)測(cè)的錯(cuò)誤實(shí)體如“氣管異物”,LR-CNN 模型將該實(shí)體的類型及邊界預(yù)測(cè)錯(cuò)誤,該模型使用CNN 獲得上下文編碼,并使用rethink 機(jī)制來控制詞信息的輸入,這可能是CNN 作為編碼器對(duì)字符遠(yuǎn)距離信息利用不足,干擾到模型的判斷。SoftLexicon 模型將實(shí)體的類型識(shí)別錯(cuò)誤,其引入的詞信息占比較大,所以詞典的質(zhì)量會(huì)較大程度地影響模型對(duì)實(shí)體類型的判斷。本文提出的模型,有效利用了字形的信息并控制詞信息的輸入,能夠有效識(shí)別醫(yī)學(xué)實(shí)體的邊界,在識(shí)別實(shí)體邊界方面表現(xiàn)優(yōu)于其他模型。
表5 案例分析 Table 5 Case analysis
為了避免錯(cuò)誤的詞信息對(duì)中文命名實(shí)體識(shí)別模型的影響,并在嵌入層有效地利用外部字形知識(shí),本文提出一種多粒度字形信息增強(qiáng)中文命名實(shí)體識(shí)別方法。該方法具有一般領(lǐng)域的字符信息、領(lǐng)域信息的詞和多粒度的字形信息,其中字形序列組成部分的向量初始化的方法是隨機(jī)初始化,利用一定量的先驗(yàn)知識(shí)對(duì)其進(jìn)行初始化,可使其具有一定的語義信息,能夠快速有效地提取字形序列信息,可在少樣本場(chǎng)景下發(fā)揮作用。下一步將用更多方法來增強(qiáng)模型對(duì)于醫(yī)學(xué)領(lǐng)域?qū)嶓w的識(shí)別能力,如加入醫(yī)學(xué)知識(shí)圖譜或者使用預(yù)訓(xùn)練語言模型的方式。同時(shí),將繼續(xù)研究實(shí)體嵌套和實(shí)體重疊問題,尋找更為有效的方式來準(zhǔn)確識(shí)別中文醫(yī)學(xué)實(shí)體。