欧美在线观看视频网站,亚洲熟妇色自偷自拍另类,啪啪伊人网,中文字幕第13亚洲另类,中文成人久久久久影院免费观看 ,精品人妻人人做人人爽,亚洲a视频

基于動態(tài)規(guī)劃的文本概念關(guān)系自動提取方法

文檔序號:6517235閱讀:560來源:國知局
專利名稱:基于動態(tài)規(guī)劃的文本概念關(guān)系自動提取方法
技術(shù)領(lǐng)域
本發(fā)明屬于計算機(jī)語言信息處理和機(jī)器學(xué)習(xí)領(lǐng)域,特別涉及到生物文獻(xiàn)領(lǐng)域的概念實體關(guān)系的自動挖掘和發(fā)現(xiàn)。
背景技術(shù)
隨著計算技術(shù)、信息技術(shù)和互聯(lián)網(wǎng)絡(luò)的發(fā)展,人們對文本信息處理有了更高的要求,從自然語言描述的文本中自動挖掘和發(fā)現(xiàn)概念實體(比如機(jī)構(gòu),組織,人物,時間,地點等),以及概念之間的關(guān)系(比如“人物”在“機(jī)構(gòu)”中任職),就是其中的重要內(nèi)容之一。信息提取(Information Extraction,簡稱IE),研究從文本中獲取用戶感興趣的相關(guān)信息,已經(jīng)受到越來越多研究者的關(guān)注。許多基于自然語言處理或機(jī)器學(xué)習(xí)的算法和系統(tǒng)被相繼研制開發(fā)。
自動生物文獻(xiàn)信息提取作為IE研究內(nèi)容的一個重要分支,近年來受到越來越多的關(guān)注。她不僅具有很強(qiáng)的研究價值(比如BioNLP即生物學(xué)自然語言處理,已經(jīng)成為最熱門的研究課題之一),也極具經(jīng)濟(jì)價值。因為從文獻(xiàn)中自動提取蛋白,基因,病毒和藥物之間的關(guān)系,不僅能加速生物制藥的周期,攻克人類的疑難雜癥,也有助于生物學(xué)家探索人類生命奧秘等重大的科學(xué)問題。當(dāng)前國際上,對生物文獻(xiàn)挖掘和知識發(fā)現(xiàn)取得了很多研究成果,建立了很多相關(guān)的知識庫,比如描述蛋白之間作用關(guān)系的BIND(Biomolecular Interaction NetworkDatabase)。同時,國際上也出現(xiàn)了一些自動提取概念間關(guān)系的研究系統(tǒng)。這些系統(tǒng)通常結(jié)合了自然語言處理、數(shù)據(jù)挖掘和信息抽取等技術(shù),并把它們應(yīng)用到生物文獻(xiàn)的處理中去,取得了一定的成果,但也存在很大的不足。一般來說,存在三類方法第一類方法是基于自然語言處理技術(shù)的,通常都采用了句法或語法分析,在分析策略上則采用淺層分析(shallow parsing)和深層分析(full parsing)的策略。這類系統(tǒng)大都比較復(fù)雜,而且適應(yīng)性較差,準(zhǔn)確率較低。應(yīng)用到特定領(lǐng)域時,由于不能很好地處理領(lǐng)域文本的特殊現(xiàn)象,導(dǎo)致系統(tǒng)性能急劇降低。比如在生物文獻(xiàn)領(lǐng)域,由于分析器不能很好地處理領(lǐng)域內(nèi)的專業(yè)知識和與此相關(guān)的特殊語法和句法現(xiàn)象,因此導(dǎo)致性能的急劇降低。
第二類方法是基于統(tǒng)計學(xué)習(xí)的。常用的模型和方法如隱馬爾科夫模型(HMM),支持向量機(jī)結(jié)合核方法(Kernel Method),條件隨機(jī)域(Conditional Random Fields)。這類系統(tǒng)模型結(jié)構(gòu)復(fù)雜,需要估計較多的模型參數(shù),因此需要較多的語料資源,而且訓(xùn)練時收斂慢。在性能比較上,基于統(tǒng)計學(xué)習(xí)的系統(tǒng)通常都比較差,目前還很難達(dá)到實用的標(biāo)準(zhǔn)。
第三類方法是基于模板匹配的。這類關(guān)系提取系統(tǒng)結(jié)構(gòu)簡單,魯棒性強(qiáng),是目前關(guān)系提取系統(tǒng)的一個較好的選擇,也被大多數(shù)實用系統(tǒng)所采納。但是其中模板的獲取大多采用人工的方式,由用戶或者專家制定。這樣的系統(tǒng)很死板,擴(kuò)充性差。而且由于特定的專家知識的有限性,往往不能真實反映數(shù)據(jù)的情況,從而導(dǎo)致遺漏和錯誤的發(fā)生。同時,人工模板的表示和獲取不能隨著數(shù)據(jù)環(huán)境的改變而作相應(yīng)的調(diào)整。這些變化不能隨時反映到模板的變化中。因此非常需要由數(shù)據(jù)驅(qū)動的模板生成算法。近幾年來,雖然也有一些自動模板生成的算法,比如基于正規(guī)表達(dá)式(Regular Expression)和框架表示(Frame)的學(xué)習(xí)算法,但是這些方法需要事先標(biāo)注好關(guān)系的語料資源,或者需要事先提供學(xué)習(xí)的種子。

