劉利鋒 常德杰 趙曉龍 王鐵虎 楊錦新 郭龍杰 陳漠沙
(北京環(huán)球醫(yī)療救援 北京 100020) (阿里巴巴 杭州 310000)
湯步洲
(哈爾濱工業(yè)大學(xué)(深圳)鵬城實(shí)驗(yàn)室 深圳 518055)
1.1.1 設(shè)計(jì)目的 醫(yī)療行業(yè)、保險(xiǎn)行業(yè)中的電子病歷、照片等材料含有很多隱藏信息?;谌斯ぶ悄芗夹g(shù)合理利用這些信息,將在商業(yè)應(yīng)用和科研領(lǐng)域產(chǎn)生很高的價(jià)值。這些信息(如客戶(hù)信息、診斷信息、用藥信息、費(fèi)用信息等)需要進(jìn)行結(jié)構(gòu)化才能進(jìn)一步使用。使用傳統(tǒng)的文本識(shí)別方法,首先需要用計(jì)算機(jī)視覺(jué)(Computer Vision,CV)領(lǐng)域算法將圖片材料進(jìn)行文本化,其中包含目標(biāo)檢測(cè)和目標(biāo)識(shí)別,如使用可微分二值化(Differentiable Binarization,DB)[1]算法進(jìn)行目標(biāo)檢測(cè),再使用卷積循環(huán)神經(jīng)網(wǎng)絡(luò)(Convolutional Recurrent Neural Network,CRNN)[2]進(jìn)行目標(biāo)識(shí)別,或者使用檢測(cè)和識(shí)別結(jié)合的算法,例如點(diǎn)集網(wǎng)絡(luò)(Point Gathering Network,PGnet)[3]進(jìn)行文本化后,再使用自然語(yǔ)言處理(Natural Language Processing,NLP)領(lǐng)域的一些算法將這些文本信息結(jié)構(gòu)化,例如使用雙向編碼器表征(Bidirectional Encoder Representations from Transformers,BERT)[4]進(jìn)行文本分類(lèi),使用長(zhǎng)短期記憶人工神經(jīng)網(wǎng)絡(luò)(Long-Short Term Memory,LSTM)[5]參與序列標(biāo)注等一系列方法將文本結(jié)構(gòu)化后根據(jù)需求使用。但是相較于傳統(tǒng)機(jī)器學(xué)習(xí),這些深度學(xué)習(xí)方法需要更多標(biāo)注數(shù)據(jù),如何獲取高質(zhì)量的標(biāo)注數(shù)據(jù)成為相關(guān)研究進(jìn)展的最大障礙,MedOCR由此誕生,其目的在于提供高質(zhì)量的標(biāo)注數(shù)據(jù)以供材料信息提取相關(guān)研究使用。
1.1.2 標(biāo)注過(guò)程 由業(yè)務(wù)專(zhuān)家設(shè)計(jì)標(biāo)注指南,1名主標(biāo)注員和1名副標(biāo)注員參考標(biāo)注指南歷時(shí)1個(gè)月標(biāo)注完成。該數(shù)據(jù)集包含出院小結(jié)、購(gòu)藥發(fā)票、門(mén)診發(fā)票、住院發(fā)票4類(lèi)材料共1 700張圖片,涉及87個(gè)屬性字段。
1.2.1 數(shù)據(jù)特殊性 首先,相較于以往的光學(xué)字符識(shí)別(Optical Character Recognition,OCR)數(shù)據(jù)集(如 ICDAR 2017-RCTW[6]采用四點(diǎn)標(biāo)注),在MedOCR中,標(biāo)注數(shù)據(jù)不涉及坐標(biāo),直接采用圖片到值標(biāo)注,拓展了研究方向,打破了傳統(tǒng)文本識(shí)別的局限。其次,相較于以往的數(shù)據(jù)集,MedOCR使用了醫(yī)療門(mén)診發(fā)票、住院發(fā)票、購(gòu)藥發(fā)票、出院小結(jié)等4類(lèi)病歷材料。
1.2.2 數(shù)據(jù)復(fù)雜多樣性 主要體現(xiàn)在兩個(gè)方面,一是OCR場(chǎng)景復(fù)雜,包含打印模糊、打印偏斜、套打偏斜、套打覆蓋、陰影覆蓋等多種實(shí)際業(yè)務(wù)中會(huì)遇到的場(chǎng)景,對(duì)常規(guī)的OCR模型提出挑戰(zhàn);二是文本結(jié)構(gòu)復(fù)雜,有上下結(jié)構(gòu)文本、左右結(jié)構(gòu)文本、無(wú)屬性名、多種近似且非規(guī)范化屬性名等復(fù)雜文本結(jié)構(gòu),這也是近年來(lái)結(jié)構(gòu)化文本理解及命名實(shí)體識(shí)別(Named Entity Recognition,NER)的研究熱點(diǎn)。
MedOCR的原始數(shù)據(jù)集數(shù)據(jù)源自互聯(lián)網(wǎng),將數(shù)據(jù)集分成訓(xùn)練集、評(píng)估A榜和評(píng)估B榜共3份,其中對(duì)應(yīng)的材料類(lèi)別數(shù)量,見(jiàn)表1。
表1 MedOCR構(gòu)成
第1步:先從公開(kāi)的互聯(lián)網(wǎng)渠道找到1 700張4類(lèi)病歷材料,其中包括出院小結(jié)340張、購(gòu)藥發(fā)票340張、門(mén)診發(fā)票340張、住院發(fā)票680張。第2步:選擇特定字段,如購(gòu)藥發(fā)票特定提取字段:票據(jù)代碼、票據(jù)號(hào)碼、校驗(yàn)碼、開(kāi)票日期、收款人、復(fù)核人、價(jià)稅合計(jì)(大寫(xiě))、價(jià)稅合計(jì)(小寫(xiě))。第3步:進(jìn)行嚴(yán)格的人工審核。第4步:得到圖片對(duì)應(yīng)的重要信息內(nèi)容并以表格形式保存,見(jiàn)表2、圖1。
表2 購(gòu)藥發(fā)票提取字段格式
圖1 數(shù)據(jù)集標(biāo)注流程
材料共有4類(lèi),分別是出院小結(jié)、購(gòu)藥發(fā)票、門(mén)診發(fā)票和住院發(fā)票。每類(lèi)材料標(biāo)注數(shù)據(jù)文件結(jié)構(gòu)基本一致,是由序號(hào)、圖名、材料類(lèi)型、屬性名和正確值作為列名組成的5列數(shù)據(jù),區(qū)別在于每類(lèi)材料對(duì)應(yīng)的屬性名不同,出院小結(jié)共有8個(gè)屬性名,購(gòu)藥發(fā)票共有8個(gè)屬性名,門(mén)診發(fā)票共有34個(gè)屬性名,住院發(fā)票共有37個(gè)屬性名,每個(gè)屬性名對(duì)應(yīng)1個(gè)正確值,即標(biāo)注值,其根據(jù)圖片上屬性名對(duì)應(yīng)的真實(shí)值標(biāo)注而來(lái)。在正確值這列中有兩個(gè)特殊值,分別為“無(wú)”和“-”,“無(wú)”代表圖片中未出現(xiàn)該字段,“-” 代表圖片中出現(xiàn)該字段但沒(méi)有對(duì)應(yīng)值,見(jiàn)表3。
表3 部分標(biāo)注數(shù)據(jù)
MedOCR 采用準(zhǔn)確率作為評(píng)測(cè)指標(biāo)。假如預(yù)測(cè)了一批字段,設(shè)預(yù)測(cè)正確的字段數(shù)量為correct,預(yù)測(cè)錯(cuò)誤的字段數(shù)量為error,準(zhǔn)確率就是預(yù)測(cè)正確字段數(shù)量占預(yù)測(cè)正確字段數(shù)量與預(yù)測(cè)錯(cuò)誤字段數(shù)量之和的比例,當(dāng)預(yù)測(cè)值和正確值皆為“無(wú)”時(shí),則此值不計(jì)入計(jì)算,當(dāng)預(yù)測(cè)值與正確值完全一致則判定為預(yù)測(cè)正確,否則判定為預(yù)測(cè)錯(cuò)誤。具體計(jì)算方法見(jiàn)公式(1)。評(píng)估結(jié)果示例,見(jiàn)表4,評(píng)估結(jié)果中correct為3,error為4,則準(zhǔn)確率為0.42。
準(zhǔn)確率 (1)
正常未經(jīng)過(guò)訓(xùn)練的模型對(duì)生活場(chǎng)景下病歷材料圖片內(nèi)的文本識(shí)別效果普遍不佳,而且提取內(nèi)容連貫性較差,喪失原本語(yǔ)義,因此需要在提取時(shí)考慮其原有內(nèi)容完整性。評(píng)測(cè)組織者的基線(xiàn)方法(baseline)使用DB[1]進(jìn)行文本檢測(cè)和CRNN[2]進(jìn)行文本識(shí)別的兩階段算法實(shí)現(xiàn)OCR。為解決圖片不規(guī)整造成的提取困難,使用BERT進(jìn)行文本分類(lèi)以及LSTM+CRF進(jìn)行命名實(shí)體識(shí)別的方法處理OCR提取后的文本部分。利用上述優(yōu)化后的模型對(duì)此數(shù)據(jù)集進(jìn)行測(cè)試,見(jiàn)表5。
表5 模型測(cè)驗(yàn)結(jié)果
經(jīng)過(guò)對(duì)原數(shù)據(jù)圖片和輸出值的對(duì)比,主要錯(cuò)誤類(lèi)型可以總結(jié)為以下幾類(lèi)。第1類(lèi)是印章對(duì)底版的信息遮擋導(dǎo)致目標(biāo)提取有誤,在各類(lèi)發(fā)票中,各機(jī)構(gòu)會(huì)蓋上紅色或藍(lán)色公章,這些公章掩蓋了部分底版信息,導(dǎo)致信息不能正確提取。第2類(lèi)是底版背景顏色深對(duì)顯示不清晰的信息造成影響,部分發(fā)票底版為深色背景,同樣會(huì)導(dǎo)致信息提取產(chǎn)生誤差。第3類(lèi)是票據(jù)中常出現(xiàn)套打情況,即打印非一次完成而是票據(jù)內(nèi)容打印在印好的票據(jù)底版上。套打時(shí)會(huì)因放置票據(jù)偏斜造成票據(jù)內(nèi)容覆蓋打印在底版文字上和打印內(nèi)容偏離指定區(qū)域兩種情況。第4類(lèi)是信息內(nèi)容不清晰,造成檢測(cè)識(shí)別模型準(zhǔn)確率低。第5類(lèi)是檢測(cè)模型誤差造成識(shí)別模型識(shí)別不準(zhǔn)確。第6類(lèi)是識(shí)別模型混淆相近字造成識(shí)別結(jié)果不正確。第7類(lèi)是文本結(jié)構(gòu)不統(tǒng)一,且其中各省市票據(jù)字符、語(yǔ)義信息排列不規(guī)律造成NER模型訓(xùn)練提取難度提升。第8類(lèi)是前置處理流程中檢測(cè)識(shí)別模型結(jié)果不正確,造成錯(cuò)別字和文本位置信息錯(cuò)誤,導(dǎo)致BERT結(jié)構(gòu)化模型提取失敗。從整體實(shí)驗(yàn)結(jié)果及錯(cuò)誤類(lèi)型分析中可以看到,目前模型性能相比人工標(biāo)注結(jié)果還有較大的提升空間,信息抽取效果有待提高。
本文介紹了專(zhuān)門(mén)用于醫(yī)療病歷材料標(biāo)注的特殊數(shù)據(jù)集。通過(guò)認(rèn)真嚴(yán)格的標(biāo)注過(guò)程獲得了高質(zhì)量數(shù)據(jù)集。實(shí)驗(yàn)結(jié)果證明醫(yī)療標(biāo)注任務(wù)數(shù)據(jù)集具有一定實(shí)用性,但其信息抽取效果有待提高。該數(shù)據(jù)集的發(fā)布有助于推進(jìn)醫(yī)療信息提取OCR模型的優(yōu)化,并促進(jìn)人工智能技術(shù)在醫(yī)療領(lǐng)域的應(yīng)用。