本發(fā)明涉及信息抽取技術(shù)領(lǐng)域,特別涉及一種醫(yī)療文本數(shù)據(jù)的命名實(shí)體識別方法。
背景技術(shù):
在目前大力發(fā)展信息化的時(shí)代背景下,許多醫(yī)療機(jī)構(gòu)正在建設(shè)或已完成醫(yī)療信息系統(tǒng)。伴隨著醫(yī)療信息系統(tǒng)的發(fā)展與完善,其不斷積累下的醫(yī)療數(shù)據(jù)將會為醫(yī)學(xué)及信息科學(xué)未來的研究發(fā)展提供可靠的數(shù)據(jù)支撐。近年來,對統(tǒng)計(jì)數(shù)據(jù)的數(shù)學(xué)研究已經(jīng)相對成熟,針對海量醫(yī)療統(tǒng)計(jì)數(shù)據(jù)的大數(shù)據(jù)研究也已開展地如火如荼,對預(yù)測及防控都起到了良好的作用。
大量文本數(shù)據(jù)例如文本病歷、醫(yī)學(xué)文獻(xiàn)、衛(wèi)生信息標(biāo)準(zhǔn)等,盡管也蘊(yùn)含著許多有研究價(jià)值的信息,但卻因?yàn)榫哂蟹墙Y(jié)構(gòu)化、專業(yè)化等特點(diǎn),難以對其進(jìn)行數(shù)據(jù)深度利用。若要對上述文本數(shù)據(jù)進(jìn)行深度利用,首先需要克服的就是針對醫(yī)學(xué)特有命名實(shí)體進(jìn)行識別。然而,中文自然語言處理的復(fù)雜性和上述提到的醫(yī)療文本數(shù)據(jù)的獨(dú)特性導(dǎo)致了進(jìn)行醫(yī)學(xué)命名實(shí)體識別是一個難點(diǎn)問題。因此,進(jìn)行縱向的病種命名實(shí)體識別研究,歸納總結(jié)出能夠快速并且在人工干預(yù)較少的情況下提取出準(zhǔn)確信息的方法具有重要意義。
技術(shù)實(shí)現(xiàn)要素:
本發(fā)明的目的是提供一種醫(yī)療文本數(shù)據(jù)的命名實(shí)體識別方法,能夠快速且在人工干預(yù)較少的情況下提取出準(zhǔn)確信息。
一種醫(yī)療文本數(shù)據(jù)的命名實(shí)體識別方法:
i)通過隱馬爾可夫模型對原始醫(yī)學(xué)文本進(jìn)行序列標(biāo)注,得到預(yù)測分詞結(jié)果;
ii)對預(yù)測分詞結(jié)果進(jìn)行過濾與校準(zhǔn)。
優(yōu)選的,所述步驟ii)通過半監(jiān)督學(xué)習(xí)過程進(jìn)行迭代自學(xué)習(xí),對預(yù)測分詞結(jié)果進(jìn)行過濾與校準(zhǔn)。
優(yōu)選的,所述半監(jiān)督學(xué)習(xí)過程包括以下步驟:
1)去除預(yù)測分詞結(jié)果中與停用詞集中重合的部分;
2)將去除停用詞后的分詞結(jié)果做預(yù)處理,統(tǒng)計(jì)所有分詞結(jié)果的頻次,并以降序方式排列;
3)將頻次高的詞加入種子詞集;
4)再次對原始醫(yī)學(xué)文本進(jìn)行分詞處理,種子詞集中出現(xiàn)的種子詞優(yōu)先成詞;
5)重復(fù)上述步驟1)至4),直至種子詞集不再有增量;
6)人工對種子詞集進(jìn)行審查,若種子詞集中有干擾分詞正確的詞,進(jìn)行人工修正。
優(yōu)選的,所述步驟3)中,所述頻次高的詞是頻次最高的前10個詞。
優(yōu)選的,所述步驟5)對步驟1)至4)的迭代次數(shù)為2至3次。
本發(fā)明提供了一種基于隱馬爾可夫模型分詞與半監(jiān)督學(xué)習(xí)方法結(jié)合對原始醫(yī)學(xué)文本進(jìn)行分詞處理和識別的方法,不僅提高了信息提取和識別的效率,而且降低了人工干預(yù)程度。
附圖說明
圖1是具體實(shí)施方式中的半監(jiān)督學(xué)習(xí)流程圖。
圖2是具體實(shí)施方式中的半監(jiān)督學(xué)習(xí)改進(jìn)效果對比圖。
圖3是具體實(shí)施方式中的半監(jiān)督學(xué)習(xí)改進(jìn)效果。
具體實(shí)施方式
下面通過具體實(shí)施例對本發(fā)明進(jìn)行說明,但本發(fā)明并不局限于此。
實(shí)施例
本實(shí)施例采用隱馬爾可夫模型(hiddenmarkovmodel,hmm),對原始醫(yī)學(xué)文本進(jìn)行序列標(biāo)注,得到預(yù)測分詞結(jié)果。在預(yù)測分詞處理結(jié)束后,利用半監(jiān)督學(xué)習(xí)方法對分詞結(jié)果進(jìn)行迭代自學(xué)習(xí),以得到準(zhǔn)確的分詞及命名實(shí)體識別結(jié)果。本實(shí)施例通過比對各類監(jiān)督學(xué)習(xí)方法的優(yōu)缺點(diǎn)及結(jié)合半監(jiān)督學(xué)習(xí)方法糾錯,對縱向的病種命名實(shí)體識別研究。旨在總結(jié)出能夠快速且在人工干預(yù)較少的情況下提取出準(zhǔn)確信息的方法。
利用hmm解決命名實(shí)體識別標(biāo)注,即給定一個觀察值的序列(1):
p(y|x)=p(x1,n),x={x1,x2,...xn}(1)
要尋找一個最優(yōu)的標(biāo)記序列(2),使得條件概率p(y|x)最大:
y={y1,y2,...yn}(2);
根據(jù)貝葉斯公式可得(3):
在ne識別問題中,x是給定的句子,觀察值為詞性或詞,則上式中p(x)對所有的類別都是一樣的,因此可以忽略不考慮。則上面的公式可以轉(zhuǎn)化為下面的形式(4),即實(shí)質(zhì)是求解一個聯(lián)合概率:
p(y|x)=p(y)p(x|y)=p(x,y)(4)
觀察到的事件是狀態(tài)的隨機(jī)函數(shù),該模型是含有隱藏序列和可觀察序列的隨機(jī)過程,其中模型的狀態(tài)轉(zhuǎn)換過程是不可觀察的??捎^察的事件的隨機(jī)過程是隱藏的狀態(tài)轉(zhuǎn)換過程的隨機(jī)函數(shù)。形式化的描述為一個五元組:
∑iπi=1,hmm=<s,o,a,b,π>(5)
s表示模型中的狀態(tài),n是模型的狀態(tài)數(shù)。
所有獨(dú)立的狀態(tài)定義為(6):
s={s1,s2,...sn}(6)
用qt來表示t時(shí)刻的狀態(tài)。o表示每個狀態(tài)的觀察值,m表示每個狀態(tài)上對應(yīng)的可能的觀察值的數(shù)目。觀察值對應(yīng)于模型系統(tǒng)的實(shí)際輸出,觀察值記為(7):
w={w1,w2,...wn}(7)
狀態(tài)轉(zhuǎn)移概率矩陣(8):
a={aij}(8)
其中aij=p(qt+1=sj|qt=st),1≤i,j≤n,aij表示從狀態(tài)i轉(zhuǎn)移到狀態(tài)j的概率,aij滿足:
輸出觀察值概率分布矩陣(9):
b={bj(k)}(9)
其中bj(k)表示在sj狀態(tài)下,t時(shí)刻出現(xiàn)wk的概率,即
bj(k)=p(在t時(shí)刻出現(xiàn)wk|qt=sj),1≤j≤n,1≤k≤m(10)
bj(k)滿足:
初始狀態(tài)分布向量:
∏={πi},其中πi=p(qi=si),1≤i≤n(12);
即在t=1時(shí)刻處于狀態(tài)si的概率,πi滿足:
∑iπi=1(13)。
本實(shí)施例先以人民日報(bào)標(biāo)注語料作為模型訓(xùn)練數(shù)據(jù)。由于通用語料訓(xùn)練出的模型,無論是crf模型還是hmm,都無法對醫(yī)學(xué)文本數(shù)據(jù)的命名實(shí)體識別任務(wù)得出高準(zhǔn)確率的結(jié)果,故本實(shí)施例采用訓(xùn)練過程更加簡單、復(fù)雜度較低的hmm。在本實(shí)施例的實(shí)踐中,采用了基于漢字組詞能力的hmm,使用維特比算法對序列解碼,將原始臨床病歷語料進(jìn)行預(yù)測分詞處理。基于前述原因,該預(yù)測分詞處理的準(zhǔn)確率不高,需加入半監(jiān)督學(xué)習(xí)方法對分詞結(jié)果進(jìn)行再處理。通過此方法,實(shí)驗(yàn)結(jié)果表明能夠快速有效的在無有效標(biāo)注醫(yī)學(xué)語料的前提下,借助少量人工修正得到較為準(zhǔn)確的分詞及命名實(shí)體識別結(jié)果。
由于其訓(xùn)練數(shù)據(jù)來自于人民日報(bào)標(biāo)注語料,故直接對醫(yī)學(xué)文本數(shù)據(jù)應(yīng)用此模型得到的分詞效果并不會太理想,所以在hmm預(yù)測分詞后,需要對預(yù)測分詞結(jié)果進(jìn)行過濾與校準(zhǔn)。本實(shí)施例采用了半監(jiān)督學(xué)習(xí)的方法。
在半監(jiān)督學(xué)習(xí)過程中,需要在迭代自學(xué)習(xí)時(shí)設(shè)置評價(jià)標(biāo)準(zhǔn),進(jìn)而將符合標(biāo)準(zhǔn)的分詞結(jié)果作為種子詞。在通過觀察所使用的臨床病歷數(shù)據(jù)特點(diǎn)后,發(fā)現(xiàn)這些臨床病歷數(shù)據(jù)在病種描述中,往往采用重復(fù)率相當(dāng)高的句子,體現(xiàn)在預(yù)測分詞結(jié)果中的,將是高頻次的相同詞語。故在自學(xué)習(xí)過程中,本實(shí)施例著重于詞語頻次這個特點(diǎn)。詳細(xì)半監(jiān)督學(xué)習(xí)過程如下:
1)去除預(yù)測分詞結(jié)果中與停用詞表中重合的部分。
2)將去除停用詞后的分詞結(jié)果做預(yù)處理,統(tǒng)計(jì)所有分詞結(jié)果的頻次,并以降序方式排列。
3)將頻次最高的前10個詞加入種子詞集。
4)再次對原始臨床病歷數(shù)據(jù)進(jìn)行分詞處理,種子詞集中出現(xiàn)的種子詞優(yōu)先成詞。
5)重復(fù)上述1至4步,直至種子詞集不會有增量。
如圖1所示,半監(jiān)督學(xué)習(xí)過程旨在通過詞頻找出種子詞,而種子詞會作為分詞識別標(biāo)準(zhǔn),對下一次的分詞過程進(jìn)行修正。此外,當(dāng)該半監(jiān)督學(xué)習(xí)過程結(jié)束后,會人工對種子詞表進(jìn)行審查,若種子詞表中有嚴(yán)重干擾分詞正確的詞,將會人工進(jìn)行修正。
種子詞對分詞過程修正的算法,采用了修改統(tǒng)計(jì)模型發(fā)射矩陣值的方式??紤]到統(tǒng)計(jì)模型解碼的過程實(shí)際是對最大概率路徑查找的過程,根據(jù)路徑概率的定義可知:
在hmm模型解碼過程中,采用的維特比算法將會逐步迭代搜索,避免了窮舉對資源帶來的巨大消耗,其計(jì)算過程中以(15)記錄當(dāng)前最優(yōu)狀態(tài):
基于此,本文將得到的種子詞與hmm的發(fā)射矩陣進(jìn)行交叉對比,修改發(fā)射矩陣的概率值,確保種子詞在標(biāo)注后序列中成詞。
在實(shí)驗(yàn)中,本實(shí)施例將單純依靠hmm預(yù)測分詞的結(jié)果與加入半監(jiān)督學(xué)習(xí)過程后的分詞結(jié)果進(jìn)行了對比。在通過對近3000例臨床肺病文本病歷進(jìn)行實(shí)驗(yàn)后,本實(shí)施例挑選出重復(fù)率最高的幾例進(jìn)行對比。如下圖2所示,左側(cè)為加入半監(jiān)督學(xué)習(xí)后的分詞結(jié)果,右側(cè)為單純使用hmm預(yù)測分詞的結(jié)果。
僅僅依靠由人民日報(bào)語料訓(xùn)練的hmm,在進(jìn)行預(yù)測分詞時(shí),對病歷中許多醫(yī)學(xué)術(shù)語的分詞效果并不理想。如圖2所示“iii期壓瘡”切分成“iii期壓瘡”、“竇性心動過緩”切分成“竇性心動過緩”、“極高危組”切分成“極高危組”、“頻發(fā)性室性期前收縮”切分成“頻發(fā)性室性期前收縮”、“左肺上葉炎性病變”切分成“左肺上葉炎性病變”。其中“期壓”、“動過”、“危組”、“性室”、“性期”、“葉炎”等均不是期待的分詞結(jié)果,但再經(jīng)過半監(jiān)督學(xué)習(xí)過程的校準(zhǔn)處理后,上述例子中的分詞結(jié)果都更加準(zhǔn)確了,效果如圖3所示。
圖3通過對分詞結(jié)果進(jìn)行統(tǒng)計(jì)對比得出,單hmm將原始病歷文本切分成81386個詞,有1435種詞。加入半監(jiān)督學(xué)習(xí)后,切分詞語個數(shù)減少為80997,有1402種詞。在hmm切分結(jié)果中,但不在加入半監(jiān)督學(xué)習(xí)切分結(jié)果中的詞有42個。這42個詞中,除去單字成詞未能確定是否標(biāo)準(zhǔn)的,其余37個雙字或多字成詞都為錯誤結(jié)果,并在加入半監(jiān)督學(xué)習(xí)后進(jìn)行了自動修正,修正正確率達(dá)88.1%。而在加入半監(jiān)督學(xué)習(xí)后的切分結(jié)果中,出現(xiàn)的7個詞,都均為學(xué)習(xí)時(shí)總結(jié)的種子詞。表明種子詞的出現(xiàn),對切分結(jié)果的提升效果明顯。
在半監(jiān)督學(xué)習(xí)過程中,種子詞集在迭代過程中發(fā)生變化,實(shí)驗(yàn)對比了初始有無種子詞在半監(jiān)督學(xué)習(xí)過程中的表現(xiàn)。在實(shí)驗(yàn)中,發(fā)現(xiàn)迭代過程基本都在2~3次后結(jié)束,說明該方法能夠快速收斂。由于分詞結(jié)果中,會出現(xiàn)頻次較高的各種英文縮寫,這些英文縮寫作為種子詞不會對分詞結(jié)果帶來幫助。所以,若每次迭代增加種子詞過少,會導(dǎo)致英文縮寫的引入使得迭代立刻終止。若每次迭代增加種子詞過多,又會在迭代后幾步引入詞頻較低的詞語,使得破壞正確的分詞結(jié)果。基于上述原因,選擇每次迭代最多增加10個詞,既可以保證很高的分詞正確率,又能避免提早終止半監(jiān)督自學(xué)習(xí)過程。
可以理解的是,以上是為了闡述本發(fā)明的原理和可實(shí)施性的示例,本發(fā)明并不局限于此。對于本領(lǐng)域內(nèi)的普通技術(shù)人員而言,在不脫離本發(fā)明的精神和實(shí)質(zhì)的情況下,可以做出各種變型和改進(jìn),這些變型和改進(jìn)也視為本發(fā)明的保護(hù)范圍。