發(fā)明內(nèi)容
本發(fā)明的目的是針對已有系統(tǒng)的不足,提出了基于動態(tài)規(guī)劃的關(guān)系自動提取算法。使用該方法,用戶可以從訓(xùn)練語料中自動提取出可能的模板候選組成模板庫,在這個模板的基礎(chǔ)上,利用模板匹配算法從文本中提取描述概念實體之間的作用關(guān)系。本方法不僅模型結(jié)構(gòu)簡單,而且性能也達(dá)到了實用的標(biāo)準(zhǔn)。該方法的思路是1.將文本中的句子看成一個關(guān)于句法標(biāo)記的序列,相似的描述方式在序列中一定重復(fù)出現(xiàn);2.能從訓(xùn)練語料中自動得到對齊模型的參數(shù)及相應(yīng)的模板庫,完全由數(shù)據(jù)驅(qū)動,能真實地反映數(shù)據(jù)體現(xiàn)的描述形式;3.將句子的序列兩兩作對齊,對齊的部分可以作為模板的候選,通過過濾規(guī)則對這些候選進(jìn)行篩選,最后得到實用的模板庫;4.對于每個模板,能自動得到描述模板中各個成分的詞集合;5.通過模板匹配算法,從模板中直接得到概念間關(guān)系的描述;6.模型參數(shù)簡單,基于動態(tài)規(guī)劃的計算,算法的復(fù)雜度低。
本發(fā)明的特征它是在計算機(jī)上完成的,依次還有如下步驟步驟1.針對待提取概念關(guān)系的文本進(jìn)行數(shù)據(jù)預(yù)處理步驟1.1利用權(quán)利說明書中表2中的常用詞性標(biāo)注對所述文本中的句子進(jìn)行句法分析,得到句子的句法標(biāo)記序列;
步驟1.2識別文本中的概念實體類別;步驟1.3根據(jù)權(quán)利說明書中表2的句法標(biāo)記和概念實體編號,對句法標(biāo)記序列進(jìn)行編碼轉(zhuǎn)換,得到關(guān)于編碼的字符串;步驟2.對齊模型的參數(shù)估計,依次含有以下步驟步驟2.1向計算機(jī)程序中輸入編碼序列X=(x1,x2,…,xn)和Y=(y1,y2,…,ym),每個X和Y都是一個編碼的字符串,這兩個編碼序列的長度分別是n和m;步驟2.2利用下述公式1a和1b,建立得分值的矩陣F,并找到矩陣F中的最大得分值F(i,j);公式(1a)F(i,0)=0,F(xiàn)(0,j)=0,xi,yj∈∑公式(1b)F(i,j)=max0F(i-1,j-1)+s(xi,yj)F(i-1,j)+s(xi,-′′)F(i,j-1)+s(-′′,yj)]]>其中,i是編碼序列X中各編碼的順序號,i=1,2,…,n;j是編碼序列Y中各編碼的順序號,j=1,2,…,m;∑表示所有的句法標(biāo)記和概念實體類別的編碼;‘-’代表一個空格,也就是序列中的非空格編碼可能和一個空格對齊,這里空格也叫做GAP;F(i-1,j-1)表示X和Y的前綴子串Xi-1=(x1,x2,…,xi-1)和Yj-1=(y1,y2,…,yj-1)的對齊得分值,其他F(i,j-1),F(xiàn)(i-1,j)類似;公式(1a)和(1b)表示兩個序列的最佳得分值由他們的前綴子串的對齊得分遞歸計算得到;s(xi,yj)表示xi和yi對齊時的得分,按如下公式計算s(x,y)=log[p(x,y)/(p(x)*p(y))],s(x,y)=s(y,x),p(x),p(y)表示編碼x,y在各自序列中的出現(xiàn)概率,當(dāng)編碼用a表示時,
p(a)=C(a)+1Σall x[C(x)+1],]]>C(a)表示編碼a在訓(xùn)練集合中出現(xiàn)的次數(shù);p(x,y)表示在兩個對齊的序列中,x和y對齊的概率,當(dāng)用a,b分別表示這兩個編碼x,y時,計算如下p(a,b)=C(a,b)+1Σall pairs(x,y)[C(x,y)+1],]]>C(a,b)表示a和b對齊的次數(shù);當(dāng)非空格編碼和空格對齊時,s(a,′-′)=s(′-′,a)應(yīng)該為負(fù)值;步驟2.3在得到對齊模型的參數(shù)后,利用步驟2.2中的公式(1a)和(1b)可以得到m*n個得分值,從所有這些得分值最大的F(i,j)開始回溯,沿著最大值計算的路徑開始,到F(k,h)=0的那條路徑就是最佳的局部對齊方式,該過程依次含有如下步驟設(shè)定k=i,h=j(luò),進(jìn)行如下循環(huán)直到F(k,h)=0(1)如果F(k,h)==F(k-1,h-1)+s(xk,yh)則k=k-1;h=h-1;a=xk;b=y(tǒng)h,繼續(xù)往下循環(huán)(2)如果F(k,h)==F(k-1,h)+s(xk,-)則k=k-1;a=xk;b=‘-‘,繼續(xù)往下循環(huán)(3)如果F(k,h)==F(k,h-1)+s(-,yh)則h=h-1;a=‘-‘;b=y(tǒng)h,繼續(xù)往下循環(huán)(4)將a加入到Xa的頭部,將b加入到Y(jié)b的頭部;循環(huán)結(jié)束,輸出Xa和Yb作為最后對齊的結(jié)果;步驟3.生成模板步驟3.1設(shè)定模板結(jié)構(gòu)每個模板有一個句法標(biāo)記序列,表達(dá)一定的文本描述方式;模板中每個成分有一個詞集合,而概念實體的詞集合用一個*號表示,每個模板有一個計數(shù)(count),記錄這個模板在訓(xùn)練過程中被對齊的次數(shù);不同模板成分的詞集合用分號隔開(;),同一模板成分的詞集合之間的詞用空格隔開;
所述模板結(jié)構(gòu)的代碼為(C/C++語言)intm_length;//模板的長度List*m_pWordsList;//模板中各個成分的詞列表char*m_pat;//模板的句法標(biāo)記的16進(jìn)制編碼序列intm_count;//模板在訓(xùn)練過程中被對齊的次數(shù)步驟3.2生成模板,依次含有如下步驟步驟3.2.1向所述的計算機(jī)程序輸入模板計數(shù)的閾值d,訓(xùn)練語料中所有句子的編碼序列T=(t1,t2,…,tn),每個ti是一個句子的編碼序列;步驟3.2.2對T中的每個編碼序列,刪除句法標(biāo)記為DT(定冠詞),RB,RBS,RBR(副詞)所對應(yīng)的編碼;序列的其他部分保留不變;步驟3.2.3從集合T中任選兩個ti和tj,循環(huán)如下操作3.2.3.1步對ti和tj應(yīng)用步驟2.3的局部對齊算法,設(shè)輸出結(jié)果為Xa和Yb;3.2.3.2步將Xa和Yb中的相同位置的相同編碼作為模板p的編碼序列,將相應(yīng)位置的詞索引加入到模板結(jié)構(gòu)中;3.2.3.3判定p是否符合下述過濾規(guī)則若模板中既不包含名詞成分(NN)又不包含動詞成分(VB),則拒絕該模板;若模板中最后一個句法標(biāo)記為IN或TO,則拒絕該模板;若句法標(biāo)記CC的左鄰成分不等于右鄰成分,則拒絕該模板;若模板中概念實體類別數(shù)目不等于2個,則拒絕該模板;如果模板被拒絕,轉(zhuǎn)到第3.2.3步繼續(xù)執(zhí)行;3.2.3.4步如果p已經(jīng)在P中存在,將p的模板計數(shù)(count)加1;否則,將p加入到P中,其模板計數(shù)為1;3.2.3.5步如果集合T中所有的編碼序列的兩兩組合都計算完,退出此循環(huán);步驟3.2.4根據(jù)設(shè)定的模板計數(shù)的閾值d,過濾掉模板庫P中的模板計數(shù)小于d的模板;步驟3.2.5輸出模板庫P;步驟4.自動提取概念間關(guān)系步驟4.1把概念間關(guān)系定義為一個用subject,action,object表示的三元組,其中,Subject表示關(guān)系中的主動者,即誰發(fā)起了此關(guān)系;Action表示描述關(guān)系的性質(zhì)或種類的動詞(VB,VBN)或者動名詞(NN);Object表示關(guān)系中的被動者,即關(guān)系的結(jié)果或影響作用于object上;步驟4.2利用如下規(guī)則,從模板匹配結(jié)果中提取關(guān)系若模板中的第一個概念實體后面有VBN(被動詞),則第一個概念實體為Object,第二個為Subject;若模板中的第一個概念實體后面有IN且該模板成分的詞集合為{by},則第一個概念實體為Object,第二個為Subject;除第一種和第二種情況外的其他情況下,模板中的第一個概念實體為Subject,第二個概念實體為Object,模板中的VB,VBN或NN為Action。
在模板匹配過程中,我們還采用了自然語言處理的技術(shù),對句子的結(jié)構(gòu)進(jìn)行分析(如并列結(jié)構(gòu),同位結(jié)構(gòu),限制性定語和非限制性定語從句等各種從句分析),取得了很好的性能。為了驗證本發(fā)明的有效性,我們進(jìn)行了關(guān)系提取的實驗。以從文本中提取蛋白作用關(guān)系為例,我們手工收集了約1000個描述蛋白關(guān)系的英文句子。將這些句子分成訓(xùn)練集合(800句)和測試集合(200句)兩部分,其中訓(xùn)練集合用以獲取對齊模型參數(shù)和生成模板,測試集合用來測試本發(fā)明的性能。程序運行環(huán)境為CPU1.8G內(nèi)存512M或者更高的配置。對單個關(guān)鍵詞(如interact,modify,activate),本發(fā)明取得了93%的平均精度(precision),71%的平均回收率(recall),見表1。
此外,從模型的結(jié)構(gòu)上說,我們只需要估計對齊模型的參數(shù),基于動態(tài)規(guī)劃的算法計算效率高,算法復(fù)雜度低。對比其它基于復(fù)雜統(tǒng)計模型的系統(tǒng)而言,本方法具有較強(qiáng)的優(yōu)勢。
表1在測試集和訓(xùn)練集上的關(guān)系提取性能


