本發(fā)明屬于自然語言處理領(lǐng)域,涉及一種對(duì)生物醫(yī)學(xué)文本進(jìn)行高質(zhì)量的生物命名實(shí)體識(shí)別的方法,具體是指基于條件隨機(jī)場(chǎng)(crf)模型與詞表示方法相融合的生物命名實(shí)體識(shí)別方法。
背景技術(shù):
:命名實(shí)體識(shí)別的任務(wù)是對(duì)文本中出現(xiàn)的人名、地名、機(jī)構(gòu)名等具有特定意義的詞或短語進(jìn)行識(shí)別。在生物醫(yī)學(xué)領(lǐng)域進(jìn)行的命名實(shí)體識(shí)別被稱為生物命名實(shí)體識(shí)別(biomedicalnamedentityrecognition,bio-ner),旨在利用生物醫(yī)學(xué)文本挖掘技術(shù)對(duì)生物醫(yī)學(xué)文獻(xiàn)中出現(xiàn)的指定類型的實(shí)體名稱,如蛋白質(zhì)、基因、疾病、細(xì)胞等進(jìn)行自動(dòng)識(shí)別和分類。生物命名實(shí)體識(shí)別是生物醫(yī)學(xué)文本挖掘的關(guān)鍵步驟,是實(shí)現(xiàn)關(guān)系抽取、假設(shè)發(fā)現(xiàn)、文本分類等深層次文本挖掘技術(shù)的先決條件,例如,要想得到基因、蛋白質(zhì)以及疾病等生物實(shí)體之間的關(guān)系,首先必須能夠從文本中正確地識(shí)別出這些生物實(shí)體。目前使用最廣泛的基于機(jī)器學(xué)習(xí)方法的基本過程包括:語料預(yù)處理、抽取特征、模型訓(xùn)練、預(yù)測(cè)。語料預(yù)處理步驟包括對(duì)生物醫(yī)學(xué)文本的操作,如大小寫轉(zhuǎn)換、分詞、詞干化、去停用詞等步驟。運(yùn)用到的特征主要包括:核心詞特征、字典特征、構(gòu)詞特征、詞形特征、詞綴特征、詞性特征、組塊特征等。機(jī)器學(xué)習(xí)構(gòu)建模型的方法主要包括:隱馬爾可夫模型(hmm)、支持向量機(jī)模型(svm)、最大熵模型(me)、最大熵馬爾可夫模型(memm)、條件隨機(jī)場(chǎng)模型(crf)等。例如,abner(http://pages.cs.wisc.edu/~bsettles/abner/)是一個(gè)標(biāo)準(zhǔn)的命名實(shí)體識(shí)別軟件工具,其核心基于線性鏈crf?;诮y(tǒng)計(jì)機(jī)器學(xué)習(xí)的方法不需要人工制定規(guī)則,具有更高的魯棒性,而且能夠識(shí)別出沒有出現(xiàn)在標(biāo)準(zhǔn)術(shù)語詞典中的、潛在的命名實(shí)體。dimililer等抽取了包含詞匯特征、構(gòu)成形態(tài)特征、拼寫特征等豐富特征集,利用不同參數(shù)svm分類模型進(jìn)行組合分類,采用改進(jìn)的遺傳算法進(jìn)行加權(quán)投票,最終在jnlpba2004的f值達(dá)到了72.51%。liao等(biomedicalnamedentityrecognitionbasedonskip-chaincrfs,2011,americanjournalofengineeringandtechnologyresearch)使用skip-chaincrf模型通過考慮遠(yuǎn)距離實(shí)體之間的相互依賴信息在jnlpba2004任務(wù)進(jìn)行命名實(shí)體識(shí)別,在該任務(wù)的測(cè)試集上取得了73.2%的f評(píng)測(cè)值。為減少人工抽取特征的代價(jià),半監(jiān)督學(xué)習(xí)也被引入到機(jī)器學(xué)習(xí)方法中。李彥鵬等(incorporatingrichbackgroundknowledgeforgenenamedentityclassificationandrecognition,2009,bmcbioinformatics)從獲得的海量未標(biāo)注數(shù)據(jù)中提取有用信息,然后將其作為特征去提高監(jiān)督學(xué)習(xí)的效果,在biocreativeii中取得f值為89.05%。利用條件隨機(jī)場(chǎng)進(jìn)行命名實(shí)體識(shí)別時(shí),需要根據(jù)訓(xùn)練語料抽取人工特征。雖然半監(jiān)督學(xué)習(xí)方法在一定程度上減少人工抽取特征的代價(jià),但是在構(gòu)建人工特征時(shí),往往需要特定的專業(yè)領(lǐng)域知識(shí),這對(duì)非專業(yè)領(lǐng)域研究人員是極為困難的,同時(shí)不能很好的預(yù)測(cè)出新出現(xiàn)的實(shí)體名詞,而且對(duì)語義歧義的問題也不能很好的解決。鑒于近年來詞向量在自然語言領(lǐng)域取得的進(jìn)步,它可以有效的把語料中出現(xiàn)的每個(gè)詞都映射到一個(gè)n維空間中,并且具有很強(qiáng)的表示語義的能力,即相同語義的單詞在空間中位置比較相近。那么通過從未標(biāo)注的語料中抽取不同詞向量特征來獲取深層語義信息,這樣就避免了人工抽取特征的過程。然而條件隨機(jī)場(chǎng)的算法更適合于離散的特征表示,那么如何把連續(xù)的實(shí)值表示的詞向量與crf算法結(jié)合起來進(jìn)行命名實(shí)體識(shí)別具有很強(qiáng)的挑戰(zhàn)性。技術(shù)實(shí)現(xiàn)要素:本發(fā)明提供了一種基于詞向量表示的條件隨機(jī)場(chǎng)的命名實(shí)體識(shí)別方法,首先解決了人工提取特征所帶來的高成本、低泛化能力等難題,其次解決了條件隨機(jī)場(chǎng)只對(duì)離散的特征表示有效的問題,最終由于融入了詞向量的語義表示提高了條件隨機(jī)場(chǎng)對(duì)命名實(shí)體識(shí)別的準(zhǔn)確度。本發(fā)明主要由兩大部分組成:1、將語料通過深度學(xué)習(xí)轉(zhuǎn)化為詞向量。2、改進(jìn)條件隨機(jī)場(chǎng)算法,以使它可以適用于連續(xù)型的實(shí)值向量的輸入。本發(fā)明的技術(shù)方案:一種基于詞向量表示的條件隨機(jī)場(chǎng)的命名實(shí)體識(shí)別方法,步驟如下:首先介紹在已經(jīng)有訓(xùn)練好的參數(shù)(大小為(labelnum+1)*labelnum的狀態(tài)轉(zhuǎn)移權(quán)重矩陣a和大小為labelnum*(d*m+1)的參數(shù)矩陣θ,labelnum,d,m的含義將在后面步驟中表示)的情況下,對(duì)句子中的命名實(shí)體進(jìn)行識(shí)別的方法(參數(shù)的訓(xùn)練方法將在步驟(五)中描述)。(一)語料的提取與預(yù)處理用word2vec工具中的skip-gram語言模型將待處理語料中的每一個(gè)單詞轉(zhuǎn)化為d維的詞向量(wordembedding)。(二)標(biāo)記計(jì)劃在命名實(shí)體識(shí)別的任務(wù)中,有些命名實(shí)體由一個(gè)單詞表示,有些命名實(shí)體則由幾個(gè)單詞表示。為了區(qū)分單詞所代表的成分的不同,需要對(duì)單詞進(jìn)行標(biāo)記,即給單詞分配不同的標(biāo)簽(tag)。在本發(fā)明中采用iobes標(biāo)記計(jì)劃對(duì)語料進(jìn)行標(biāo)記。iobes標(biāo)記計(jì)劃(如表一所示):表一begininsideendsingleotherbieso對(duì)于由幾個(gè)單詞表示的命名實(shí)體:用b(begin)對(duì)表示該命名實(shí)體開始的單詞進(jìn)行標(biāo)注,用i(inside)對(duì)表示該命名實(shí)體中間的單詞進(jìn)行標(biāo)注,用e(end)對(duì)表示該命名實(shí)體結(jié)尾的單詞進(jìn)行標(biāo)注。對(duì)于由一個(gè)單詞表示的命名實(shí)體:用s(single)對(duì)表示該命名實(shí)體的單詞進(jìn)行標(biāo)注。對(duì)于非命名實(shí)體:用o(other)對(duì)表示非命名實(shí)體的單詞進(jìn)行標(biāo)注。標(biāo)簽的個(gè)數(shù)為5,用labelnum表示。(三)由詞向量到狀態(tài)特征權(quán)重的計(jì)算本發(fā)明以線性鏈條件隨機(jī)場(chǎng)模型為基礎(chǔ),因此對(duì)于語料的處理是以句子為單位進(jìn)行的。對(duì)于任意句子(即任意單詞序列):l:句子的長(zhǎng)度。x={x1,x2,x3,……,xn},x表示句子(單詞序列),xi表示句子中的第i個(gè)單詞。y={y1,y2,y3,……,yn},y表示句子對(duì)應(yīng)的標(biāo)簽序列,yi表示句子中的第i個(gè)單詞所對(duì)應(yīng)的標(biāo)簽,它的取值有i、o、b、e、s五種,表示句子中的第i個(gè)單詞所對(duì)應(yīng)的標(biāo)簽為標(biāo)簽j,即yi=label[j]。1、由詞向量到特征矩陣featurematrix的計(jì)算如何獲取良好的單詞特征表示是本發(fā)明提高命名實(shí)體識(shí)別準(zhǔn)確度的重要環(huán)節(jié)之一,由于每個(gè)單詞的標(biāo)簽不僅與它本身有關(guān),更與它周圍幾個(gè)單詞緊密相連,所以除了獲取每個(gè)單詞對(duì)應(yīng)的詞向量外,需要利用窗口法將每個(gè)單詞與它周圍幾個(gè)單詞的詞向量拼接起來構(gòu)建單詞的特征向量。窗口法:確定固定窗口的大小為m。以句子為單位,對(duì)于每個(gè)單詞xi,用xi-(m-1)/2,……,xi,……,xi+(m-1)/2連續(xù)m個(gè)單詞的詞向量依次拼接,再在每個(gè)單詞xi末尾加上一個(gè)1作為這個(gè)單詞的特征向量;然而,在句子開頭和結(jié)尾處的一些單詞左右兩邊沒有足夠相鄰的(m-1)/2個(gè)單詞。為了解決這種邊界效應(yīng)問題,用none的詞向量,也就是零向量,作為填補(bǔ)。這和用‘start’和‘stop’標(biāo)記起到了相同的效果。用窗口法對(duì)句子中的每一個(gè)單詞進(jìn)行處理,即可得到句子對(duì)應(yīng)的特征矩陣featurematrix,它的大小為(d×m+1)×l。2、由特征矩陣到狀態(tài)特征權(quán)重的計(jì)算由于采用iobes標(biāo)記計(jì)劃,對(duì)任意單詞xi,yi有五種可能,本步驟將介紹yi在取值為iobes的不同的情況下對(duì)應(yīng)的狀態(tài)特征權(quán)重的大小。將大小為labelnum×(d×m+1)的參數(shù)矩陣θ與上個(gè)步驟得到的特征矩陣featurematrix點(diǎn)乘,結(jié)果為一個(gè)大小為labelnum×l的矩陣μ′,并且對(duì)μ′中的每一個(gè)數(shù)值用hardtanh函數(shù)處理,最終得到大小為labelnum×l的狀態(tài)特征權(quán)重矩陣μ。μ中的第j行,第i列個(gè)元素的大小表示句子中的第i個(gè)單詞xi的標(biāo)簽yi為時(shí)的狀態(tài)特征權(quán)重大小,它用表示。(四)對(duì)標(biāo)簽序列y進(jìn)行估計(jì),以識(shí)別命名實(shí)體對(duì)標(biāo)簽序列進(jìn)行估計(jì),找出所有被標(biāo)記為s的單詞以及被標(biāo)記為b、i(零個(gè)或者多個(gè)i)、e組合的單詞串,也就找到了命名實(shí)體。對(duì)句子所對(duì)應(yīng)的標(biāo)簽序列進(jìn)行估計(jì),即在已知句子x的情況下,找出標(biāo)簽序列y*,使得當(dāng)y=y(tǒng)*時(shí),條件概率p(y|x)達(dá)到最大。首先介紹大小為(labelnum+1)×labelnum的狀態(tài)轉(zhuǎn)移權(quán)重矩陣a。a:a的前l(fā)abelnum行分別表示一種標(biāo)簽情況,最后一行表示無標(biāo)簽的情況,a的每一列分別表示一種標(biāo)簽情況。am,n:即a的第m行第n列個(gè)元素,它表示xi-1對(duì)應(yīng)的標(biāo)簽(a的第m行所代表的標(biāo)簽)且xi對(duì)應(yīng)的標(biāo)簽時(shí)的狀態(tài)轉(zhuǎn)移權(quán)重。為了將句子中的單詞位置也體現(xiàn)出來,狀態(tài)轉(zhuǎn)移權(quán)重用符號(hào)表示。1、介紹勢(shì)函數(shù):exp(∑jλjtj(yi-1,yi,x,i)+∑kμksk(yi,x,i))勢(shì)函數(shù)中符號(hào)的定義及解釋如下:j:當(dāng)xi在句首時(shí),1≤j≤labelnum;當(dāng)xi不在句首時(shí),1≤j≤labelnum×labelnum,j是整數(shù),每一個(gè)不同的j表示一種特定的由標(biāo)簽p轉(zhuǎn)移到標(biāo)簽q的狀態(tài)轉(zhuǎn)移情況。k:1≤k≤labelnum,k是整數(shù),每一個(gè)不同的k表示一種特定的標(biāo)簽狀態(tài)q。tj(yi-1,yi,x,i):兩個(gè)相鄰標(biāo)記位置上的狀態(tài)轉(zhuǎn)移特征函數(shù),sk(yi,x,i):序列位置i上的狀態(tài)特征函數(shù)。λj:狀態(tài)轉(zhuǎn)移特征權(quán)重函數(shù),對(duì)與某個(gè)特定的j,它表示的標(biāo)簽狀態(tài)轉(zhuǎn)移情況為yi-1=lable[p],yi=lable[q],則μk:狀態(tài)特征權(quán)重函數(shù),對(duì)于某個(gè)特定的k,它表示的標(biāo)簽狀態(tài)情況為yi=lable[q],則∑jλjtj(yi-1,yi,x,i)的計(jì)算結(jié)果:在給定句子序列x與對(duì)應(yīng)的給定標(biāo)簽序列y的情況下,位置i上的單詞與它前面的單詞的狀態(tài)轉(zhuǎn)移特征權(quán)重λ(yi-1,yi,xi),即狀態(tài)轉(zhuǎn)移權(quán)重矩陣a中的的計(jì)算結(jié)果:在給定句子序列x與對(duì)應(yīng)的給定標(biāo)簽序列y的情況下,位置i上的單詞的狀態(tài)特征權(quán)重μ(yi,xi)。對(duì)于每個(gè)單詞,詞級(jí)別的勢(shì)函數(shù)就是在計(jì)算單詞的狀態(tài)轉(zhuǎn)移特征權(quán)重與狀態(tài)特征權(quán)重之和,它的計(jì)算結(jié)果可以簡(jiǎn)單地表示為2、條件概率p(y|x)由于tj(yi-1,yi,x,i)與sk(yi,x,i)都是特征函數(shù),為了方便符號(hào)表示,令它們均為fj(yi-1,yi,x,i),同時(shí)令λj和μk均為λj,所以∑jλjtj(yi-1,yi,x,i)+∑kμksk(yi,x,i)可以表示為∑jλjfj(yi-1,yi,x,i)。條件隨機(jī)場(chǎng)算法是通過條件概率表示句子序列x對(duì)應(yīng)特定標(biāo)簽序列y的可能性。其中是句子級(jí)別的勢(shì)函數(shù)。句子級(jí)別的勢(shì)函數(shù)就是句子中每一單詞的詞級(jí)別的勢(shì)函數(shù)之和,同樣的,它可以簡(jiǎn)單地表示為為歸一化因子,它是句子對(duì)應(yīng)的所有可能的標(biāo)簽序列y的句子級(jí)別的勢(shì)函數(shù)之和。3、對(duì)標(biāo)簽序列y進(jìn)行估計(jì),以識(shí)別命名實(shí)體對(duì)于某個(gè)特定的句子序列,z(x)是一個(gè)常數(shù),所以找到使句子級(jí)勢(shì)函數(shù)最大的標(biāo)簽序列y*即可。在計(jì)算y*時(shí),y可能的標(biāo)簽序列組合隨著句子序列中單詞的個(gè)數(shù)呈指數(shù)次增長(zhǎng),如果采用窮舉法找到y(tǒng)*將導(dǎo)致時(shí)間復(fù)雜度極高,無法計(jì)算結(jié)束,所以使用viterbi等動(dòng)態(tài)優(yōu)化方法求解。(五)參數(shù)訓(xùn)練為了方便描述,將參數(shù)狀態(tài)轉(zhuǎn)移權(quán)重矩陣a和參數(shù)矩陣θ都稱為p(y|x)即表示為在訓(xùn)練集中,每一個(gè)句子序列x都有正確的標(biāo)簽序列y與之對(duì)應(yīng),將正確的標(biāo)簽序列y稱為y′。本發(fā)明使用隨機(jī)梯度下降法調(diào)整參數(shù)使得對(duì)于訓(xùn)練集中每一個(gè)x,當(dāng)y=y(tǒng)′時(shí),對(duì)應(yīng)的對(duì)數(shù)似然函數(shù)值達(dá)到最大。1、對(duì)應(yīng)對(duì)數(shù)似然函數(shù):在利用隨機(jī)梯度下降調(diào)參的時(shí)候,一定會(huì)涉及到的計(jì)算,所以盡管是常數(shù),但是仍需計(jì)算。為了方便符號(hào)表示,定義logadd操作:因此:由于y可能的標(biāo)簽序列組合隨著句子序列中單詞的個(gè)數(shù)呈指數(shù)級(jí)增長(zhǎng),當(dāng)句子序列的長(zhǎng)度達(dá)到10的時(shí)候,y可能的標(biāo)簽序列組合情況有將近一千萬種,所以窮舉y計(jì)算是不可能的,本發(fā)明采用了一種經(jīng)典的遞歸方法,使得它的計(jì)算速度是與句子序列的長(zhǎng)度n線性相關(guān)的。令k,m表示任意標(biāo)簽tag,t表示序列的位置。定義下面的公式以方便計(jì)算:因此,由遞歸計(jì)算即可算出結(jié)果。2、利用隨機(jī)梯度下降法調(diào)整參數(shù)本發(fā)明采用的隨機(jī)梯度法,是一種迭代算法。由于正梯度方向是使函數(shù)值增加最快的方向,在迭代的每一步,以正梯度方向更新參數(shù)的值速度最快,所以采用隨機(jī)梯度法。通過隨機(jī)地選擇一個(gè)示例(x,y),更新參數(shù)的值,使得目標(biāo)函數(shù)的最大化,不斷迭代,直到收斂。梯度更新的迭代式為:其中λ是選擇的學(xué)習(xí)率,是搜索方向。因此,可以通過微分鏈?zhǔn)椒▌t計(jì)算導(dǎo)數(shù),從而求得使目標(biāo)函數(shù)最大化時(shí)的參數(shù)本發(fā)明構(gòu)建了一套基于詞向量表示的條件隨機(jī)場(chǎng)方法來完成生物醫(yī)學(xué)命名實(shí)體識(shí)別的在線系統(tǒng),為研究者提供實(shí)時(shí)查詢服務(wù)。生物醫(yī)學(xué)命名實(shí)體識(shí)別作為生物醫(yī)學(xué)文本挖掘的重要分支之一,具有很高的應(yīng)用價(jià)值,對(duì)關(guān)系抽取信息檢索等后續(xù)任務(wù)提供了先決條件。本發(fā)明在傳統(tǒng)方法的基礎(chǔ)上提升了特征的表達(dá)能力和泛化能力并解決了條件隨機(jī)場(chǎng)只對(duì)離散的特征表示有效的問題,能夠幫助生物醫(yī)學(xué)領(lǐng)域研究者對(duì)文本進(jìn)行自動(dòng)分析,并提供對(duì)已知生物醫(yī)學(xué)命名實(shí)體檢索的功能,幫助他們對(duì)生物醫(yī)學(xué)命名實(shí)體進(jìn)行研究和分析。具體實(shí)施方式以下結(jié)合技術(shù)方案,進(jìn)一步說明本發(fā)明的具體實(shí)施方式。本發(fā)明的系統(tǒng)能夠?qū)o定的生物醫(yī)學(xué)文本進(jìn)行高質(zhì)量的基因名稱識(shí)別,規(guī)避了抽取人工特征帶來的高成本、低泛化能力等難題,提高了對(duì)生物醫(yī)學(xué)文本識(shí)別的水平,而用戶操作起來也簡(jiǎn)單方便。系統(tǒng)采用b/s(browser/server,瀏覽器/服務(wù)器模式,主要采用jsp、html、js等技術(shù)實(shí)現(xiàn))結(jié)構(gòu)設(shè)計(jì),分為視圖層,邏輯層和數(shù)據(jù)層三部分。1.用戶輸入待解析文本如表1所示,文本輸入支持鍵盤輸入和上傳本地文件兩種方式,由視圖層接受用戶輸入的待檢索文本,提交給邏輯層,并存入數(shù)據(jù)層。假設(shè)用戶待解析的文本為“wefindthathtafii32isthehumanhomologueofdrosophilatafii40.”,用戶則可以選擇1、通過頁面文本框直接輸入上述文本或者2、將上述文本保存為txt、doc等格式,通過文件的形式上傳。前者適合短文本或者測(cè)試使用,后者則適合大文本處理。表2系統(tǒng)結(jié)構(gòu)2.系統(tǒng)對(duì)待解析文本進(jìn)行解析(1)邏輯層對(duì)待解析文本進(jìn)行斷句、分詞等預(yù)處理后,將上述文本分解成一個(gè)含有12個(gè)token的句子(含標(biāo)點(diǎn));我們通過word2vec訓(xùn)練出詞向量表,將用戶輸入的文本對(duì)照詞向量表,為每個(gè)詞找到對(duì)應(yīng)的詞向量。如前文所述,利用滑動(dòng)窗口將其轉(zhuǎn)換為12個(gè)向量,并依次輸入改進(jìn)的基于詞向量表示的條件隨機(jī)場(chǎng)。(2)利用基于詞向量表示的條件隨機(jī)場(chǎng)的命名實(shí)體識(shí)別方法,逐步計(jì)算后為每一個(gè)句子找出最優(yōu)的標(biāo)簽序列“ooobooooobio”,即識(shí)別出生物醫(yī)學(xué)命名實(shí)體“htafii32”和“drosophilatafii40”。從而找出命名實(shí)體。在解析時(shí)不需要進(jìn)行訓(xùn)練,而是用訓(xùn)練好的參數(shù)直接得到結(jié)果。3.用戶對(duì)結(jié)果的人工驗(yàn)證用戶提交了數(shù)據(jù)以后,通過得到關(guān)于文本的最優(yōu)標(biāo)記序列,和正確的結(jié)果比較,如果有明顯的錯(cuò)誤,系統(tǒng)允許用戶對(duì)結(jié)果進(jìn)行修正,并將修正的結(jié)果存儲(chǔ)到數(shù)據(jù)庫中,重新調(diào)試參數(shù),直至和正確結(jié)果相比較最優(yōu)。當(dāng)前第1頁12