?

基于多粒度字形增強的中文醫學命名實體識別

2024-02-29 04:40劉威馬磊李凱李蓉
計算機工程 2024年2期
關鍵詞:字符字形粒度

劉威,馬磊*,李凱,李蓉

(1.昆明理工大學信息工程與自動化學院,云南 昆明 650500;2.云南省第一人民醫院信息科,云南 昆明 650500;3.云南省第一人民醫院科研科,云南 昆明 650500)

0 引言

面向醫學領域的中文命名實體識別旨在從醫學領域非結構化中文文本中提取具有特定指代意義的實體,并識別它們的類型,如癥狀、藥品名稱、身體部位等。該任務是準確理解醫學領域文本語義的基礎,同時也對面向醫學領域的信息檢索、智能問答等下游任務起著重要的作用。與英文的命名實體識別不同,由于中文句子中表達含義的字或詞并不是自然分割的,中文命名實體識別的難度更大。一般的中文命名實體識別(NER)問題通常被形式化為序列標注問題,將文本劃分為多個Token,然后將Token初始化為向量輸入到神經網絡模型中,最終模型輸出文本中每個Token 對應的標簽。常用的Token 有字符和詞兩種形式[1]。然而,由于中文字符本身不具備中文詞語那樣相對獨立的語義,基于字符的模型可能會面臨所識別的實體不完整和實體類別錯誤等問題。為解決這一問題,研究人員主要考慮如何在基于字符的輸入基礎上引入詞的信息。如文獻[2]提出的Lattice 模型,在每個字符嵌入基礎上融合詞語嵌入,將匹配到的詞的嵌入以特有的方法融合到字符嵌入上以增強字符表示,文獻[3]提出SoftLexicon 的方法,將字符匹配到的詞根據在詞語中出現的位置分類成4 個詞集合,并以詞頻的方法對4 個詞集合的詞嵌入進行融合,以提升模型的訓練速度及判斷實體邊界和類型的能力。上述方法本質上都是利用外部知識對字符信息進行增強,說明對于基于字符的中文命名實體識別來說,字符信息的增強是一種有效的手段。

對于醫學領域命名實體識別來說,組成領域實體的字符有自身的特點,主要表現為2 個方面:

1)很多醫學領域中文字符的字形結構具有獨立的語意,代表了特定的實體含義。具體來說,中文是一種象形文字,由形旁和聲旁兩部分組成,形旁的表義功能比較強,具有相同形旁的中文字符有相近的實體含義。漢字中的形旁“艸”,俗稱草字頭,由“艸”組成的字,大多與藥品實體有關,比如“葡萄糖”、“蓮花清瘟”、“感冒藥”等。由形旁“月”組成的字,大都跟身體部位有關,如“膽囊”、“肝臟”、“腎臟”等。顯然,這種字形信息的利用能增加中文字符對于醫學實體邊界和類別的表征能力。

2)特定的中文字符組合成的醫學術語也代表了特定的實體含義?!案巍苯M成“脂肪肝”和“肝膿腫”等術語。這些術語需要從整個醫學文本數據集中獲取。對于字形多粒度信息的獲取,一方面可以從空間域處理的角度將整個字符視為一幅二維圖像,通過圖像特征編碼器提取漢字在字符中的空間形態信息,另一方面從文本的角度可以將字符拆解為形旁和其他部件結構,通過卷積神經網絡進一步獲取形旁在字符中的結構及序列信息。對于領域詞信息,可以根據大規模醫學語料庫獲得專業術語集合,并根據術語的上下文得到術語嵌入。

基于以上分析,本文提出通過對字符的多粒度字形進行增強,從而改善基于中文字符的醫學命名實體識別模型的性能。本文主要貢獻有:

1)提出一種綜合利用漢字多粒度字形信息的NER 模型,通過融入中文字符的多粒度字形信息和領域術語信息來增強字符表示,增強字符的語義和潛在邊界信息,使模型獲得更好的實體識別能力。