本發(fā)明能自動從數(shù)據(jù)中發(fā)現(xiàn)和提取用以描述概念實體間關(guān)系的模板,以及自動獲取模板成分中的詞集合,通過模板匹配方法和模板轉(zhuǎn)換,可以自動得到概念之間的關(guān)系。模型結(jié)構(gòu)和參數(shù)簡單,算法復(fù)雜度低,在實驗測試數(shù)據(jù)上取得了很好的性能。同時本發(fā)明說明的算法有較好的推廣性和適應(yīng)性,不僅適用于生物文獻(xiàn)領(lǐng)域的概念實體間的關(guān)系提取,還適應(yīng)于其他領(lǐng)域的文本自動關(guān)系提取,具有良好的應(yīng)用前景。


圖1.概念關(guān)系自動提取方法的流程圖;圖2.參數(shù)估計程序流程圖;圖3.對齊算法流程圖;圖4.模板結(jié)構(gòu)4a.模板結(jié)構(gòu);4b.模板所能表達(dá)的文本格式;圖5.模板生成算法的程序流程;圖6.從語料中自動提取的模板;圖7.從模板形式到關(guān)系形式的轉(zhuǎn)換。
具體實施例方式
附圖1描述了本方法的流程。本發(fā)明對于提取概念關(guān)系具有廣泛的適應(yīng)性,為了描述的方便,本發(fā)明中的描述以生物文獻(xiàn)中的蛋白與蛋白之間的作用關(guān)系為實例。下面就以上方法詳細(xì)進(jìn)行說明1.數(shù)據(jù)預(yù)處理數(shù)據(jù)預(yù)處理包括對句子進(jìn)行句法分析,得到句子的句法標(biāo)記序列;識別句子的概念實體類別;對句法標(biāo)記進(jìn)行編碼轉(zhuǎn)換,得到關(guān)于編碼的字符串。
本發(fā)明需要首先對每個句子進(jìn)行句法分析,然后將句子表示成一個關(guān)于句法標(biāo)記的字符串。本發(fā)明中常用的句法標(biāo)記見表2。然后,對句子中的概念實體進(jìn)行識別(比如識別蛋白,基因,病毒等概念),將句中的概念實體按類別分別賦以相應(yīng)的標(biāo)記。為了后續(xù)算法順利進(jìn)行,還需要對句法標(biāo)記進(jìn)行編碼,即將多個字符的句法標(biāo)記編碼成單字母。最后對齊算法利用句子的編碼序列進(jìn)行局部對齊。
表2模板中常用的詞性標(biāo)注

