夏光輝 李軍蓮 邢寶坤 崔勝男
(中國醫(yī)學(xué)科學(xué)院醫(yī)學(xué)信息研究所 北京 l00020) (中國醫(yī)學(xué)科學(xué)院北京協(xié)和醫(yī)院 北京 100730)
2011年Watson 在美國最受歡迎的智力問答電視節(jié)目中亮相,一舉打敗人類智力競賽的冠軍,使人們認(rèn)識(shí)到醫(yī)療人工智能應(yīng)用前景廣闊,智能醫(yī)療逐漸成為計(jì)算機(jī)和醫(yī)學(xué)領(lǐng)域共同的研究熱點(diǎn)?;谌斯ぶ悄艿尼t(yī)療服務(wù)系統(tǒng)可以有效緩解優(yōu)質(zhì)醫(yī)療資源缺乏、分布不均而導(dǎo)致的看病難、醫(yī)患關(guān)系緊張等問題,而建設(shè)智能醫(yī)療服務(wù)系統(tǒng)需要將海量的醫(yī)療數(shù)據(jù)轉(zhuǎn)變?yōu)橛?jì)算機(jī)可識(shí)別和計(jì)算的結(jié)構(gòu)化形式,如何使計(jì)算機(jī)理解醫(yī)療大數(shù)據(jù)文本中的自然語言已經(jīng)成為智能醫(yī)療領(lǐng)域信息處理和數(shù)據(jù)挖掘研究面臨的關(guān)鍵問題。
命名實(shí)體識(shí)別(Named Entity Recognition,NER)是指從非結(jié)構(gòu)化文本中抽取表達(dá)特定含義的實(shí)體,從而形成結(jié)構(gòu)化、有明確類別歸屬的實(shí)體數(shù)據(jù)。中文醫(yī)學(xué)領(lǐng)域的NER研究主要針對(duì)生物醫(yī)學(xué)文獻(xiàn)和電子病歷兩類文本,近年來基于中文電子病歷的實(shí)體識(shí)別研究已經(jīng)有比較多的成果,基于條件隨機(jī)場(Conditional Random Field,CRF)的實(shí)體識(shí)別方法成為主流。目前國內(nèi)研究者基于CRF模型提出多種中文電子病歷實(shí)體識(shí)別的優(yōu)化改進(jìn)方案。許源等[1]針對(duì)腦卒中??频?00份入院記錄構(gòu)建語料庫,采取基于CRF和規(guī)則相結(jié)合的方法進(jìn)行醫(yī)學(xué)實(shí)體識(shí)別。孫安等[2]以CCKS2017提供的400份電子病歷數(shù)據(jù)作為研究對(duì)象,使用CRF++工具,通過構(gòu)建字粒度詞語特征提升實(shí)體識(shí)別模型的性能。于楠等[3]以400份電子病歷構(gòu)建語料庫,采取CRF++工具進(jìn)行實(shí)體識(shí)別,增加引導(dǎo)詞特征和構(gòu)詞結(jié)構(gòu)特征提升識(shí)別的準(zhǔn)確性。張祥偉等[4]以100份中文電子病歷構(gòu)建語料庫,基于CRF模型,構(gòu)建語言符號(hào)、詞性、關(guān)鍵詞、詞典、詞聚類等多種特征識(shí)別疾病、癥狀、檢查和治療4類實(shí)體。楊紅梅等[5]以240份肝細(xì)胞癌患者入院記錄和出院小結(jié)構(gòu)建語料庫,采取長短期記憶網(wǎng)絡(luò)(Long Short Term Memory,LSTM)與CRF相結(jié)合的方法構(gòu)建命名實(shí)體識(shí)別模型。此外國內(nèi)學(xué)者基于條件隨機(jī)場模型的中文電子病歷實(shí)體識(shí)別研究還包括電子病歷中時(shí)間類實(shí)體信息抽取研究[6-7]、充分利用未標(biāo)注語料的半監(jiān)督學(xué)習(xí)方法研究[8]等。綜上研究,條件隨機(jī)場不僅可以使用字、詞、詞性等多種上下文特征,還可以靈活引入詞典等外部特征,在命名實(shí)體識(shí)別任務(wù)中的效果已被廣泛認(rèn)可。但是由于患者隱私問題,電子病歷難以獲取,國內(nèi)還沒有公開可獲得的電子病歷數(shù)據(jù)庫,因此研究者只能局限于在較小規(guī)模的數(shù)據(jù)集上進(jìn)行算法驗(yàn)證,尚不能有效驗(yàn)證條件隨機(jī)場模型在醫(yī)學(xué)全學(xué)科進(jìn)行命名實(shí)體識(shí)別的泛化能力。
病例報(bào)告是醫(yī)學(xué)論文的一種常見體裁,往往通過對(duì)1 個(gè)、2 個(gè)或系列病例的診療經(jīng)過進(jìn)行生動(dòng)記錄和描述,試圖在疾病的表現(xiàn)、機(jī)理以及診斷治療等方面提供第一手感性資料[9]。病例報(bào)告類論文一般關(guān)注于一些首次發(fā)現(xiàn)或罕見、治療相關(guān)的副作用以及多種癥狀重疊容易誤診的病例,病例報(bào)告中的病例資料是經(jīng)過遴選、編輯、審校后的高質(zhì)量病歷數(shù)據(jù)。針對(duì)這些公開的優(yōu)質(zhì)病例資料自動(dòng)識(shí)別與提取相關(guān)診療信息,不僅能為公眾提供精準(zhǔn)的健康信息服務(wù),還能為臨床決策支持、輔助問診等應(yīng)用場景提供數(shù)據(jù)支持。本文以公開發(fā)表的病例報(bào)告文獻(xiàn)中的臨床資料構(gòu)建醫(yī)療實(shí)體識(shí)別語料庫,使用條件隨機(jī)場模型,融合多種特征,實(shí)現(xiàn)疾病、癥狀、檢查、治療等醫(yī)療實(shí)體的識(shí)別。
本研究使用的病例報(bào)告原始語料均來源于中華醫(yī)學(xué)會(huì)系列期刊2015年發(fā)表的300篇相關(guān)文獻(xiàn),為盡量保證病例資料覆蓋醫(yī)學(xué)全領(lǐng)域,分別從11種期刊中隨機(jī)選擇文獻(xiàn),獲取病例報(bào)告文獻(xiàn)的標(biāo)題和臨床資料兩部分內(nèi)容,具體情況,見表1。
表1 病例報(bào)告語料數(shù)據(jù)分布情況
I2B2 2010語料的實(shí)體類型分為醫(yī)療問題(medical problem)、檢查(test)和治療(treatment)3類[10];楊錦鋒等構(gòu)建的電子病歷語料庫中實(shí)體類型分為疾病、疾病診斷分類、癥狀、檢查、治療5類[11]。本研究借鑒以上語料庫構(gòu)建經(jīng)驗(yàn),將病例報(bào)告中的實(shí)體分為疾病、癥狀、檢查和治療4種類型,參考一體化醫(yī)學(xué)語言系統(tǒng)(Unified Medical Language System,UMLS)的語義類型界定每一類實(shí)體涵蓋的范圍,但不局限于UMLS中的概念。疾病(diseases)是導(dǎo)致患者處于非健康狀態(tài)的原因或者醫(yī)生對(duì)患者做出的診斷統(tǒng)稱為疾病,如高血壓、股骨骨折、畸形等。癥狀(symptoms)是指患者主觀感受到的不適應(yīng)或痛苦的異常感覺或某些客觀的病態(tài)改變,同時(shí)還包括醫(yī)師或其他人客觀檢查到的改變,即體征(sign),如肢體無力、耳鳴、惡心、低血壓等[12]。檢查(test)指的是為證實(shí)患者是否具有某種疾病或者出現(xiàn)某種癥狀而進(jìn)行體格、實(shí)驗(yàn)室、器械檢查等過程以及相應(yīng)的檢查設(shè)備、項(xiàng)目,如尿常規(guī)、心電圖、心肺聽診等。治療(treatment)指的是為解決疾病或者緩解癥狀而施加給患者的治療程序、干預(yù)措施、給予藥品、手術(shù)操作,如輸血、胰島素、肺切除術(shù)等。本研究所定義的命名實(shí)體遵循3條基本原則:實(shí)體是意義完整的最小片段;實(shí)體間不重疊、不嵌套、不含有除頓號(hào)以外的標(biāo)點(diǎn)符號(hào);“頓號(hào)”、“伴”、“及”、“并”等表達(dá)并列關(guān)系的字符,基于上下文語境理解不可或缺時(shí)可作為實(shí)體的組成部分。
考慮到病例報(bào)告涉及的內(nèi)容專業(yè)性較強(qiáng),語料標(biāo)注采取規(guī)范制定團(tuán)隊(duì)預(yù)先形成語料標(biāo)注規(guī)范指導(dǎo)標(biāo)注人員人工標(biāo)注,遇到疑惑時(shí)標(biāo)注人員可將實(shí)體標(biāo)注狀態(tài)修改為存疑,待與規(guī)范制定團(tuán)隊(duì)討論達(dá)成一致后,修改實(shí)體標(biāo)注狀態(tài)并完善標(biāo)注規(guī)范。標(biāo)注團(tuán)隊(duì)主要包括1名醫(yī)院病案科研究人員、1名醫(yī)院醫(yī)護(hù)人員,他們?cè)诠ぷ髦袇⑴c電子病歷的書寫和核查,具備足夠的醫(yī)療知識(shí),積累豐富的臨床經(jīng)驗(yàn);規(guī)范制定團(tuán)隊(duì)包括兩名自然語言處理領(lǐng)域相關(guān)研究人員。整個(gè)語料標(biāo)注過程分為4輪,其中前兩輪是預(yù)標(biāo)注,第3輪是正式標(biāo)注,第4輪是標(biāo)注審核。預(yù)標(biāo)注旨在培訓(xùn)標(biāo)注人員,熟悉標(biāo)注規(guī)范的同時(shí)理解語料標(biāo)注的目的,逐步完善標(biāo)注規(guī)范,解決標(biāo)注人員的疑問。經(jīng)過兩輪預(yù)標(biāo)注,兩名標(biāo)注者的一致性達(dá)到90%,開始正式標(biāo)注[13]。預(yù)標(biāo)注共包含50份病例報(bào)告,每輪的25份病例報(bào)告由兩名標(biāo)注者分別獨(dú)立標(biāo)注,簡稱為A和B。病例報(bào)告語料標(biāo)注流程,見圖1。兩名標(biāo)注者通過標(biāo)注平臺(tái),參照標(biāo)注規(guī)范,單獨(dú)完成25份病例報(bào)告的標(biāo)注。通過平臺(tái)的比較功能,標(biāo)注人員與規(guī)范制定人員共同討論,針對(duì)不一致的標(biāo)注實(shí)體達(dá)成一致后可在平臺(tái)上進(jìn)行修改、確認(rèn)和刪除,完善標(biāo)注規(guī)范并補(bǔ)充標(biāo)注樣例,指導(dǎo)后續(xù)標(biāo)注工作。病例報(bào)告標(biāo)注平臺(tái)語料審核示例,見圖2。兩名標(biāo)注人員標(biāo)注結(jié)果不一致,標(biāo)注平臺(tái)將以不同顏色的文字表示實(shí)體類別,同時(shí)通過添加底紋的方式突出顯示不一致的實(shí)體文字,以便于討論修改形成統(tǒng)一共識(shí)的標(biāo)注規(guī)范和語料庫。第3輪正式標(biāo)注共包含300份病例報(bào)告文本,其中包括預(yù)標(biāo)注的50份病例報(bào)告。正式標(biāo)注由兩名標(biāo)注者共同完成。為確保人工標(biāo)注的進(jìn)度和質(zhì)量,規(guī)范制定者可在平臺(tái)上實(shí)時(shí)查看標(biāo)注進(jìn)度并對(duì)已完成的標(biāo)注文本進(jìn)行審核。
圖1 病例報(bào)告語料標(biāo)注流程
圖2 病例報(bào)告標(biāo)注平臺(tái)語料審核
實(shí)體特征是命名實(shí)體識(shí)別準(zhǔn)確與否的決定性因素。在命名實(shí)體識(shí)別任務(wù)中常構(gòu)建的實(shí)體特征包括字符、詞性特征等,特征之間可以構(gòu)成不同的組合。實(shí)體識(shí)別過程中關(guān)鍵在于針對(duì)相應(yīng)任務(wù)模型選取合適、準(zhǔn)確度高的特征來表示文本中隱含、嵌套的語言邏輯。醫(yī)學(xué)病例報(bào)告文本一般采用敘述形式,具有語言簡潔以及非標(biāo)準(zhǔn)的描述特性,因此沒有高層次的句法特征。通過分析病例報(bào)告文本結(jié)構(gòu),本文從常用的特征集合中選取幾種合適的來標(biāo)識(shí)病例報(bào)告文本。(1)字符特征。是最基本、最直接地表達(dá)文本序列中元素的一類特征,本文所指的字符包括漢字、標(biāo)點(diǎn)符號(hào)、外文字母、數(shù)字和日期等。(2)詞邊界特征。用于反映邊界特征字符的位置信息,幫助確定命名實(shí)體的邊界。本文實(shí)驗(yàn)中采用BIEO 編碼模式來表示輸入觀測(cè)序列元素的詞邊界特征。其中 B表示實(shí)體名稱的開始,即左邊界;I 表示實(shí)體名稱的內(nèi)部,即實(shí)體的非邊界部分;E 表示實(shí)體的結(jié)束,即右邊界;O 表示非實(shí)體。(3)上下文特征。在本文中指的是窗口長度內(nèi)觀測(cè)值之間或特征之間的相互依賴關(guān)系,既可以表示實(shí)體內(nèi)部的依賴關(guān)系,也可以表示實(shí)體內(nèi)部與外部的相互關(guān)系。上下文窗口由當(dāng)前詞以及前后若干個(gè)詞組成,上下文窗口長度依據(jù)所識(shí)別實(shí)體的長度進(jìn)行設(shè)定[14]。在本文試驗(yàn)中窗口大小設(shè)置為9。(4)詞性特征。在自然語言處理任務(wù)中詞性標(biāo)記可以深度挖掘詞語組合形成的詞法信息,表達(dá)句子中存在的固有結(jié)構(gòu),提升特征集的區(qū)分度。詞性特征由ANSJ中文分詞工具生成。(5)詞典特征。本文基于CMeSH,依據(jù)主題詞的樹狀結(jié)構(gòu)號(hào)構(gòu)造疾病、癥狀、檢查、治療等實(shí)體詞典,基于實(shí)體詞典采取字符串匹配的方式構(gòu)建語料詞典特征。(6)融合特征。當(dāng)單一的特征不足以準(zhǔn)確表達(dá)輸入觀測(cè)序列中元素之間的相互依賴關(guān)系時(shí),可通過對(duì)不同單一特征的相應(yīng)組合表示觀測(cè)元素間更為深層次的語義結(jié)構(gòu)。通過特征模板提出一種融合特征,由字符、詞性和詞典特征隨機(jī)融合而成。
2001年由John Lafferty等人提出基于統(tǒng)計(jì)的序列標(biāo)注識(shí)別模型[15]。是連續(xù)優(yōu)化的最大熵模型,具有較強(qiáng)的特征融合能力,可以在模型中靈活添加特征來表示元素之間的關(guān)系??朔^察值之間的獨(dú)立假設(shè),采用全局歸一化的方法,有效避免數(shù)據(jù)稀疏性問題,特征權(quán)值全局最優(yōu),避免標(biāo)注偏倚問題,在CCKS 2017中文電子病歷命名實(shí)體識(shí)別評(píng)測(cè)會(huì)議中被廣泛使用[16-17]。在條件隨機(jī)場模型中,若令x={x1,x2,…,xn}為觀測(cè)序列,y={y1,y2,…,yn}為與之相應(yīng)的標(biāo)記序列,則條件概率為:
公式(1)
其中Zx是所有狀態(tài)序列的標(biāo)準(zhǔn)化因子,fj是特征向量函數(shù),λj是特征權(quán)重。當(dāng)訓(xùn)練狀態(tài)序列被完全明確地標(biāo)記后可為該模型找到最優(yōu)的λ值。在此基礎(chǔ)上使用Viterbi算法得到最佳狀態(tài)序列。本文使用斯坦福大學(xué)開源的命名實(shí)體類識(shí)別工具Stanford NER,其基于CRF模型實(shí)現(xiàn)。
本文將300份病例報(bào)告語料中的200份作為訓(xùn)練集,100份作為測(cè)試集。評(píng)價(jià)指標(biāo)采用機(jī)器學(xué)習(xí)領(lǐng)域常用的準(zhǔn)確率P(Precision)、召回率R(Recall)和F值(F-measure),具體計(jì)算公式如下:
公式(2)
公式(3)
公式(4)
為驗(yàn)證不同特征對(duì)識(shí)別效果的影響,首先選擇字符特征(word),然后逐漸增加詞性特征(pos)、詞典特征(dic)。不同特征的實(shí)驗(yàn)情況,見表2??梢钥闯霎?dāng)添加詞典特征時(shí),相比于只用到字符特征,準(zhǔn)確率略有上升,最終達(dá)到79.40%,F值也有提升,最終達(dá)到76.67%。而添加詞性特征時(shí),相比于只用到字符特征,召回率略有上升,最終達(dá)到74.30%,但準(zhǔn)確率下降較多,最終F值為76.44%。實(shí)驗(yàn)結(jié)果表明當(dāng)融合字符、詞典特征時(shí)實(shí)體識(shí)別的準(zhǔn)確率能有效提高。而因病例報(bào)告中臨床資料文本的語言特性,如行文中句子語法成分不完整、動(dòng)詞缺失,導(dǎo)致詞性特征用于病例報(bào)告臨床醫(yī)學(xué)診療實(shí)體的識(shí)別效果不明顯。
(1)在語料標(biāo)注規(guī)范中基于臨床含義和上下文語境的考慮,對(duì)語料中的頓號(hào),及、和等表示并列關(guān)系的符號(hào)整體標(biāo)注為診療實(shí)體,但基于語義理解的實(shí)體識(shí)別還有待進(jìn)一步提高。如“計(jì)算力、記憶力差”識(shí)別為“記憶力差”,“腦脊液常規(guī)和生化”識(shí)別為“腦脊液常規(guī)”、“生化”兩個(gè)檢查實(shí)體,“雙腎上腺CT平掃及強(qiáng)化” 識(shí)別為“雙腎上腺CT平掃”、“強(qiáng)化”兩個(gè)檢查實(shí)體。(2)語料數(shù)據(jù)稀疏導(dǎo)致實(shí)體未識(shí)別。如“神經(jīng)功能”、“瞌睡”等實(shí)體未識(shí)別。(3)實(shí)體邊界識(shí)別錯(cuò)誤。如“雙耳中低頻感音性耳聾”識(shí)別為“感音性耳聾”,“闌尾炎術(shù)后”識(shí)別為“闌尾炎”。(4)實(shí)體類別識(shí)別錯(cuò)誤。如誤將治療實(shí)體“膀胱肌瘤、大網(wǎng)膜肌瘤、腸系膜肌瘤、闌尾系膜肌瘤切除術(shù)”識(shí)別為疾病實(shí)體“膀胱肌瘤”、“大網(wǎng)膜肌瘤”、“腸系膜肌瘤”和治療實(shí)體“闌尾系膜肌瘤切除術(shù)”。從以上分析得出,基于臨床真實(shí)含義結(jié)合上下文語境進(jìn)行命名實(shí)體識(shí)別、語料構(gòu)建時(shí)標(biāo)注人員也基于臨床上下文語境標(biāo)注診療實(shí)體,但本文構(gòu)建的模型在進(jìn)行基于語義理解的命名實(shí)體識(shí)別時(shí)精準(zhǔn)度還有待提高。
表2 采取不同特征組合的實(shí)體識(shí)別評(píng)測(cè)結(jié)果
本文基于病例報(bào)告文獻(xiàn)構(gòu)建語料集,基于條件隨機(jī)場模型提出一種多特征融合的中文病例報(bào)告診療命名實(shí)體識(shí)別方法。采用遞增式的特征學(xué)習(xí)策略,測(cè)試不同特征組合用于中文病例報(bào)告命名實(shí)體識(shí)別的效果,最終融合字符、詞邊界、上下文、詞性和詞典等特征,構(gòu)建的模型能準(zhǔn)確識(shí)別出中文病例報(bào)告中的大部分診療實(shí)體。但由于病例報(bào)告中的病例資料高度凝練,其行文中并列結(jié)構(gòu)、縮略語和上下文語義關(guān)聯(lián)較多,該模型在此方面的識(shí)別能力還有待提高,后續(xù)可在以下幾方面進(jìn)一步優(yōu)化:(1)將機(jī)器學(xué)習(xí)方法與基于語言規(guī)則的模式匹配方法相結(jié)合,提升針對(duì)特定語言結(jié)構(gòu)的實(shí)體識(shí)別能力。(2)借助于本研究構(gòu)建的病例報(bào)告標(biāo)注規(guī)范和標(biāo)注平臺(tái),構(gòu)建更大規(guī)模的高質(zhì)量醫(yī)學(xué)診療語料庫,提高機(jī)器學(xué)習(xí)模型的識(shí)別效果。(3)進(jìn)一步優(yōu)化機(jī)器學(xué)習(xí)算法,豐富中文語料特征集,結(jié)合醫(yī)生臨床診療過程的應(yīng)用場景,研究基于語義理解的命名實(shí)體識(shí)別,推動(dòng)實(shí)體識(shí)別技術(shù)在臨床輔助診療決策中的應(yīng)用。