2)提出并利用交互門控機制控制字符多粒度字形信息和領域詞信息對于字符表征的貢獻程度,綜合考慮到漢字的領域信息和漢字底層信息并進行門控過濾,從而更好地表示輸入句子中漢字的潛在含義。

3)在兩個中文醫學NER 基準數據集上對所提出的方法進行評估,驗證該模型對特定領域和密切相關實體的表示能力。

1 相關工作

醫療領域的命名實體識別方法在早期主要采用傳統機器學習方法。一些研究者利用支持向量機(SVM)和條件隨機場(CRF)等機器學習算法來識別臨床實體。例如,文獻[4]開發了基于SVM 的NER 系統,用于識別醫院收費摘要中的臨床實體。文獻[5]為了提取詞典特征,構建了一個醫學詞典,對基于CRF 的中文電子病歷命名實體識別進行了深入研究。文獻[6]對結構化支持向量機、最大熵CRF 和支持向量機的字袋、詞袋、詞性、信息量等特征進行了對比實驗。文獻[7]采用雙重分解模型,兼顧分詞和實體識別。文獻[8]提出一種基于條件隨機場的醫學文本藥物名稱識別方法。盡管醫學命名實體識別的研究已經取得了很大的進展,但基于機器學習的方法還存在許多問題,模型效果容易受稀疏數據的影響,擴展性差,這些問題無法得到很好的解決。

近年來,深度學習迅速發展并進入到公眾的視野。對于醫學神經網絡,文獻[9]使用神經網絡對大量的醫學文本進行訓練,生成詞向量,然后為神經網絡構建多層CNN。文獻[10]使用雙向長短期記憶(BiLSTM)作為基本的NER 結 構。文 獻[11]將BiLSTM 和CRF 相結合,在藥物名稱識別任務中取得了良好的效果。之后,人們引入注意機制來突出輸入序列中的重要信息。文獻[12]構建了一個將BiLSTM-CRF 與文檔級復合命名實體識別中的注意力機制相結合的模型,并通過引入注意力機制來獲取全局信息,以確保文檔級數據中同一實體標注的一致性。醫學文本包含的信息錯綜復雜,包含了大量的領域詞匯和專業知識,這就需要更有效的方法來解決醫學專家的任務。另外,一些研究還關注于聯合提取醫學實體和關系。這些研究結果表明,深度學習在命名實體識別領域具有廣闊的應用前景。文獻[13]提出了一種BiLSTM-CRF 模型,并將其廣泛應用于醫療NER 任務[14]。我國電子病歷的NER有其特殊性,我國企業資源管理機構結構復雜,實體類型眾多,具有一定的領域特殊性。文獻[15]使用了變形Transformers 的雙向編碼器表示(BERT)結構,并利用未標記的中文醫療文本進行預先訓練,實現了中國臨床命名實體識別。文獻[16]從Transformer 中的策略和思想入手,利用主流經典模型研究了如何提高傳統卷積神經網絡的精度,采用了BERT 預訓練漢語模型以提高中醫神經網絡的精度。文獻[17]提出一種用于醫學序列標記任務的預訓練并加入池化上下文嵌入模型。這些研究都致力于解決中文醫療文本處理中的問題,有助于提高臨床數據的建模、關系抽取和醫學序列標注任務等的準確性和效率。

在醫學領域,由于一般領域對訓練語料庫的影響,目前主流的NER 方法沒有考慮漢字字形的空間和偏旁部首序列兩個方面底層的字符信息,并引入可能包含冗余成分的詞信息。從這一角度出發,本文使用多粒度的字形信息增強字符潛在邊界和語意信息,提升了基于字符NER 模型的性能。

2 本文模型

針對基于字符的NER 模型中字粒度語意信息的不足和領域詞信息冗余問題,本文提出使用字形和部首嵌入增強字粒度的信息,并使用交互門控機制來過濾領域詞信息中噪聲的方法。本文提出方法的總體架構如圖1 所示。首先將輸入序列中的每個字符通過預先訓練的字嵌入表映射成向量表示,接著與字符在領域詞典上匹配到的詞進行聯合嵌入,得到豐富的語意知識,并使用兩種不同的卷積網絡分別對字符的字形信息進行特征抽取,將多粒度字形特征與包含豐富醫學知識的字符表示使用交互門控機制來得到最終輸入,然后送入到序列編碼層和CRF 層,以獲得最終的預測。

