李文杰,王小冬,簡 剛,唐武斌
(寧波市科技園區明天醫網科技有限公司 浙江 寧波 315000)
隨著醫院信息化建設的發展,醫技檢查報告也在由紙張化向電子化方向過渡,但是隨之帶來了報告中拼寫錯誤檢查的問題。不同地區、醫院,報告系統中結構化模板的存在著較大差異,醫生還需要手動大量輸入檢查報告內容,對報告內容的準確性進行快速分析檢測成為了一個亟待解決的問題。
傳統用于醫學文本檢測的方法多是檢測文本中的錯別字,沒有考慮到句子中的語序和詞語搭配的錯誤。本文將深度學習領域中的RCNN(循環卷積神經網絡)文本分類模型應用到了醫學影像診斷報告的檢查中來,將文本分類模型用來判斷分句的正誤,結合恰當的糾錯策略篩選出錯誤分句中的詞語,并提示潛在可能的正確詞語。
本方法可以自動檢測影像科醫生在評估病人病情時所寫的影像所見和影像診斷報告,快速定位到報告中的拼寫錯誤、語序錯誤或詞語搭配錯誤的位置,并依據拼音和上下文詞語關聯提示可能替換的正確詞語。
深度學習火熱,各種網絡層出不窮,其中應用于文本分類的模型也有多種。2014年,Kim[1]提出了一種將CNN應用到英文文本分類中的方法,語料的最小粒度為單詞,取得了不錯的效果。2015年,Zhang[2]等提出了一種基于字母粒度級別的CNN英文文本分類模型。同年,Lai[3]等提出了一種基于單詞粒度級別的RCNN的英文文本分類模型,效果顯著。2016年,Conneau[4]等將VDNN應用到了文本分類,Zhou[5]等發表了基于注意力機制的BiLSTM應用于文本分類的模型。經過調研,本文借鑒了準確率最高的Lai[3]等提出的RCNN模型,將這種模型結構應用到了糾錯模型中,表1是幾種模型的文本分類效果測試對比。

表1 不同模型的文本分類準確度對比(%)
通常報告中的錯誤包括拼寫錯誤、語序錯誤和詞語搭配錯誤,本方法對文本進行糾錯的過程如下。
首先通過導入了自定義醫學詞庫的jieba分詞方法分詞,使用詞語搜索詞庫依次對句子中的中文單詞進行拼寫檢查,如果發現了潛在錯誤單詞,標注出來。然后,將文本通過句子分隔符號(如逗號、句號、感嘆號、問號等)分隔為一個個分句,通過訓練的RCNN模型判斷每個分句的語序和詞組搭配正誤,篩選出來潛在的有問題的分句。接下來,通過詞組詞庫依次對有問題分句中相鄰的中文單詞詞組進行檢查,對有問題的詞組進行標注。最后依據拼音詞庫和詞語關聯詞庫對標注有問題的單詞給出一組替代的建議詞。
比如,對于樣本“兩肺門結構清晰,其內未見明顯腫大淋巴結影?!睉弥形姆衷~方法jieba分詞后的結果為“兩肺門結構清晰,其內未見明顯腫大淋巴結影?!睂ζ渲械拿總€中文單詞依據詞語搜索詞庫對詞語拼寫進行檢查,并標記出有拼寫錯誤的單詞。
然后,按照逗號和中文結束標點符號分隔,兩個分句分別為“兩肺門結構清晰”、“其內未見明顯腫大淋巴結影”。通過編碼詞庫編碼后送入到模型中進行檢測,如果返回結果為正確,認為兩句子的語序和詞語搭配均不存在問題。假如其中一個模型對第一個分句返回結果為錯誤,依據詞組詞庫對分句中的詞語搭配進行檢查,并標記出來有問題的詞組。對標記出來的錯誤詞語,依據拼音詞庫和詞語關聯詞庫,給出一組可替代錯誤分詞的建議詞,表2中給出了糾錯樣例,下劃線是通過模型檢測出來的錯誤。
采集網絡上的醫學詞庫,加入到jieba的自定義詞庫中,目的在于輔助對醫學上專業詞匯的分詞。
影像報告數據采集了16萬余條影像診斷報告數據。通過人工的審核,基本保證了所有數據的正確性。
通過導入了醫學詞典的jieba分詞將所有的影像報告數據進行分詞,構建出編碼詞庫DIC1、單詞搜索詞庫DIC2、詞組搜索詞庫DIC3、拼音詞庫DIC4和詞語關聯詞庫DIC5。DIC1是用來對分詞后詞語編碼,變成模型可以識別的格式;DIC2是用來檢測有拼寫錯誤的單詞;DIC3是用來定為問題的分句的錯誤單詞位置;DIC4和DIC5是用來對錯誤詞語進行提示的詞庫。
將jieba分詞后的影像報告,通過標點符號分隔為一個個分句。原始的分句標記為1,代表是正樣本,然后將分句中的單詞隨機打亂順序,標記為0,代表是負樣本,這樣就構建出了語序訓練集。類似的,將分句中的單詞,通過隨機替換的方式,構建出來詞語替換訓練集。

表2 糾錯樣例
本方法中的循環卷積神經網絡RCNN是一種由RNN和CNN結合構成的人工神經網絡,模型中的RNN(Recurrent Neural Network)結構是一種層數為2層的雙向循環神經網絡,能夠最大程度的捕捉句子中的語義信息,然后引入了一個CNN中的最大池化層,捕獲文本中的關鍵字信息。通過結合循環結構和最大池化層,模型同時利用了RNN和CNN的優點。圖中展示了模型RCNN的結構,該模型能夠整合了一個單詞和它的上下文來表示這個單詞,能夠幫助我們獲得一個更精確的詞語含義,模型中使用了雙向RNN(循環神經網絡)結構用來整合上下文。從卷積神經網絡(CNN)的角度來看,我們之前描述的循環結構是屬于卷積層,當所有單詞的表示都被計算完畢,連接到一個最大池化層,最大池化層將不同長度的文本轉化到固定長度的向量,幫助我們抓取到了整段文本中的信息,最后傳入到了輸出層,關于網絡的詳細介紹見Lai[3]等的論文。

圖:循環卷積神經網絡(RCNN)結構示意圖[3],假定下角標的數字代表分詞在原始分句中的位置。
通過語序訓練集和詞語替換訓練集分別訓練得到語序糾錯模型Model1和詞語搭配模型Model2。測試集事先隨機抽取出了10%,剩余的用于訓練,訓練過程中采用的訓練集占和驗證集的比例分別為85%和15%。

表3 訓練結果(%)
為了讓模型對錯誤更加敏感,構建的語序數據集所采用的正負樣本比例為1:4,而詞語替換數據集中所采用的正負樣本比例為1:3。表3中顯示,通過語序訓練集訓練得到的模型Model1對語序的正誤識別的準確率達到了99%以上,而通過詞語搭配訓練集訓練得到模型Model2對詞語替換句子正誤識別的準確率達到了98%以上。本訓練集、測試集和驗證集中所采用的負樣本比例較高,如果換成正負樣本比例1:1的數據集,準確率會有一定的降低。
本文提供了一種應用于醫學影像診斷報告的智能糾錯方法,包括詞庫構建過程、模型構建過程和智能糾錯過程。本方法不僅能夠檢測常規的拼寫錯誤,另外通過使用訓練循環卷積神經網絡得到的糾錯模型,考慮了語序和詞語搭配,依據拼音詞庫和詞語關聯詞庫,給出一組可替代錯誤分詞的建議詞。