楊 兵,聶鐵錚,申德榮,寇 月,于 戈
(東北大學(xué) 計(jì)算機(jī)科學(xué)與工程學(xué)院,沈陽(yáng) 110819)
隨著國(guó)內(nèi)信息技術(shù)蓬勃發(fā)展,數(shù)字化建設(shè)步伐加快,各大醫(yī)療機(jī)構(gòu)在很好地服務(wù)人們的同時(shí)也積累了大量的醫(yī)學(xué)信息數(shù)據(jù).然而,目前大部分的醫(yī)療文本都是以自然語(yǔ)言描述的非結(jié)構(gòu)化數(shù)據(jù),如醫(yī)學(xué)影像報(bào)告、病理報(bào)告等.由于自然語(yǔ)言與機(jī)器語(yǔ)言之間存在巨大鴻溝,導(dǎo)致用計(jì)算機(jī)直接處理和分析非結(jié)構(gòu)化文本的效率較低,也影響了分析結(jié)果的質(zhì)量[1].因此,如何利用現(xiàn)有的技術(shù)方法從非結(jié)構(gòu)化的醫(yī)學(xué)文本數(shù)據(jù)中提取潛藏的、有價(jià)值的信息逐漸成為信息抽取[2,3]領(lǐng)域關(guān)注和研究的重點(diǎn).
醫(yī)學(xué)影像報(bào)告是醫(yī)生根據(jù)X線片、CT、MR等影像學(xué)資料編寫的一種電子文本記錄,是一種典型的非結(jié)構(gòu)化數(shù)據(jù),其目的是反映疾病在某一階段的病理變化和功能改變,是重要的臨床診斷參考依據(jù).然而,目前的醫(yī)學(xué)影像報(bào)告主要是通過(guò)醫(yī)務(wù)工作者在電子信息系統(tǒng)中手動(dòng)編寫的方法來(lái)產(chǎn)生.一方面,這種報(bào)告文本往往沒(méi)有固定的書寫格式,并且要求表述確切、內(nèi)容全面,常常使用大量的醫(yī)學(xué)術(shù)語(yǔ)進(jìn)行描述;另一方面,為了方便臨床醫(yī)生的快速診斷,要求文字簡(jiǎn)明扼要、重點(diǎn)突出,因而常常使用短句描述,這就需要豐富的醫(yī)學(xué)領(lǐng)域知識(shí)和一定的語(yǔ)言學(xué)功底.
針對(duì)以上問(wèn)題,本文在分析醫(yī)學(xué)影像報(bào)告數(shù)據(jù)特征的基礎(chǔ)上,提出了一種高效的針對(duì)醫(yī)學(xué)文本數(shù)據(jù)的結(jié)構(gòu)化信息抽取方法.該方法首先構(gòu)建VSM模型[4]對(duì)訓(xùn)練文本進(jìn)行聚類,再?gòu)木垲惡蟮奈谋炯现凶R(shí)別并提取醫(yī)學(xué)描述語(yǔ)言常用的關(guān)鍵詞,以生成醫(yī)學(xué)領(lǐng)域的專業(yè)術(shù)語(yǔ)庫(kù),并將該醫(yī)學(xué)術(shù)語(yǔ)庫(kù)用于提高中文分詞處理的效果,然后對(duì)文本中的描述短句進(jìn)行語(yǔ)義依存分析并構(gòu)建依存句法樹(shù),以實(shí)現(xiàn)對(duì)醫(yī)學(xué)描述中的關(guān)鍵指標(biāo)及其指標(biāo)值的抽取,最終得到
早期的結(jié)構(gòu)化信息抽取主要面向英文文本,因?yàn)橛⑽恼Z(yǔ)法形式更為規(guī)范,并且已經(jīng)構(gòu)建了強(qiáng)大的語(yǔ)義知識(shí)庫(kù)(WordNet[5]等),而國(guó)內(nèi)針對(duì)中文文本的結(jié)構(gòu)化抽取技術(shù)還相對(duì)不夠成熟,這主要因?yàn)閲?guó)內(nèi)該領(lǐng)域的研究起步較晚,且中文語(yǔ)法復(fù)雜,常常需要進(jìn)行中文分詞[6,7]、實(shí)體識(shí)別[8]等處理,這使得針對(duì)中文的結(jié)構(gòu)化數(shù)據(jù)抽取更為困難,并且現(xiàn)有的知識(shí)庫(kù)(HowNet[9]等)并不支持特定領(lǐng)域內(nèi)的詞匯和語(yǔ)法.尤其是面向醫(yī)學(xué)文本數(shù)據(jù),由于書寫自由、領(lǐng)域突出等特點(diǎn),采用的方法大多依賴于通用的中文分詞系統(tǒng),如北京理工大學(xué)張華平博士團(tuán)隊(duì)的NLPIR[10]、復(fù)旦大學(xué)自然語(yǔ)言處理團(tuán)隊(duì)的FNLP[11]以及從開(kāi)源項(xiàng)目Lucene發(fā)展而來(lái)的IKAnalyzer[12],此外還需要中文醫(yī)學(xué)知識(shí)庫(kù)的支持(如CMeSH[13]).
目前,對(duì)非結(jié)構(gòu)化的醫(yī)學(xué)文本進(jìn)行信息抽取大多采用基于規(guī)則的方式,但由于醫(yī)療文本中不同組織器官所具有的屬性不同,且描述不同病種所使用的指標(biāo)詞也不同,所以若想制定出一種適用所有醫(yī)學(xué)報(bào)告形式的結(jié)構(gòu)化規(guī)則十分困難[1].因此,研究人員從自然語(yǔ)言處理和機(jī)器學(xué)習(xí)兩個(gè)方向做了很多嘗試.
Socher R[14]等人提出了一種基于依賴關(guān)系樹(shù)的DT-RNN模型,該模型與之前使用分區(qū)樹(shù)的RNN模型不同,DT-RNN能更好地抽象出詞序和句法的細(xì)節(jié)描述,并使用遞歸神經(jīng)網(wǎng)絡(luò)將句子映射到一個(gè)抽象空間,然后計(jì)算句子在依賴樹(shù)中的向量表達(dá),最終通過(guò)這種方法得到的句子向量所包含的語(yǔ)義信息.
Li[15]等人提出一種基于詞語(yǔ)位置增益和知識(shí)庫(kù)(HowSet)語(yǔ)義的計(jì)算模型——LaSE,考慮文本數(shù)據(jù)中的位置特征和語(yǔ)義特征,而位置特征具有可計(jì)算性和可操作性,語(yǔ)義特征具有可理解性和現(xiàn)實(shí)性,通過(guò)這種特征結(jié)合的方式來(lái)進(jìn)行實(shí)體關(guān)系抽取.
Jonnalagadda S[16]等人使用語(yǔ)義劃分來(lái)進(jìn)行醫(yī)學(xué)領(lǐng)域的概念抽取,該方法使用判別式分類器(CRF)來(lái)提取醫(yī)療事故、臨床描述以及試驗(yàn)中的醫(yī)學(xué)概念.通過(guò)語(yǔ)義劃分的方式來(lái)構(gòu)建索引,然后從未標(biāo)注的語(yǔ)料數(shù)據(jù)中構(gòu)建向量空間模型,進(jìn)行分類任務(wù),并從給定的句子分類結(jié)果中抽取出詞匯模式.
Denecke K[17]等人使用統(tǒng)一醫(yī)學(xué)語(yǔ)言系統(tǒng)(UMLS)來(lái)進(jìn)行語(yǔ)義結(jié)構(gòu)化和信息提取,并提出了一種從自然語(yǔ)言文本數(shù)據(jù)中自動(dòng)生成知識(shí)表示的方法——SeReMeD,然后結(jié)合現(xiàn)有的語(yǔ)言工程方法和語(yǔ)義轉(zhuǎn)換規(guī)則,將語(yǔ)義信息映射為語(yǔ)義表示,并通過(guò)這種方式將醫(yī)學(xué)文獻(xiàn)的內(nèi)容轉(zhuǎn)換為結(jié)構(gòu)化的語(yǔ)義信息.
上述方法都主要從模型和方法角度來(lái)進(jìn)行研究,而忽略了數(shù)據(jù)本身的特征,即沒(méi)有充分考慮醫(yī)學(xué)文本數(shù)據(jù)(如醫(yī)學(xué)影像報(bào)告)所獨(dú)有的詞匯特征和語(yǔ)法特征.本文在總結(jié)各種模型和方法的同時(shí),深入分析了實(shí)驗(yàn)數(shù)據(jù)本身的特殊性以及與其他文本數(shù)據(jù)的差異性,針對(duì)醫(yī)學(xué)領(lǐng)域的專業(yè)詞匯和醫(yī)學(xué)報(bào)告的語(yǔ)法習(xí)慣分別構(gòu)建醫(yī)學(xué)術(shù)語(yǔ)庫(kù)和依存關(guān)系庫(kù),并進(jìn)行多次迭代計(jì)算,以實(shí)現(xiàn)高魯棒性和可擴(kuò)展性.
醫(yī)學(xué)文本是醫(yī)務(wù)工作者在電子信息系統(tǒng)中采用自然語(yǔ)言編寫的一種記錄報(bào)告.以醫(yī)學(xué)影像報(bào)告為例,醫(yī)生通過(guò)觀察醫(yī)學(xué)影像設(shè)備(如胃鏡、支氣管鏡、CT、彩超等)的圖像顯示,給出病灶在某一階段的病理變化和功能改變的描述,數(shù)據(jù)樣例如表1所示.
表1 醫(yī)學(xué)影像報(bào)告數(shù)據(jù)樣例
Table 1 Data sample of medical imaging reports
檢查項(xiàng)目主要病癥人工描述支氣管鏡肺惡性腫瘤氣管環(huán)清晰,粘膜正常,隆突銳利,血管紋理清晰,左上葉管口可見(jiàn)新生物,管腔完全阻塞,取病理,左肺二級(jí)隆突粘膜充血,肥厚,左下葉管口粘膜充血,肥厚,左下葉B6管口局部粘膜充血,左肺余支氣管開(kāi)口正常,未見(jiàn)新生物,右肺各支氣管開(kāi)口正常,未見(jiàn)新生物.
因此,醫(yī)學(xué)影像報(bào)告是醫(yī)生編寫的一種病情描述,由表1可知,其用詞上大量使用醫(yī)學(xué)術(shù)語(yǔ),如“氣管環(huán)”、“隆突”、“管腔”等;語(yǔ)法上主要采用短句結(jié)構(gòu),并為了語(yǔ)言精簡(jiǎn)而大量省略動(dòng)詞,同時(shí)常常伴有文言句式的表達(dá)形式,如“取病理”、“可見(jiàn)……”、“未見(jiàn)……”等.為了減少人工閱讀量,需要從這些文本數(shù)據(jù)中抽取結(jié)構(gòu)化信息,但前提是必須準(zhǔn)確識(shí)別這種自然語(yǔ)言描述中的關(guān)鍵指標(biāo)及其相對(duì)應(yīng)的指標(biāo)值.下面給出本文所涉及到的幾個(gè)定義.
定義1.病灶.機(jī)體上發(fā)生病變的部分,包括人體中任何組織器官的病變.
定義2.關(guān)鍵指標(biāo).對(duì)人體指定部位檢查所涉及到的組織名和器官名等名詞.
定義3.指標(biāo)值.一種與關(guān)鍵指標(biāo)名相對(duì)應(yīng)的描述信息.
以表1中的數(shù)據(jù)為例,在人工描述中包含“氣管環(huán)”、“粘膜”、“血管紋理”等人體肺部的組織器官名,即為關(guān)鍵指標(biāo)名,而對(duì)于這些指標(biāo)名的描述即為對(duì)應(yīng)的指標(biāo)值.因此,可以大致得到表1中人工描述信息進(jìn)行抽取后的結(jié)果,如表2所示.
表2 結(jié)構(gòu)化抽取結(jié)果示例
Table 2 Example of structured extraction
本文提出的方法主要是對(duì)醫(yī)學(xué)報(bào)告文本中的結(jié)構(gòu)化信息進(jìn)行抽取,如圖1所示,系統(tǒng)分為兩個(gè)處理模塊:
圖1 醫(yī)學(xué)文本數(shù)據(jù)結(jié)構(gòu)化抽取過(guò)程Fig.1 Processing of structured extraction for medical text data
1)在醫(yī)學(xué)術(shù)語(yǔ)提取模塊,對(duì)預(yù)處理后的訓(xùn)練文本進(jìn)行聚類,然后在每個(gè)文本類簇中進(jìn)行關(guān)鍵詞抽取,以獲取具有豐富領(lǐng)域知識(shí)的醫(yī)學(xué)術(shù)語(yǔ)庫(kù).
2)在結(jié)構(gòu)化信息抽取模塊,利用生成的醫(yī)學(xué)術(shù)語(yǔ)庫(kù)提高測(cè)試文本的分詞質(zhì)量,再利用現(xiàn)有的依存關(guān)系庫(kù)進(jìn)行語(yǔ)義依存分析,構(gòu)建依存句法樹(shù)的結(jié)構(gòu),然后依據(jù)語(yǔ)法規(guī)則抽取關(guān)鍵指標(biāo)及其對(duì)應(yīng)的指標(biāo)值,最終得到結(jié)構(gòu)化的輸出結(jié)果.
該模塊包含文本預(yù)處理、文本聚類和關(guān)鍵詞抽取三個(gè)操作,主要處理的是訓(xùn)練文本,目的是為了獲取具有領(lǐng)域知識(shí)的醫(yī)學(xué)術(shù)語(yǔ)庫(kù).在預(yù)處理階段,主要是分詞和數(shù)據(jù)清洗,包括去除停用詞和過(guò)濾句子結(jié)束符等.關(guān)于文本聚類和關(guān)鍵詞提取兩個(gè)階段,本文將分別在4.2.1節(jié)和4.2.2節(jié)中詳細(xì)介紹.
4.2.1 文本聚類
如第3小節(jié)所描述的數(shù)據(jù)特征,醫(yī)學(xué)文本往往句式復(fù)雜并且常常采用大量短句結(jié)構(gòu),從而造成語(yǔ)義晦澀,不便于機(jī)器理解,類別分散,聚類數(shù)據(jù)量大等困難,所以常用的聚類算法[18]并不能很好地處理這類數(shù)據(jù).因此,本文采用了基于向量空間模型(VSM)的文本聚類方法,以向量的形式來(lái)量化分析醫(yī)學(xué)文本的類別特征.
在向量空間模型中,每一個(gè)文本被看成一個(gè)詞匯集合,然后被表示成詞條權(quán)重的向量:
di={wi1,wi2,…,win}
(1)
其中,di表示一個(gè)文本,n表示詞條空間的維數(shù),每一個(gè)詞條的權(quán)重win代表了該詞條在文本中的重要性.
本文使用TF-IDF方法來(lái)計(jì)算詞條的權(quán)重,并使用向量的余弦系數(shù)來(lái)衡量文本之間的相似度[4],最終將文本數(shù)據(jù)劃分到不同的類簇中.
4.2.2 關(guān)鍵詞提取
為了獲得醫(yī)學(xué)領(lǐng)域的常用術(shù)語(yǔ),需要提取每一個(gè)文本類簇中重要的描述詞,即醫(yī)學(xué)文本中的關(guān)鍵詞.為此,本文使用一種改進(jìn)的TextRank[19,20]算法,在有向圖結(jié)構(gòu)中使用依存關(guān)系作為節(jié)點(diǎn)詞之間關(guān)聯(lián)的主要規(guī)則,并且采用短句拆分的方式來(lái)降低圖結(jié)構(gòu)的復(fù)雜程度.如算法1所示,這種方法可以在不需經(jīng)過(guò)預(yù)先訓(xùn)練的情況下進(jìn)行關(guān)鍵詞提取.
考慮到依存關(guān)系只出現(xiàn)在相鄰兩個(gè)詞之間且文本以短句為主,所以算法1中的窗口大小k設(shè)置為2,權(quán)重收斂條件為連續(xù)兩次計(jì)算的結(jié)果相差不超過(guò)0.0001,權(quán)重更新的最大迭代次數(shù)count為10,候選關(guān)鍵詞數(shù)t為3.
然而,由于構(gòu)建有向圖之前還需要利用現(xiàn)有工具對(duì)描述短句進(jìn)行分詞和詞性標(biāo)注,鑒于目前的各種NLP系統(tǒng)在醫(yī)學(xué)領(lǐng)域的文本數(shù)據(jù)上處理效果一般,所以在利用算法1提取出關(guān)鍵詞后還需要進(jìn)一步的人工校正,以提高醫(yī)學(xué)術(shù)語(yǔ)庫(kù)的可用性.
該模塊包含中文分詞、語(yǔ)義依存分析和關(guān)鍵指標(biāo)抽取三個(gè)操作,目的是從醫(yī)學(xué)文本中抽取出結(jié)構(gòu)化的鍵值對(duì)數(shù)據(jù).在中文分詞階段,本文采用基于HMM訓(xùn)練模型的Jieba分詞系統(tǒng),并利用在4.2節(jié)中生成的醫(yī)學(xué)術(shù)語(yǔ)庫(kù)來(lái)識(shí)別醫(yī)學(xué)文本描述中的命名實(shí)體,包括人體組織名、器官名和一些常用的醫(yī)學(xué)表述詞,以此來(lái)提高醫(yī)學(xué)領(lǐng)域文本數(shù)據(jù)的分詞質(zhì)量,而語(yǔ)義依存分析和關(guān)鍵指標(biāo)抽取兩個(gè)階段將分別在4.3.1節(jié)和4.3.2節(jié)中詳細(xì)介紹.
算法1.基于TextRank的關(guān)鍵詞提取算法
輸入:文本類簇集合CLUSTERS,每個(gè)類簇包含若干個(gè)文本dj,迭代次數(shù)count,窗口大小k,候選詞數(shù)t;
輸出:關(guān)鍵詞集合KeyWords.
1. 初始化WordSet=φ,迭代次數(shù)count=0;
2. FORCiINCLUSTERS
3. FORdjINCi
4.WordList=posSegment(dj);
5. FORwkINWordList
6. Filter(wk);/*對(duì)wk進(jìn)行語(yǔ)法過(guò)濾*/
7. Graph←wk;/*將詞wk添加到有向圖中*/
8. IF dependency(wk,wl,k)
9. Graph←edge;/*添加有向邊*/
10.WS←Init();/*初始化權(quán)重*/
11. WHILEcount 12. IFWS達(dá)到收斂 break; 13. Update(WS);/*更新權(quán)重WS*/ 14. count++; 15. WHILE 節(jié)點(diǎn)Vi≠NULL 16. Sort(WS) /*節(jié)點(diǎn)權(quán)重降序排列*/ 17. WHILEi 18.WordSet←Vi;/*將節(jié)點(diǎn)詞添加到KeyWords*/ 19.count←0;/*更新迭代次數(shù)為0*/ 20. RETURNKeyWords. 4.3.1 語(yǔ)義依存分析 由于醫(yī)學(xué)文本都是采用自然語(yǔ)言描述的,需要通過(guò)語(yǔ)義分析來(lái)進(jìn)行解析,因此本文利用依存語(yǔ)法來(lái)分析詞條之間的這種語(yǔ)義依存[21-23]關(guān)系.依存語(yǔ)法是一種描述句子中各個(gè)詞條之間的依存結(jié)構(gòu)的語(yǔ)法,這種語(yǔ)法不僅表示形式簡(jiǎn)單,而且保留了短語(yǔ)結(jié)構(gòu)信息.語(yǔ)言學(xué)家Robinson[24]總結(jié)了依存語(yǔ)法的理論基礎(chǔ),歸納出以下4個(gè)公理: 公理1.一個(gè)句子中只有一個(gè)成分可以作為核心成分; 公理2.一個(gè)句子中的某一成分直接依存于句子中的其他成分; 公理3.句子中的任何成分不能依存于兩個(gè)或者兩個(gè)以上的成分; 公理4.句子中具有依存關(guān)系的成分之間不能有交叉關(guān)系. 根據(jù)依存語(yǔ)法的4個(gè)約束公理,本文在現(xiàn)有語(yǔ)法規(guī)則的基礎(chǔ)上歸納總結(jié)了中文自然語(yǔ)言中常用的14種語(yǔ)義依存關(guān)系,如表3所示.同時(shí)為了方便檢索和理解,本文對(duì)每一種依存關(guān)系都做了相應(yīng)的標(biāo)注和英文描述,通過(guò)這些常見(jiàn)的語(yǔ)義依存關(guān)系來(lái)構(gòu)建一個(gè)依存關(guān)系庫(kù),并將其應(yīng)用于后續(xù)的語(yǔ)義依存分析處理. 在語(yǔ)義依存分析階段,本文使用CRFs模型獲取短句中任意兩詞之間最可能的依存關(guān)系,并采用最小生成樹(shù)算法來(lái)構(gòu)建依存句法樹(shù).以表1中的數(shù)據(jù)樣例為例,人工描述中寫到“左上葉管口可見(jiàn)新生物”,進(jìn)行中文分詞后可得到詞條序列{“左上葉/nz”、“管口/n”、“可見(jiàn)/v”、“新生物/n”},再分析語(yǔ)義依存關(guān)系可得到圖2所示的依存句法樹(shù).由圖2可知,依存關(guān)系樹(shù)的根節(jié)點(diǎn)就是每個(gè)短句具有核心關(guān)系的詞,即整個(gè)句子的核心,每個(gè)節(jié)點(diǎn)包含了原始詞、詞性以及該節(jié)點(diǎn)與其父節(jié)點(diǎn)之間的依存關(guān)系(根節(jié)點(diǎn)除外).由于醫(yī)學(xué)報(bào)告文本往往以短句的形式來(lái)描述,因此生成的依存句法樹(shù)通常結(jié)構(gòu)相對(duì)簡(jiǎn)單,并且樹(shù)的高度較低,這樣便于從這種樹(shù)形結(jié)構(gòu)中抽取 表3 語(yǔ)義依存關(guān)系歸納 序號(hào)依存關(guān)系標(biāo)注描述1主謂關(guān)系SBVSubject-verb2動(dòng)賓關(guān)系VOBVerb-object3定中關(guān)系A(chǔ)TTAttribute4狀中關(guān)系A(chǔ)DVAdverbial5動(dòng)補(bǔ)關(guān)系CMPComplete6并列關(guān)系COOCoordinate7介賓關(guān)系POBPreposition-object8間賓關(guān)系IOBIndirect-object9前置賓語(yǔ)FOBFronting-object10左附加關(guān)系LADLeft-adjunct11右附加關(guān)系RADRight-adjunct12獨(dú)立結(jié)構(gòu)ISIndependent-structure13核心關(guān)系HEDHead14兼語(yǔ)DBLDouble 4.3.2 關(guān)鍵指標(biāo)抽取 從4.3.1節(jié)中可知,對(duì)于每個(gè)描述短句,都可以構(gòu)建與之對(duì)應(yīng)的依存句法樹(shù),并且具有核心關(guān)系的詞作為根節(jié)點(diǎn),從而可得到每個(gè)詞的詞性及其與父節(jié)點(diǎn)的依存關(guān)系.本節(jié)將結(jié)合句法樹(shù)中的語(yǔ)義依存關(guān)系和詞性特征來(lái)提取醫(yī)學(xué)文本描述中的關(guān)鍵指標(biāo)及其指標(biāo)值,以實(shí)現(xiàn)結(jié)構(gòu)化信息抽取. 圖2 依存句法樹(shù)示例Fig.2 Example of dependency tree 在中文自然語(yǔ)言中,一個(gè)短句的成分通常包括:主語(yǔ)、謂語(yǔ)、賓語(yǔ)、定語(yǔ)、狀語(yǔ)和補(bǔ)語(yǔ),其中具有核心關(guān)系的詞一般作為謂語(yǔ)成分,而醫(yī)學(xué)文本描述中又常常以動(dòng)詞、名詞、形容詞作謂語(yǔ);同時(shí),在對(duì)醫(yī)學(xué)報(bào)告文本的描述語(yǔ)言進(jìn)行歸納總結(jié)后,發(fā)現(xiàn)短句中常出現(xiàn)的語(yǔ)義依存關(guān)系(除核心關(guān)系外)主要有5種:主謂關(guān)系(SBV)、動(dòng)賓關(guān)系(VOB)、定中關(guān)系(ATT)、動(dòng)補(bǔ)關(guān)系(CMP)和并列關(guān)系(COO),表4列舉了醫(yī)學(xué)描述語(yǔ)言中的動(dòng)詞、名詞和形態(tài)詞分別作為核心詞時(shí)主要出現(xiàn)的依存關(guān)系. 本文依據(jù)句法樹(shù)中根節(jié)點(diǎn)上的核心詞詞性及其與各孩子節(jié)點(diǎn)間的依存關(guān)系,分別采用不同的抽取策略.如算法2所示,當(dāng)根節(jié)點(diǎn)上的詞性為動(dòng)詞時(shí),直接遍歷子節(jié)點(diǎn)并判斷其與父節(jié)點(diǎn)之間的依存關(guān)系即可確定關(guān)鍵指標(biāo)名及其相對(duì)應(yīng)的指標(biāo)值;當(dāng)根節(jié)點(diǎn)上的詞性為名詞或形容詞時(shí),在遍歷各子節(jié)點(diǎn)之后,還需要對(duì)具有并列關(guān)系的子節(jié)點(diǎn)上的詞進(jìn)行合并,作為最終的指標(biāo)名,而將具有定中關(guān)系的詞作為相應(yīng)的指標(biāo)值. 表4 不同詞性的核心詞主要出現(xiàn)的依存關(guān)系 SBVVOBCMPATTCOO動(dòng)詞√√√名詞√√形容詞√√ 算法2.關(guān)鍵指標(biāo)抽取算法 輸入:由各關(guān)鍵詞節(jié)點(diǎn)生成的依存句法樹(shù),樹(shù)的每個(gè)節(jié)點(diǎn)包含原始詞word、詞性postag和依存關(guān)系relation; 輸出:結(jié)構(gòu)化鍵值對(duì) 1. 初始化RESULT=φ; 2. IF 根節(jié)點(diǎn)root≠NULL 3. FORword,postag,relationINroot 4. IFpostag==′v′|′vn′|′vd′ /*根節(jié)點(diǎn)為動(dòng)詞*/ 5. WHILE 子節(jié)點(diǎn)child≠NULL 6. IFchild[relation]==′主謂關(guān)系/SBV′ 7. 指標(biāo)名key←child[word]; 8. ELSE IFchild[relation]==′動(dòng)賓關(guān)系/VOB′|′動(dòng)補(bǔ)關(guān)系/CMP′ 9. 指標(biāo)值value←child[word]; 10.RESULT←(key,value);/*將鍵值對(duì)添加到結(jié)果集*/ 11. IFpostag==′n′|′ns′|′nz′|′a′|′ad′|′an′ /*根節(jié)點(diǎn)為名詞或形容詞*/ 12. 指標(biāo)名key←root[word]; 13. WHILE 子節(jié)點(diǎn)child≠NULL 14. IFchild[relation]==′并列關(guān)系/COO′ 15.k←combine(root[word],child[word]);/*合并具有并列關(guān)系的詞*/ 16. 更新指標(biāo)名key←k; 17. ELSE IFchild[relation]==′定中關(guān)系/ATT′ 18. 指標(biāo)值value←child[word]; 19.RESULT←(key,value); 20. RETURNRESULT. 本文使用真實(shí)的醫(yī)學(xué)影像報(bào)告作為實(shí)驗(yàn)數(shù)據(jù),其中共包含3000多條文本記錄,每條記錄由檢查項(xiàng)目、主要病癥和人工描述三個(gè)文本類型的屬性組成.針對(duì)這些實(shí)驗(yàn)數(shù)據(jù),本文首先進(jìn)行了初步的統(tǒng)計(jì)分析,如表5所示,實(shí)驗(yàn)的文本數(shù)據(jù)集在各類別上分布不均.因此,本文重點(diǎn)篩選了樣本數(shù)量占比較大的支氣管鏡、彩超、胃鏡的影像報(bào)告數(shù)據(jù)進(jìn)行實(shí)驗(yàn).此外,本文還將數(shù)據(jù)分為訓(xùn)練文本集和測(cè)試文本集,兩部分?jǐn)?shù)據(jù)集的規(guī)模按照6:4的比例進(jìn)行隨機(jī)劃分. 針對(duì)選取的這3類樣本數(shù)據(jù)集,本文從句型的角度分析了醫(yī)學(xué)報(bào)告文本的句子特征.表6統(tǒng)計(jì)了支氣管鏡、彩超和胃鏡的報(bào)告文本中的句子長(zhǎng)度情況,從中可以看出醫(yī)學(xué)上的文本數(shù)據(jù)主要以短句為主,句子的長(zhǎng)度絕大部分都不超過(guò)10個(gè)詞,且主要集中在5個(gè)詞以內(nèi),平均占比達(dá)到了84.73%,而在胃鏡的檢查報(bào)告中,使用短句最多,5個(gè)詞以內(nèi)的短句達(dá)到了91.67%,這說(shuō)明醫(yī)學(xué)領(lǐng)域的文本描述受書寫習(xí)慣的影響較大,往往為了表述上的簡(jiǎn)潔明確而弱化了中文自然語(yǔ)言的語(yǔ)法規(guī)則,從而增加了語(yǔ)義分析的難度. 表5 樣本數(shù)據(jù)統(tǒng)計(jì)信息 序號(hào)檢查項(xiàng)目樣本數(shù)量占比1支氣管鏡41.28%2彩超32.36%3胃鏡19.71%4CT1.51%5DR1.41%6MR1.41%7腸鏡1.01%8超聲胃鏡0.70%9鼻咽鏡0.61% 表6 三類樣本數(shù)據(jù)集的句子長(zhǎng)度統(tǒng)計(jì) 0<詞數(shù)≤55<詞數(shù)≤10詞數(shù)>10彩超80.33%19.64%0.03%胃鏡91.67%8.32%0.01%支氣管鏡82.20%17.76%0.04%平均值84.73%15.24%0.03% 本文的實(shí)驗(yàn)數(shù)據(jù)首先要經(jīng)過(guò)中文分詞處理.目前開(kāi)源的分詞工具較多,但采用的算法模型不同,效果不一,因此本文對(duì)于使用比較廣泛的3種分詞工具,即NLPIR、IKAnalyzer和Jieba分別在現(xiàn)有數(shù)據(jù)集上進(jìn)行了分詞實(shí)驗(yàn).由圖3的對(duì)比結(jié)果可知,對(duì)于醫(yī)學(xué)領(lǐng)域的中文文本數(shù)據(jù),三種分詞工具進(jìn)行直接分詞的效果并不理想.相比之下,Jieba分詞能夠達(dá)到90%左右的準(zhǔn)確率,較之NLPIR和IKAnalyzer有一定的優(yōu)勢(shì),因此本文選擇Jieba作為本文實(shí)驗(yàn)的主要分詞工具. 通過(guò)關(guān)鍵詞提取,本文得到了醫(yī)學(xué)描述中常用的術(shù)語(yǔ),圖4給出了訓(xùn)練文本和醫(yī)學(xué)術(shù)語(yǔ)庫(kù)中的一些高頻詞的分布情況.由圖4可知,動(dòng)詞、名詞和形容詞作為醫(yī)學(xué)描述語(yǔ)言中的常用詞匯,在訓(xùn)練文本和術(shù)語(yǔ)庫(kù)中的占都比較大,其中名詞使用頻率最高,在訓(xùn)練文本中使用頻率達(dá)31.13%,而在術(shù)語(yǔ)庫(kù)中出現(xiàn)的頻率達(dá)43.62%,這主要因?yàn)獒t(yī)學(xué)報(bào)告通常是對(duì)人體組織名和器官名的描述,所以名詞出現(xiàn)最多.相比于訓(xùn)練文本數(shù)據(jù),醫(yī)學(xué)術(shù)語(yǔ)庫(kù)中動(dòng)詞、名詞和形容詞相較于其它詞性的詞分布更加集中,這說(shuō)明關(guān)鍵詞提取操作有效識(shí)別并提取了醫(yī)學(xué)描述語(yǔ)言中的一些常用詞匯. 圖4 訓(xùn)練文本和術(shù)語(yǔ)庫(kù)中高頻詞對(duì)比Fig.4 High frequency words in training texts and termbase 為了提高中文分詞質(zhì)量,本文使用生成的醫(yī)學(xué)術(shù)語(yǔ)庫(kù)作為用戶詞典,用于輔助分詞,表7給出了直接分詞和使用術(shù)語(yǔ)庫(kù)進(jìn)行輔助分詞的結(jié)果對(duì)比.在實(shí)驗(yàn)中,本文將測(cè)試數(shù)據(jù)集分為三個(gè)子集,分別從彩超、胃鏡、支氣管鏡三個(gè)主要的樣本數(shù)據(jù)來(lái)比較分詞的準(zhǔn)確率.由表7可知,使用提取出的醫(yī)學(xué)術(shù)語(yǔ)庫(kù)可以明顯提高中文分詞的質(zhì)量,平均準(zhǔn)確率達(dá)到了97.78%,相比直接進(jìn)行分詞,提高了7.23%,并且在胃鏡檢查的文本類簇中的分詞效果最好,準(zhǔn)確率達(dá)到98.24%,而在支氣管鏡的文本類簇中的分詞效果提升最明顯,準(zhǔn)確率提高了9.30%,由此可見(jiàn),使用關(guān)鍵詞提取得到的術(shù)語(yǔ)庫(kù)進(jìn)行輔助分詞確實(shí)有效地提高了醫(yī)學(xué)文本數(shù)據(jù)的分詞質(zhì)量. 表7 直接分詞和使用術(shù)語(yǔ)庫(kù)的分詞準(zhǔn)確率對(duì)比 彩超胃鏡支氣管鏡平均值直接分詞92.06%91.23%88.37%90.55%術(shù)語(yǔ)庫(kù)分詞97.42%98.24%97.67%97.78%差值+5.36%+7.01%+9.30%+7.23% 在結(jié)構(gòu)化信息抽取階段,本文采用了哈爾濱工業(yè)大學(xué)NLP實(shí)驗(yàn)室開(kāi)發(fā)的LTP工具包來(lái)進(jìn)行語(yǔ)義依存分析,并且與基于結(jié)構(gòu)化模板匹配[25]的方法進(jìn)行了實(shí)驗(yàn)對(duì)比.根據(jù)樣本數(shù)據(jù)的三個(gè)主要類別,本文設(shè)計(jì)了三組對(duì)比實(shí)驗(yàn),分別針對(duì)彩超檢查報(bào)告、胃鏡檢查報(bào)告和支氣管鏡檢查報(bào)告進(jìn)行文本數(shù)據(jù)的結(jié)構(gòu)化處理,并分析計(jì)算結(jié)果的準(zhǔn)確率、召回率和F1值,實(shí)驗(yàn)結(jié)果如表8、表9和表10所示. 由表8、表9和表10可知,在三組不同樣本集的實(shí)驗(yàn)中,采用語(yǔ)義依存分析的方法準(zhǔn)確率都能達(dá)到80%以上,相比之下,基于結(jié)構(gòu)化模板匹配的方法由于通過(guò)人工構(gòu)建模板庫(kù)在三個(gè)樣本集中實(shí)驗(yàn)效果更佳,在彩超和支氣管鏡的樣本數(shù)據(jù)上準(zhǔn)確率和召回率都要高于語(yǔ)義依存分析的結(jié)果.然而在胃鏡檢查報(bào)告的樣本數(shù)據(jù)中采用語(yǔ)義依存分析的結(jié)果準(zhǔn)確率達(dá)到了83.76%的準(zhǔn)確率,與通過(guò)模板匹配的結(jié)果相差不大,并且在召回率上甚至達(dá)到了88.09%,高出了0.94%,這說(shuō)明語(yǔ)義依存分析的方法能夠有效識(shí)別并抽取醫(yī)學(xué)文本描述中的結(jié)構(gòu)化信息,并且與通過(guò)人工模板庫(kù)進(jìn)行匹配的結(jié)果相近,甚至在一些特定數(shù)據(jù)集下采用語(yǔ)義依存分析的方法能獲得更高的指標(biāo)覆蓋率,即能夠識(shí)別出更多的關(guān)鍵指標(biāo),從而抽取出更多的 表8 彩超報(bào)告結(jié)構(gòu)化信息抽取結(jié)果對(duì)比 準(zhǔn)確率召回率F1基于模板匹配81.62%85.21%83.37%語(yǔ)義依存分析80.53%83.11%81.80%差值 -1.09%-2.10%-1.57% 表9 胃鏡報(bào)告結(jié)構(gòu)化信息抽取結(jié)果對(duì)比 準(zhǔn)確率召回率F1基于模板匹配84.02%87.15%85.56%語(yǔ)義依存分析83.76%88.09%85.87%差值 -0.26%+0.94%+0.31% 表10 支氣管鏡報(bào)告結(jié)構(gòu)化信息抽取結(jié)果對(duì)比 準(zhǔn)確率召回率F1基于模板匹配82.51%86.21%84.32%語(yǔ)義依存分析80.93%84.50%82.68%差值 -1.58%-1.71%-1.64% 最后,本文對(duì)抽取的結(jié)構(gòu)化鍵值對(duì)做了進(jìn)一步分析,圖5給出了語(yǔ)義依存分析和基于模板匹配兩種方法處理后的結(jié)果數(shù)據(jù)中五種高頻依存關(guān)系的對(duì)比情況.由圖5可知,采用結(jié)構(gòu)化模板進(jìn)行匹配的方法主要處理的是具有主謂關(guān)系、定中關(guān)系和并列關(guān)系的詞,而對(duì)于具有動(dòng)賓關(guān)系和動(dòng)補(bǔ)關(guān)系的詞處理效果較差.相比之下,采用語(yǔ)義依存分析的方法對(duì)于這五種依存關(guān)系都能取得較好的效果,占比都在10%以上,并且對(duì)于具有并列關(guān)系的詞能達(dá)到21.57%的處理效率,由此說(shuō)明采用語(yǔ)義依存分析的方法能識(shí)別并處理更多的依存關(guān)系,相比模板匹配具有更高的語(yǔ)法覆蓋率,因而該方法適用性更強(qiáng),并有利于向其它文本數(shù)據(jù)擴(kuò)展. 圖5 語(yǔ)義依存分析和模板匹配的依存語(yǔ)法覆蓋率對(duì)比Fig.5 Grammar coverage of semantic dependency analysis and template matching 本文所提出的一種針對(duì)醫(yī)學(xué)領(lǐng)域文本數(shù)據(jù)的結(jié)構(gòu)化信息抽取方法,重點(diǎn)分析了樣本集的數(shù)據(jù)特征,并采用文本聚類和關(guān)鍵詞抽取的方法獲得了醫(yī)學(xué)術(shù)語(yǔ)庫(kù),顯著提高了醫(yī)學(xué)文本的分詞質(zhì)量;在結(jié)構(gòu)化信息抽取階段,本文通過(guò)分析詞與詞之間的語(yǔ)義依存關(guān)系和構(gòu)建依存句法樹(shù),準(zhǔn)確識(shí)別并抽取出了醫(yī)學(xué)描述中的關(guān)鍵指標(biāo)及其對(duì)應(yīng)的指標(biāo)值,同時(shí)取得了很好的語(yǔ)法覆蓋率,有利于本方法的擴(kuò)展應(yīng)用.然而在抽取的準(zhǔn)確率上,本文的方法還有待改進(jìn)和提升,未來(lái)將考慮結(jié)合深度學(xué)習(xí)相關(guān)的算法模型,更加充分地提取和利用數(shù)據(jù)本身的特征,以更好地實(shí)現(xiàn)結(jié)構(gòu)化信息抽取.
Table 3 Summary of semantic dependency relations
Table 4 Dependency relations on different key words5 實(shí)驗(yàn)與結(jié)果分析
5.1 實(shí)驗(yàn)數(shù)據(jù)集
Table 5 Statistics of sample data
Table 6 Statistics of sentences in three samples5.2 對(duì)比實(shí)驗(yàn)與分析
Table 7 Comparison of segmentation accuracy with directly segmenting and using termbase
Table 8 Comparison of the results on color doppler reports for structured extraction
Table 9 Comparison of the results on gastroscope reports for structured extraction
Table 10 Comparison of the results on bronchoscopy reports for structured extraction6 總 結(jié)