圖1 基于多粒度字形增強的中文命名實體識別網絡框架Fig.1 Framework of Chinese named entity recognition network based on multi-granularity glyph enhancement

2.1 字形結構嵌入

簡體中文是最容易寫的文字,但不可避免地丟失了最重要的象形文字信息,比如意義不相關的“未”和“末”在形狀上非常相似,但在早期歷史文字中,它們的形狀卻截然不同,所以使用多種不同字體來補充漢字的象形信息。首先,將單個字符視為一副二維圖像,從空間域處理的角度,通過圖像特征編碼器來獲得字符的字形結構嵌入。參考文獻[18]模型的做法,分析漢字字符圖像較小,使用更小的濾波器和通道數捕獲更低維的圖形特征,因此不太容易過擬合。如圖2 所示,將字符轉換為對應的6 種不同字體的灰度圖像,其中第j種字體的大小為12×12 像素的8 bit 灰度圖像。

圖2 字形結構特征提取Fig.2 Feature extraction of glyph structure

將不同圖像矩陣進行拼接,得到字符ci的結構圖像

其中:Concat 表示拼接操作。然后使用卷積核大小為5×5,有384 個輸出通道的卷積操作Conv1,捕獲較低級別的圖形特征,得到隱藏層向量

使用模板大小為4×4 的Max-Pooling 操作,將的分辨率從8×8 像素降低到2×2 像素;通過一個卷積核大小為1×1 和ds個輸出通道的卷積操作Conv2,得到隱藏層向量

將送入卷積核大小為2 的群卷積操作,并進行維度轉化操作reshape,得到該字符的字形結構嵌入∈Rds。

2.2 字形偏旁部首及部件結構嵌入

字符的形旁本身具有較強的實體指示作用,而這個作用僅用字形結構信息可能無法得到完全體現。因此,需要進一步強調形旁的作用。本文將字符拆分為形旁和其他的部件,然后用卷積神經網絡來提取字符的這種特征向量。

首先將第i個字符ci拆分為K個部分,Oi=如果某個字符成分的長度不足K,則將空缺位置用PAD 來填充。然后對每個字符成分進行隨機嵌入操作Er:

將該字符隱向量序列中每一個字符成分所對應的向量進行Max-Pooling,然后送入一個全連接層fc進行維度變換,得到該字符的字形序列嵌入

2.3 字符預訓練嵌入及多粒度表征

基于字符的中文命名實體識別模型通常采用在大規模語料上所訓練的字符向量來作為字符的初始嵌入[19]。這種表征通常蘊含了字符的上下文信息,即也是一種字符粒度的局部信息。使用預訓練字符嵌入查找表Ec來獲得字符的Word2Vec 向量。字符嵌入表是在一個大量的中文語料Gigaword 上使用Word2Vec 模型訓練得到的。通過Ec得到每一個字符ci的嵌入向量:

在獲得字符的3 種局部向量后,需要將三者結合來獲得字符的表征。具體地,首先將進行拼接,得到初始拼接向量

然后將進行以下兩次線性變換和激活,得到隱向量

將隱向量作為融合的漢字字形多粒度表征。

2.4 基于門控機制的多粒度表征和領域詞嵌入融合

首先收集醫學語料(包括醫渡云4K、中文醫學問答、中文醫患問答、天池中文醫療信息等數據集)并與本文使用的兩個數據集合并,然后使用北大開源分詞工具包pkuseg 里的醫學領域分詞工具對收集到的語料進行分詞操作,分詞后的語料包含許多醫學術語,最后使用Word2Vec 的Skip-Gram 模型得到詞嵌入,設置窗口大小為4,去掉數量少于5 的詞。通過以上操作,得到一個醫學領域詞典D,以及每個詞的詞嵌入查找表Ed,按照文獻[3]提出的方法得到每個字符的領域詞嵌入