舉例來說,下面例句對應(yīng)的兩個序列如下原句APC/C specifically interacted with SKR-1.
句法標(biāo)記序列PTN RB VBZ IN PTN16進(jìn)制編碼序列0x35 0x2E 0x2D 0x25 0x35(這里,APC/C和SKR-1都屬于概念實體類別1(蛋白))在模板生成的時候,由于訓(xùn)練數(shù)據(jù)總是有限的,因此為了避免數(shù)據(jù)稀疏引起的模板缺失問題,將句法標(biāo)記進(jìn)行規(guī)一化●NN,NNP規(guī)一為NN●NNS,NNPS規(guī)一為NNS●VB,VBZ,VBP,VBG規(guī)一為VB●VBD,VBN規(guī)一為VBN模板生成的時候,由于某些句法標(biāo)記出現(xiàn)的次數(shù)很少(比如VBG),因此生成的模板很少,經(jīng)過規(guī)一化后,這些較少的句法標(biāo)記能歸到大類標(biāo)記中(如VBG→VB),因此能有效的避免數(shù)據(jù)稀疏帶來的影響。
2.對齊模型的參數(shù)估計本方法的第二步重要步驟就是要從訓(xùn)練語料中自動統(tǒng)計得到對齊模型的參數(shù)。給定兩個句子的編碼序列X=(x1,x2,…,xn)和Y=(y1,y2,…,ym),每個x和y都是一個編碼的字母。這兩個編碼序列的長度分別是n和m。為了評價這兩個序列的局部最大相似性,也就是需要把這兩個序列以最好的方式對齊起來,可以定義評價函數(shù)F(i,j),表示序列X中的x1x2…xi和Y中的y1y2…yj一種最好對齊方式的得分。這個得分可以通過動態(tài)規(guī)劃的方式得到F(i,0)=0,F(xiàn)(0,j)=0,xi,yj∈∑ (1a)F(i,j)=max0F(i-1,j-1)+s(xi,yj)F(i-1,j)+s(xi,-′′)F(i,j-1)+s(-′′,yj)---(1b)]]>∑表示所有的句法標(biāo)記和概念實體類別的編碼;‘-’代表一個空格,也就是序列中的字母可能和一個空格對齊,也叫GAP;s(xi,yj)表示xi和yj對齊時的得分,s(xi,′-′)表示xi和空格對齊時的得分,表示在Y序列中插入一個空格;s(′-′,yj)表示yi和空格對齊時的得分,表示在X序列中插入一個空格;這些得分用下式計算s(x,y)=log[p(x,y)/(p(x)*p(y))] (2)顯然s(x,y)=s(y,x)。P(x)表示x編碼的出現(xiàn)概率,p(x,y)表示在兩個對齊的序列中,x和y對齊的概率。這些概率可以從人工對齊的序列中估計如下p(a)=C(a)+1Σall x[C(x)+1]---(3a)]]>
p(a,b)=C(a,b)+1Σall pairs(x,y)[C(x,y)+1]---(3b)]]>C(a)表示編碼a在訓(xùn)練集合中出現(xiàn)的次數(shù);C(a,b)表示a和b對齊的次數(shù)。注意分子分母都在原先的計數(shù)上加了1,是為了避免0計數(shù)的出現(xiàn)。(2)和(3a-b)只能計算非空格編碼的得分。參數(shù)估計的程序流程見附圖2。當(dāng)一個編碼和空格對齊時,這種對齊方式不應(yīng)該被鼓勵,因此在得分上應(yīng)該給一個懲罰,也就是s(a,′-′)應(yīng)該為負(fù)值。表3顯示了算法中用到的懲罰得分表表3懲罰得分表,s(a,‘-’)=s(‘-’,a)

