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