在獲得字符的多粒度表征和領域詞嵌入后,由于兩者相對可能會存在信息冗余,因此利用交互門控機制對兩者的特征進行信息篩選,從而得到更合理的綜合表征,計算公式如下:

最后將多粒度表征和領域詞表征的門控與其對應的表征相乘并進行拼接,得到模型自適應學習后的綜合表征的

2.5 上下文編碼及CRF 序列標注

通過以上操作,增強了字符所蘊含的字形多粒度和領域信息?;谧址腘ER 是一個連續的標記任務,相鄰字符之間存在很強的約束關系。因此,還應該考慮字符在句子序列中的上下文信息。將句子序列送入BiLSTM 網絡來提取字符的序列表征hi∈Rdh:

在序列標簽輸出階段,使用CRF作為解碼器。CRF會基于前一個標簽的結果影響當前標簽的結果。例如,B-Drug、I-Symptom 就是一個無效序列。字符通過BiLSTM 編碼后得到隱向量hi,使用H來表示輸入序列的隱向量矩陣,然后送到CRF 中,通過最小化負最大似然函數找到概率最大的標簽序列。計算公式如下:

其中:?(S,y)為觀測序列與標簽序列之間的發射概率與標簽序列轉移分數之和;S表示觀測序列;y為真實的標 簽;Wt∈Rdh×tags和bt∈Rn×tags是線性 層的參數;n是句子中的字符數;tags 是實體標簽數;Y表示有效標簽序列的集合。

最后使用負對數似然函數來計算標簽分類的損失值:

3 實驗

3.1 數據集

使用兩個數據集:一個是中國計算語言學大會(CCL)提供的數據集IMCS21,包括2 000 組醫患對話案例樣本,覆蓋10 種兒科疾病,8 萬余句對話,樣本平均對話次數為40 次,平均每個樣本的對話字數為523 個,其數據集包含5 種實體類型,分別是癥狀、藥品名稱、藥品類型、檢查和操作,訓練集數據15 000 條,驗證集數據5 000 條,測試集數據3 000 條;另一個是中文醫療信息處理挑戰榜里的中文醫學命名實體識別(CMeEE)數據集,包含47 194 個句子和938 個文件,平均每個文件的字數為2 355,數據集包含504種常見的兒科疾病、7 085種身體部位、12 907種臨床表現、4 354 種醫療程序等醫學實體。

3.2 評價指標

本文采用準確率(P)、召回率(R)、F1(F1)值作為評價指標來衡量模型性能,計算公式如式(21)~式(23)所示:

其中:N為模型預測正確的實體數;M為模型預測實體總數;Z為數據中標注實體總數。

3.3 實驗設置

基于PyTorch 框架,GPU 為NVIDIA GTX 3090,網絡參數優化器為Adam,學習率設置為0.001 5,并且逐漸遞減。采用優化函數為Adam,初始學習率大小為0.001 5,學習率縮減步長lr_decay 設置為0.05,dropout 率設置為0.5。模型參數設置如表1 所示。

表1 實驗參數設置 Table 1 Experimental parameter settings

3.4 對比模型

BiLSTM-CRF[20]:使 用BiLSTM 將字符 序列進行編碼后輸入到CRF 層進行解碼,得到序列標簽。

Lattice[2]:對句子中的所有字符和詞典識別的潛在詞匯進行編碼,從而將潛在詞信息整合到基于字符的LSTM-CRF 中。

WC-LSTM[21]:對Lattice 進行了改進,將以每個字符為結尾的詞匯信息進行靜態編碼表示,即每個字符引入的詞匯表征是不變的,并且如果沒有對應的詞匯,則使用<PAD>進行填充,以實現批次并行化處理。

IDCNN[22]:提出dilated CNN 模型,為CNN 的卷積核增加了一個dilation width,作用在輸入矩陣時會skip 所有dilation width 中間的輸入數據;而卷積核本身的大小保持不變,這樣卷積核獲取到了更廣闊的輸入矩陣上的數據,可以很快覆蓋到全部的輸入數據。