(1a-b)表示兩個序列對齊的最佳得分可以由他們的前綴子串的對齊得分遞歸計算得到。在得到對齊模型的參數(shù)后,利用公式(1a-b)可以得到m*n個得分值,從所有這些得分值最大的F(i,j)開始回溯,沿著最大值計算的路徑開始,到F(k,h)=0的那條路徑就是最佳的局部對齊方式。
具體的算法如下輸入編碼序列X=(x1,x2,…xn)和Y=(y1,y2,…,ym)輸出X和Y對齊的結(jié)果Xa和Yb1.利用公式(1a-b),建立得分值的矩陣F;2.找到矩陣F中最大的得分值F(i,j);3.設(shè)定k=i,h=j(luò),循環(huán)如下直到F(k,h)=0(3.1)如果F(k,h)=F(k-1,h-1)+s(xk,yh)則k=k-1;h=h-1;a=xk;b=y(tǒng)h(3.2)如果F(k,h)=F(k-1,h)+(xk,-)則k=k-1;a=xk;b=‘-‘
(3.3)如果F(k,h)==F(k,h-1)+s(-,yh)則h=h-1;a=‘-‘;b=y(tǒng)h(3.4)將a加入到Xa的頭部,將b加入到Y(jié)b的頭部;4.輸出Xa和Yb作為最后對齊的結(jié)果。
算法實現(xiàn)的程序流程見附圖3。
獲取對齊模型的參數(shù)時,所使用的訓(xùn)練數(shù)據(jù)是人工事先對齊的句子對。我們的方法中,采用了大約50對這樣的句子對。舉例來說,句子對的對齊形式如下

3.模板生成以提取生物文獻(xiàn)中的蛋白之間的作用關(guān)系為實例,算法中所使用的模板結(jié)構(gòu)如圖3所示。每個模板有一個句法標(biāo)記序列,如“NN IN CE1CC CE1”(CE1表示一類概念實體,在示例中是蛋白實體類)。模板中的每個成分有一個詞集合,如圖3模板中的NN成分包含詞interaction和association。概念實體的詞集合用一個星號(*)代替。每個模板有一個計數(shù)(count),記錄這個模板在訓(xùn)練過程中被對齊的次數(shù)。每個模板可以表達(dá)一定的文本描述方式,如圖4中的模板能表達(dá)圖4(b)所示的四種描述方式。該模板結(jié)構(gòu)的詞集以序列的方式表示成Interaction association;between of;*;and;*即不同模板成分的詞集合用分號隔開(;),同一模板成分的詞集合之間的詞用空格隔開。概念實體類的詞集合用星號代替(*)。
該模板結(jié)構(gòu)的程序代碼為int m_length;//模板的長度List*m_pWordsList;//模板中各個成分的詞列表char*m_pat;//模板的句法標(biāo)記的16進(jìn)制編碼序列int m_count;//模板在訓(xùn)練過程中被對齊的次數(shù)在此模板結(jié)構(gòu)的基礎(chǔ)上,模板生成算法如下1.輸入模板計數(shù)的閾值d,訓(xùn)練語料中所有句子的編碼序列T=(t1,t2,…,tn),每個ti是一個句子的編碼序列輸出模板庫P
2.對T中的每個編碼序列,刪除句法標(biāo)記為DT(定冠詞),RB,RBS,RBR(副詞)所對應(yīng)的編碼;序列的其他部分保留不變;3.從集合中任選兩個ti和tj,循環(huán)如下操作(3.1)對ti和tj應(yīng)用局部對齊算法,設(shè)輸出結(jié)果為Xa和Yb;(3.2)將Xa和Yb中的相同位置的相同編碼作為模板p的編碼序列,將相應(yīng)位置的詞索引加入到模板結(jié)構(gòu)中;(3.3)判定p是否符合過濾規(guī)則,若符合過濾規(guī)則,則拒絕該模板,轉(zhuǎn)到第3步繼續(xù)執(zhí)行;(3.4)如果p已經(jīng)在P中存在,將p的模板計數(shù)(count)加1;否則,將p加入到P中,其模板計數(shù)為1;(3.5)如果集合T中所有的組合都計算完,退出此循環(huán);4.根據(jù)設(shè)定的模板計數(shù)的閾值d,過濾掉模板庫P中的模板計數(shù)小于d的模板5.輸出模板庫P該算法中第(3.3)步所采用過濾規(guī)則包括●如果模板中既不包含名詞成分(NN)又不包含動詞成分(VB),則拒絕該模板●如果模板中最后一個句法標(biāo)記為IN或TO,則拒絕該模板●如果句法標(biāo)記CC的左鄰成分不等于右鄰成分,則拒絕該模板●如果模板中概念實體類別數(shù)目不等于2個,則拒絕該模板,也就是每個模板只允許出現(xiàn)兩個概念實體算法(3.2)步從對齊序列中得到模板的程序代碼如下3.2.1. 設(shè)對齊序列為Xa=(x1,x2,…,xm)和Yb=(y1,y2,…,ym)3.2.2. 最大連續(xù)塊的索引位置k,最大連續(xù)塊的長度為maxlen=0,當(dāng)前塊的長度為len=03.2.3. for i=m to 13.2.2.1. if(xi!=y(tǒng)i)and len>maxlen then k=i,maxlen=len,len=03.2.2.2. else len=len+13.2.2.3. i=i-13.2.4. k=k-1;3.2.5. Do loop while(xk==y(tǒng)k)
3.2.2.1. p=xk+p,這里的”+”號表示字符串連接3.2.2.2. k=k-13.2.6. 輸出字符串p作為模板的編碼序列這段程序的思想是首先找到對齊序列中最長的在相同位置字母相同的連續(xù)塊,然后從這個連續(xù)塊的位置開始,將這段連續(xù)塊作為模板的編碼序列。
附圖5描述了模板生成算法的程序流程圖。為了從文本中自動提取蛋白之間的作用關(guān)系(涉及到一類概念實體,即蛋白類PTN),附圖6顯示了從我們語料中自動獲取的模板(閾值設(shè)定為0)。附圖6表示了幾個常見動詞interact,bind,modify,associate的模板形式。
4.概念間關(guān)系自動獲取前面說明了如何自動得到描述概念之間關(guān)系的模板,通過前述模板匹配算法,我們可以得到每個匹配實例,但為了得到關(guān)系,我們還需要定義關(guān)系并且實現(xiàn)從模板到關(guān)系的轉(zhuǎn)換。在本發(fā)明中,概念間的關(guān)系被定義成一個三元組(subject,action,object),其中,Subject關(guān)系中的主動者,即誰發(fā)起了此關(guān)系A(chǔ)ction描述關(guān)系的性質(zhì)或種類的動詞(VB,VBN)或者動名詞(NN)Object關(guān)系中的被動者,即關(guān)系的結(jié)果或影響作用于object上。
接下來,利用如下規(guī)則實現(xiàn)從模板到關(guān)系的轉(zhuǎn)換●如果模板中的第一個概念實體后面有VBN(被動詞),則第一個概念實體為Object,第二個為Subject●如果模板中的第一個概念實體后面有IN且該模板成分的詞集合為{by},則第一個概念實體為Object,第二個為Subject●除第一種和第二種情況外的其他情況下,模板中的第一個概念實體為Subject,第二個概念實體為Object,模板中的VB,VBN或NN為Action附圖7以蛋白和蛋白之間的關(guān)系為例(PTN表示蛋白),表示從模板形式到關(guān)系形式的轉(zhuǎn)換結(jié)果。通過關(guān)系形式,對每個模板匹配的結(jié)果,我們可以直接得到該結(jié)果對應(yīng)的關(guān)系。舉例來說,如果我們得到如下的模板NN IN PTN1IN PTN2activation phosphorylation;of;*;by;*;這個模板所表達(dá)的語義實際上是說PTN1is activated/phosphorylated by PTN2,利用轉(zhuǎn)換規(guī)則中的第三條,很容易得到關(guān)系的描述方式為(PTN2,NN,PTN1)。
權(quán)利要求
1.基于動態(tài)規(guī)劃的文本概念關(guān)系自動提取方法,其特征在于,它是在計算機(jī)上完成的,依次還有如下步驟步驟1.針對待提取概念關(guān)系的文本進(jìn)行數(shù)據(jù)預(yù)處理步驟1.1利用權(quán)利說明書中表1中的常用詞性標(biāo)注對所述文本中的句子進(jìn)行句法分析,得到句子的句法標(biāo)記序列;步驟1.2識別文本中的概念實體類別;步驟1.3根據(jù)權(quán)利說明書中表1的句法標(biāo)記和概念實體編號,對句法標(biāo)記序列進(jìn)行編碼轉(zhuǎn)換,得到關(guān)于編碼的字符串;步驟2.對齊模型的參數(shù)估計,依次含有以下步驟步驟2.1向計算機(jī)程序中輸入編碼序列X=(x1,x2,…,xn)和Y=(y1,y2,…,ym),每個X和Y都是一個編碼的字符串,這兩個編碼序列的長度分別是n和m;步驟2.2利用下述公式1a和1b,建立得分值的矩陣F,并找到矩陣F中的最大得分值F(i,j);公式(1a)F(i,0)=0,F(xiàn)(0,j)=0,xi,yj∈∑公式(1b)F(i,j)=max0,F(i-1,j-1)+s(xi,yj)F(i-1,j)+s(xi,′-′)F(i,j-1)+s(′-′,yj)]]>其中,i是編碼序列X中各編碼的順序號,i=1,2,…,n;j是編碼序列Y中各編碼的順序號,j=1,2,…,m;∑表示所有的句法標(biāo)記和概念實體類別的編碼;‘-’代表一個空格,也就是序列中的非空格編碼可能和一個空格對齊,這里空格也叫做GAP;F(i-1,j-1)表示X和Y的前綴子串Xi-1=(x1,x2,…,xi-1)和Yj-1=(y1,y2,…,yj-1)的對齊得分值,其他F(i,j-1),F(xiàn)(i-1,j)類似;公式(1a)和(1b)表示兩個序列的最佳得分值由他們的前綴子串的對齊得分遞歸計算得到;s(xi,yj)表示xi和yj對齊時的得分,按如下公式計算s(x,y)=log[p(x,y)/(p(x)*p(y))],s(x,y)=s(y,x),p(x),p(y)表示編碼x,y在各自序列中的出現(xiàn)概率,當(dāng)編碼用a表示時,p(a)=C(a)+1Σall x[C(x)+1],]]>C(a)表示編碼a在訓(xùn)練集合中出現(xiàn)的次數(shù);p(x,y)表示在兩個對齊的序列中,x和y對齊的概率,當(dāng)用a,b分別表示這兩個編碼x,y時,計算如下p(a,b)=C(a,b)+1Σall pairs(x,y)[C(x,y)+1],]]>C(a,b)表示a和b對齊的次數(shù);當(dāng)非空格編碼和空格對齊時,s(a,′-′)=s(′-′,a)應(yīng)該為負(fù)值;步驟2.3在得到對齊模型的參數(shù)后,利用步驟2.2中的公式(1a)和(1b)可以得到m*n個得分值,從所有這些得分值最大的F(i,j)開始回溯,沿著最大值計算的路徑開始,到F(k,h)=0的那條路徑就是最佳的局部對齊方式,該過程依次含有如下步驟設(shè)定k=i,h=j(luò),進(jìn)行如下循環(huán)直到F(k,h)=0(1)如果F(k,h)==F(k-1,h-1)+s(xk,yh)則k=k-1;h=h-1;a=xk;b=y(tǒng)h,繼續(xù)往下循環(huán)(2)如果F(k,h)==F(k-1,h)+s(xk,-)則k=k-1;a=xk;b=‘-‘,繼續(xù)往下循環(huán)(3)如果F(k,h)==F(k,h-1)+s(-,yh)則h=h-1;a=‘-‘;b=y(tǒng)h,繼續(xù)往下循環(huán)(4)將a加入到Xa的頭部,將b加入到Y(jié)b的頭部;循環(huán)結(jié)束,輸出Xa和Yb作為最后對齊的結(jié)果;步驟3.生成模板步驟3.1設(shè)定模板結(jié)構(gòu)每個模板有一個句法標(biāo)記序列,表達(dá)一定的文本描述方式;模板中每個成分有一個詞集合,而概念實體的詞集合用一個*號表示,每個模板有一個計數(shù)(count),記錄這個模板在訓(xùn)練過程中被對齊的次數(shù);不同模板成分的詞集合用分號隔開(;),同一模板成分的詞集合之間的詞用空格隔開;所述模板結(jié)構(gòu)的代碼為(C/C++語言)int m_length;∥模板的長度List*m_pWordsList;∥模板中各個成分的詞列表char*m_pat;∥模板的句法標(biāo)記的16進(jìn)制編碼序列int m_count;∥模板在訓(xùn)練過程中被對齊的次數(shù)步驟3.2生成模板,依次含有如下步驟步驟3.2.1向所述的計算機(jī)程序輸入模板計數(shù)的閾值d,訓(xùn)練語料中所有句子的編碼序列T=(t1,t2,…,tn),每個ti是一個句子的編碼序列;步驟3.2.2對T中的每個編碼序列,刪除句法標(biāo)記為DT(定冠詞),RB,RBS,RBR(副詞)所對應(yīng)的編碼;序列的其他部分保留不變;步驟3.2.3從集合T中任選兩個ti和ti,循環(huán)如下操作3.2.3.1步對ti和ti應(yīng)用步驟2.3的局部對齊算法,設(shè)輸出結(jié)果為Xa和Yb;3.2.3.2步將Xa和Yb中的相同位置的相同編碼作為模板p的編碼序列,將相應(yīng)位置的詞索引加入到模板結(jié)構(gòu)中;3.2.3.3判定p是否符合下述過濾規(guī)則若模板中既不包含名詞成分(NN)又不包含動詞成分(VB),則拒絕該模板;若模板中最后一個句法標(biāo)記為IN或TO,則拒絕該模板;若句法標(biāo)記CC的左鄰成分不等于右鄰成分,則拒絕該模板;若模板中概念實體類別數(shù)目不等于2個,則拒絕該模板;如果模板被拒絕,轉(zhuǎn)到第3.2.3步繼續(xù)執(zhí)行;3.2.3.4步如果p已經(jīng)在P中存在,將p的模板計數(shù)(count)加1;否則,將p加入到P中,其模板計數(shù)為1;3.2.3.5步如果集合T中所有的編碼序列的兩兩組合都計算完,退出此循環(huán);步驟3.2.4根據(jù)設(shè)定的模板計數(shù)的閾值d,過濾掉模板庫P中的模板計數(shù)小于d的模板;步驟3.2.5輸出模板庫P;步驟4.自動提取概念間關(guān)系步驟4.1把概念間關(guān)系定義為一個用subject,action,object表示的三元組,其中,Subject表示關(guān)系中的主動者,即誰發(fā)起了此關(guān)系;Action表示描述關(guān)系的性質(zhì)或種類的動詞(VB,VBN)或者動名詞(NN);Object表示關(guān)系中的被動者,即關(guān)系的結(jié)果或影響作用于object上;步驟4.2利用如下規(guī)則,從模板匹配結(jié)果中提取關(guān)系若模板中的第一個概念實體后面有VBN(被動詞),則第一個概念實體為Object,第二個為Subject;若模板中的第一個概念實體后面有IN且該模板成分的詞集合為{by},則第一個概念實體為Object,第二個為Subject;除第一種和第二種情況外的其他情況下,模板中的第一個概念實體為Subject,第二個概念實體為Object,模板中的VB,VBN或NN為Action。
全文摘要
基于動態(tài)規(guī)劃的文本概念關(guān)系自動提取方法屬于計算機(jī)語言信息處理領(lǐng)域,其特征在于它首先把文本中的句子視作句法標(biāo)記的序列并予以編碼化,在此基礎(chǔ)上得到對齊模型的參數(shù);利用該對齊模型把訓(xùn)練數(shù)據(jù)中的句子序列兩兩對齊,把對齊的部分看作模板候選,并設(shè)計了相應(yīng)的模板結(jié)構(gòu),再利用過濾規(guī)則進(jìn)行篩選,建立實用的模板庫;最后通過模板匹配方法,從匹配結(jié)果中利用轉(zhuǎn)換規(guī)則,自動得到最終的概念間關(guān)系。它具有模型參數(shù)簡單,算法復(fù)雜度低和性能優(yōu)越的優(yōu)點。
文檔編號G06F17/27GK1696933SQ20051001180
公開日2005年11月16日 申請日期2005年5月27日 優(yōu)先權(quán)日2005年5月27日
發(fā)明者黃民烈, 朱小燕, 李明, 郝宇 申請人:清華大學(xué)
網(wǎng)友詢問留言 已有0條留言
  • 還沒有人留言評論。精彩留言會獲得點贊!
1
卢龙县| 静海县| 色达县| 宜丰县| 奉化市| 磐石市| 屯昌县| 昌平区| 昆山市| 阳城县| 旌德县| 宾阳县| 开平市| 安阳市| 建德市| 河间市| 宝鸡市| 德保县| 昭苏县| 德化县| 青田县| 天台县| 信丰县| 禹城市| 扬中市| 九江市| 迁西县| 昌平区| 伊川县| 兴城市| 客服| 乐山市| 濮阳市| 克拉玛依市| 介休市| 图们市| 常宁市| 莒南县| 古浪县| 景宁| 台中县|