LR-CNN[23]:該模形通過多層級CNN來不斷地提取n-gram 信息,通過層級attention 來加權不同詞匯權重,通過融合n個層級進行attention 來進行最終特征提取。

LGN[24]:利用詞典和字符序列來構建圖,將NER轉換為節點分類任務。模型使用隨機梯度下降(SGD)算法進行參數優化,初始學習率為0.001,迭代100 次,dropout 率為0.6 進行正則化。此外,學習率在每次迭代后會按照0.01 的步長進行縮減。

SoftLexicon[3]:對Lattice 引入詞信息的方式進行優化。將字典信息融入字符表示,能夠轉換到不同的序列標注模型框架,而且容易與預訓練模型合并。

FLAT[25]:將Lattice 結構轉換為多個跨度表示,然后通過Transformer 模型引入位置編碼融合字詞信息,同時能夠并行化運算。

MECT[26]:使用雙流Transformer 模型融合字符、詞典和部首信息,該模型能夠通過2 個交互的Transformer 模型綜合利用部首和字符間的關系,并使用隨機注意力進一步提高性能。

3.5 結果分析

表2 給出了不同模型在CMeEE 和IMCS21 數據集上的實驗結果,其中加粗字體為最優值。從表2可以觀察到:

表2 在CMeEE 和IMCS21 數據集上實驗結果Table 2 Experimental results on the CMeEE and IMCS21 datasets %

1)本文模型在所有模型中取得了最優性能。相比基模型中性能最好的MECT,本文模型的F1 值在CMeEE 數據集中提升了1.49%,在IMCS21 數據集中提升了0.83%。

2)從整體來看,模型BiLSTM-CRF 和WC-LSTM的性能最低,這可能是BiLSTM-CRF 模型僅僅使用了字符的上下文信息,對于中文NER 任務來說,遺漏了重要的詞語信息,而WC-LSTM 在加入詞信息的編碼上有多種方式。顯然,最短單詞優先策略并不適合大部分實體較長的醫學數據集,導致模型性能偏低。使用CNN 當作特征提取器的模型如IDCNN 和LR-CNN 較MECT 和FLAT 取得了更低的F1值,推測主要原因是它們更善于提取局部語意特征,但在學習全局語意特征方面受到限制。

3)MECT、Lattice+Glyce 和本文模型整體要優于IDCNN、LR-CNN、LGN、SoftLexicon 和FLAT 模型,前者在融入詞信息的基礎上都加入了字形信息,MECT 融入了偏旁部首,Lattice+Glyce 融入了字形信息,而本文模型兩者都有,后者則都是通過不同的方式融合了詞信息的模型,這說明本文模型使用外部字形信息的方法較好。

4)在CMeEE 數據集上,FLAT 的召回率最高,說明在長句子中實體抽取能力較強,但其精確率卻很低,導致整體的性能不如本文模型,本文模型在長句子較多的CMeEE 數據集和短句子較多的IMCS21 數據集上都取得了最佳的F1 值,證明本文模型具有較強的魯棒性。

5)數據集CMeEE 的結果比IMCS21 較低,推測原因是CMeEE 數據集中實體出現的頻次更高,實體長度更長,模型難以擬合。

3.6 消融實驗

為了驗證本文模型各個方法的有效性,本文進行了消融實驗來驗證多粒度字符信息和門控信息對模型的影響。實驗結果如表3 所示,其中,w/o glyph structure 中去掉字形結構嵌入,w/o radical sequence中去掉字形部首序列嵌入,w/o gate mechanism 中去掉門控機制。從表3 可以看出,去掉字形結構嵌入和字形部首序列嵌入導致模型的F1 值分別下降了1.15%和1.10%,這驗證了字形結構和字形部首序列嵌入對于本文模型性能的保證都具有重要作用。同時,去掉門控機制后F1 值下降了0.94%,這表明了門控機制的有效性。值得注意的是,去掉字形結構嵌入比起去掉字形部首序列嵌入的效果要稍差,這可能是從圖片上做卷積會比直接對偏旁部首做卷積有效,推測有兩點:首先字形圖片中包含偏旁部首之間的空間位置關系,比如“病”和“咳”還有“藥”,分別是半包圍、左右、上下結構,而偏旁部首嵌入顯然沒辦法融入這一信息;然后使用了多個不同朝代的字體,這些字體更加象形,能夠學到字義相近的字之間的一些相似的字形特征。從圖片上直接做卷積得到的信息更原始更豐富,因此比字形部首序列能得到更多的信息。

表3 在CMeEE 數據集上消融實驗 Table 3 Ablation experiments on the CMeEE dataset %

表4 顯示了模型在兩個數據集上實體識別錯誤的數量,包括實體頭部邊界錯誤(BE)、實體尾部邊界錯誤(EE)和實體類型錯誤(TE),其中,w/o glyph 中去掉字形結構嵌入,w/o radical 中去掉部首序列嵌入。本文模型對比SoftLexicon 在CMeEE 上的實體頭部邊界錯誤和實體尾部邊界錯誤數量分別減少了377 和394 個,實體類型錯誤減少了80 個。需要指出的是,單獨增加字形結構或者部首序列信息的模型預測實體類型錯誤的數量會更少,這可能是因為兩個信息會對實體類型判斷造成干擾。毫無疑問,本文模型對于實體邊界和實體類型的識別都是非常有益的。

表4 實體識別錯誤類型統計Table 4 Statistics of entity recognition error types 單位:個

3.7 案例分析

表5 列出了不同模型對CMeEE 數據集中的實例的處理結果。對于第1 個案例,可以觀察到LR-CNN 和SoftLexicon 不能有效地識別連續出現的全部實體,即模型對于多個連續實體的識別能力不足。此外,根據第2 句的預測的錯誤實體如“氣管異物”,LR-CNN 模型將該實體的類型及邊界預測錯誤,該模型使用CNN 獲得上下文編碼,并使用rethink 機制來控制詞信息的輸入,這可能是CNN 作為編碼器對字符遠距離信息利用不足,干擾到模型的判斷。SoftLexicon 模型將實體的類型識別錯誤,其引入的詞信息占比較大,所以詞典的質量會較大程度地影響模型對實體類型的判斷。本文提出的模型,有效利用了字形的信息并控制詞信息的輸入,能夠有效識別醫學實體的邊界,在識別實體邊界方面表現優于其他模型。

表5 案例分析 Table 5 Case analysis

4 結束語

為了避免錯誤的詞信息對中文命名實體識別模型的影響,并在嵌入層有效地利用外部字形知識,本文提出一種多粒度字形信息增強中文命名實體識別方法。該方法具有一般領域的字符信息、領域信息的詞和多粒度的字形信息,其中字形序列組成部分的向量初始化的方法是隨機初始化,利用一定量的先驗知識對其進行初始化,可使其具有一定的語義信息,能夠快速有效地提取字形序列信息,可在少樣本場景下發揮作用。下一步將用更多方法來增強模型對于醫學領域實體的識別能力,如加入醫學知識圖譜或者使用預訓練語言模型的方式。同時,將繼續研究實體嵌套和實體重疊問題,尋找更為有效的方式來準確識別中文醫學實體。

猜你喜歡
字符字形粒度
尋找更強的字符映射管理器
粉末粒度對純Re坯顯微組織與力學性能的影響
基于矩陣的多粒度粗糙集粒度約簡方法
字符代表幾
一種USB接口字符液晶控制器設計
甲骨文“黍”字形義考
甲骨文中的字形直立化二則
消失的殖民村莊和神秘字符
復習生字字形的方法
基于粒度矩陣的程度多粒度粗糙集粒度約簡
91香蕉高清国产线观看免费-97夜夜澡人人爽人人喊a-99久久久无码国产精品9-国产亚洲日韩欧美综合