本發(fā)明涉及一種基于管道的中文篇章結(jié)構(gòu)分析方法及系統(tǒng),屬于自然語言處理應(yīng)用技術(shù)領(lǐng)域。
背景技術(shù):
一般來說,沒有任何一個文本單元是完全孤立的,通常是通過將其與上下文中的其它文本單元相連接來理解。這些單元可以是子句,句子甚至段落。當(dāng)文本單元之間相互關(guān)聯(lián),該文本就會更容易理解。篇章結(jié)構(gòu)分析旨在揭示文本中的這種關(guān)系,從而從整體上把握篇章,有助于自動摘要,信息檢索和自動問答等諸多下游應(yīng)用。近年來,相較于英文篇章結(jié)構(gòu)分析研究的飛速發(fā)展,中文篇章結(jié)構(gòu)分析目前正處于起步階段。目前對中文篇章的研究多是借鑒西方現(xiàn)代篇章語言學(xué)理論和分析模式,沒有建立適合自身特點的理論體系和計算方法。除此以外,由于中文篇章結(jié)構(gòu)分析發(fā)展的滯后,完整的中文篇章結(jié)構(gòu)自動分析工具的研究與實踐都相對匱乏。一般來說,中文篇章關(guān)系分析系統(tǒng)在結(jié)構(gòu)上與英文篇章關(guān)系分析系統(tǒng)類似,都需要以下步驟:顯式連接詞判定、基本篇章單元劃分、顯式篇章關(guān)系標(biāo)注和隱式篇章關(guān)系標(biāo)注。在傳統(tǒng)的方法中,篇章分析系統(tǒng)將以上步驟視為不同的子模塊,按照級聯(lián)的形式將各個子模塊拼接在一起形成完整的管道式系統(tǒng)。這種管道系統(tǒng)的弊端在于其存在較大的錯誤傳遞問題,連接詞識別中的噪聲往往會影響連接詞識別的準(zhǔn)確率,導(dǎo)致連接詞判定模塊會將錯誤的連接詞傳遞給后續(xù)的篇章單元劃分及顯式關(guān)系標(biāo)注,從而導(dǎo)致系統(tǒng)整體性能下降。
隱式篇章關(guān)系的判別是篇章結(jié)構(gòu)分析中的重點及難點,從篇章標(biāo)注語料匱乏時期的無監(jiān)督學(xué)習(xí),到如今基于深度學(xué)習(xí)的方法,針對隱式篇章關(guān)系分析的研究逐步深入。然而,不論是基于特征提取的隱式篇章關(guān)系判別還是基于深度學(xué)習(xí)的方法,隱式關(guān)系判別中存在的標(biāo)注語料匱乏和篇章關(guān)系分布不平衡的問題依然沒得到緩解。
因此,目前迫切需要一個較為高效的中文篇章結(jié)構(gòu)分析方法,在緩解傳統(tǒng)端到端系統(tǒng)中存在的錯誤傳遞問題的同時,針對篇章語料中篇章關(guān)系分布不平衡問題提出有效的緩解方法,以提升隱式篇章關(guān)系判別的性能,最終為后續(xù)自然語言處理任務(wù)帶去便利。
技術(shù)實現(xiàn)要素:
本發(fā)明的目的是為解決以往中文篇章結(jié)構(gòu)分析中存在的傳統(tǒng)端到端系統(tǒng)的方法沒有考慮中文語言特點的問題,傳統(tǒng)管道系統(tǒng)方法中錯誤傳遞問題,中文隱式篇章關(guān)系判別中語料分布不平衡問題。針對上述問題,本發(fā)明提出基于管道的中文篇章結(jié)構(gòu)分析方法,根據(jù)中文篇章結(jié)構(gòu)的特點,實現(xiàn)對動態(tài)特征的建模用以提高關(guān)系判別準(zhǔn)確率。與傳統(tǒng)端到端系統(tǒng)不同的是,本發(fā)明提出了一體化顯式篇章關(guān)系分析方法以緩解管道系統(tǒng)中存在的錯誤傳遞問題,與此同時,針對中文隱式篇章關(guān)系語料的不平衡問題,本發(fā)明提出了基于排序?qū)W習(xí)的中文隱式篇章關(guān)系分析方法以提升中文隱式篇章關(guān)系判別精度。
本發(fā)明技術(shù)方案的思想是:首先,根據(jù)中文篇章語料庫具有層次性這個特點,以自然段為單元,自下而上的分別處理句內(nèi)和句間關(guān)系,使得預(yù)測句間或更高層次篇章關(guān)系時可以動態(tài)地利用已識別的句內(nèi)關(guān)系,以此做到對動態(tài)特征的建模;其次,將傳統(tǒng)端到端系統(tǒng)中的顯式篇章關(guān)系分析中的三個子任務(wù):篇章連接詞判定、論元劃分和顯式關(guān)系判別整合為一個任務(wù),轉(zhuǎn)化為一個序列標(biāo)注問題并加以實現(xiàn),緩解了傳統(tǒng)管道系統(tǒng)中的錯誤傳遞問題;最后,采用排序?qū)W習(xí)的方法平衡隱式篇章關(guān)系語料,以簡單多分類結(jié)果中各關(guān)系的偏離情況作為基礎(chǔ)打分規(guī)則,論元長度為偏置,將傳統(tǒng)二分類中的0、1標(biāo)簽變更為0-1之間的實數(shù)標(biāo)簽,采用pairwise算法實現(xiàn)。
本發(fā)明的具體技術(shù)方案如下:
一種基于管道的中文篇章結(jié)構(gòu)分析方法,該方法包括以下步驟:
步驟一、進行語料預(yù)處理:對輸入的語料,進行中文分詞、中文詞性標(biāo)注、句法分析;
步驟二、進行篇章連接詞閉集構(gòu)建:統(tǒng)計中文篇章關(guān)系樹庫(chinesediscousetreebank,cdtb)語料中所出現(xiàn)過的所有篇章連接詞,將其制成一個篇章連接詞表,在構(gòu)建過程中僅保留在語料庫中出現(xiàn)次數(shù)高于設(shè)定頻次閾值的篇章連接詞,最終形成連接詞閉集;
步驟三、進行詞的embedding表示:使用大規(guī)模語料庫訓(xùn)練word2vec,將每個單詞映射到向量空間的低維向量,從而表示每個單詞的語義;
步驟四、構(gòu)建一體化顯式篇章分析模型:對步驟一處理過的分詞文本進行序列標(biāo)注的訓(xùn)練得到顯式篇章一體化分析模型,在該模型中可同時完成篇章連接詞識別、論元劃分以及篇章關(guān)系標(biāo)注三項任務(wù);
實現(xiàn)步驟如下:
(1)首先設(shè)定標(biāo)注集合,在一體化顯式關(guān)系標(biāo)注中,需要同時對連接詞、論元以及篇章關(guān)系進行標(biāo)注,所以設(shè)定標(biāo)注分類為:
1)arg1:該詞為論元1的一部分。
2)arg2:該詞為論元2的一部分。
3)expansion:該詞為篇章連接詞,且該句為擴展關(guān)系。
4)temporal:該詞為篇章連接詞,且該句為時序關(guān)系。
5)comparison:該詞為篇章連接詞,且該句為轉(zhuǎn)折關(guān)系。
6)contingency:該詞為篇章連接詞,且該句為因果關(guān)系。
7)0:該詞既不為篇章連接詞,也不屬于任何論元的部分。
(2)提取上下文特征以用于分類器的訓(xùn)練及測試,所提特征為詞法特征和句法特征;
(3)將上述步驟中獲得的數(shù)據(jù)輸入到crf++工具中,參數(shù)采用默認參數(shù)值,得到顯式關(guān)系分析結(jié)果,輸出至explicitrelation文件中。
步驟五、進行有用詞對抽?。涸谟?xùn)練語料的論元中分別抽取一詞作為詞對,統(tǒng)計各詞在各篇章類別中的信息增益值大小,選取高于閾值的詞對構(gòu)建有用詞對表;
步驟六、構(gòu)建排序語料打分機制:對于正樣本,設(shè)定其標(biāo)簽為1;對于負樣本,按照其偏離正樣本的程度對其進行打分,分數(shù)范圍為0-1之間的實數(shù),得到分類語料;
步驟七、構(gòu)建基于排序?qū)W習(xí)的隱式篇章關(guān)系分類器:將步驟六中的得到的語料輸入分類器中最終得到打分預(yù)判結(jié)果。
步驟八、識別完成:將所得到的結(jié)果進行輸出,輸出文件中包含篇章連接詞、論元以及篇章關(guān)系類別。
一種基于管道的中文篇章結(jié)構(gòu)分析系統(tǒng),包括:
預(yù)處理模塊:對于輸入的語料,進行包括中文分詞、中文詞性標(biāo)注以及句法分析,分別將處理結(jié)果存入三個中間文件,以供連接詞識別模塊、句內(nèi)關(guān)系處理模塊及句間關(guān)系處理模塊調(diào)用;
連接詞識別模塊:輸入來自于預(yù)處理模塊處理后的中文分詞文件、中文詞性標(biāo)注文件、句法分析文件,其中,中文詞性標(biāo)注及句法分析文件用于連接詞分類過程中特征的提取。該模塊將中文分詞文件中的單詞進行連接詞的識別,并將識別后的連接詞進行分類,將其分為句內(nèi)連接詞及句間連接詞,按照其類別分別輸出為兩個中間文件,并分別供句內(nèi)關(guān)系處理模塊和句間關(guān)系處理模塊調(diào)用;
句內(nèi)關(guān)系處理模塊:輸入來自于預(yù)處理模塊處理后的中文分詞文件及連接詞識別模塊處理后的句內(nèi)連接詞文件。該模塊內(nèi)部包括句內(nèi)顯式篇章分析模塊及句內(nèi)隱式篇章分析模塊,其中,句內(nèi)顯式篇章分析模塊用于句內(nèi)顯式論元提取及句內(nèi)顯式關(guān)系判別,其輸入與句內(nèi)關(guān)系處理模塊的輸入一致,輸出為句內(nèi)顯式篇章分析文件,文件中包含有句內(nèi)連接詞識別結(jié)果、句內(nèi)顯式論元判別結(jié)果、句內(nèi)顯式關(guān)系判別結(jié)果;句內(nèi)隱式篇章分析模塊用于句內(nèi)隱式論元提取及句內(nèi)隱式關(guān)系判別,其輸入除了句內(nèi)關(guān)系處理模塊的輸入以外,還包含了句內(nèi)顯式篇章分析文件,輸出為句內(nèi)隱式篇章分析文件,文件中包含有句內(nèi)隱式論元判別結(jié)果及句內(nèi)隱式關(guān)系判別結(jié)果。該模塊兩個輸出文件流向句間關(guān)系處理模塊及輸出模塊。
句間關(guān)系處理模塊:輸入來自于預(yù)處理模塊處理后的中文分詞文件、連接詞識別模塊處理后的句間連接詞文件、句內(nèi)關(guān)系處理模塊處理后的句內(nèi)顯式篇章分析文件及句內(nèi)隱式篇章分析文件。該模塊內(nèi)部包括句間顯式篇章分析模塊及句間隱式篇章分析模塊,其中,句間顯式篇章分析模塊用于句間顯式論元提取及句間顯式關(guān)系判別,其輸入與句間關(guān)系處理模塊的輸入一致,輸出為句間顯式篇章分析文件,文件中包含有句間連接詞識別結(jié)果、句間顯式論元判別結(jié)果、句間顯式關(guān)系判別結(jié)果;句間隱式篇章分析模塊用于句間隱式論元提取及句間隱式關(guān)系判別,其輸入除了句間關(guān)系處理模塊的輸入以外,還包含了句間顯式篇章分析文件,輸出為句間隱式篇章分析文件,文件中包含有句間隱式論元判別結(jié)果及句間隱式關(guān)系判別結(jié)果。該模塊的兩個輸出文件流向輸出模塊。
輸出模塊:輸入句內(nèi)關(guān)系處理模塊和句間關(guān)系處理模塊處理后的文件。最終輸出為一個文件,該文件中包含有對于輸入文檔的篇章結(jié)構(gòu)分析結(jié)果。
有益效果
對比現(xiàn)有技術(shù),本發(fā)明具有以下有益效果:
(1)以中文篇章結(jié)構(gòu)分析為出發(fā)點,本發(fā)明彌補了現(xiàn)有研究中完整的中文篇章結(jié)構(gòu)自動分析工具缺失的問題,并根據(jù)中文篇章結(jié)構(gòu)的特點進行了針對性設(shè)計,使系統(tǒng)能夠完成動態(tài)特征的建模;
(2)通過一體化顯式關(guān)系分析方法,緩解了傳統(tǒng)管道中存在的錯誤傳遞問題,全面提升了各項子模塊的性能;
(3)對于隱式篇章關(guān)系判別中存在的語料分布不平衡的現(xiàn)象,通過排序?qū)W習(xí)的思想對其進行有效的緩解,提升了關(guān)系判別精度。
附圖說明
圖1為本發(fā)明實施例提供的方法及系統(tǒng)架構(gòu)圖。
圖2為本發(fā)明實施例提供的基于管道的中文篇章結(jié)構(gòu)分析系統(tǒng)中句內(nèi)關(guān)系處理模塊和句間關(guān)系處理模塊的結(jié)構(gòu)示意圖。
具體實施方式
下面結(jié)合附圖和實施例,對本發(fā)明提供的一種基于管道的中文篇章結(jié)構(gòu)分析方法及裝置作進一步詳細說明。
本發(fā)明實施例提供的一種基于管道的中文篇章結(jié)構(gòu)分析方法架構(gòu)如圖1所示,具體實現(xiàn)過程如下:
根據(jù)步驟一,進行語料預(yù)處理,實現(xiàn)步驟如下:
(1)對于輸入文本,使用fudannlp進行中文分詞以及詞性標(biāo)注,所得結(jié)果分別保存在文件raw和文件pos作為后續(xù)使用;
(2)對于輸入文本,使用stanfordparser進行句法分析,分析后結(jié)果存入parser文件以供后續(xù)使用。
根據(jù)步驟二,進行篇章連接詞閉集的構(gòu)建,實現(xiàn)步驟如下:
(1)統(tǒng)計cdtb語料中所有出現(xiàn)過的篇章連接詞,以及每個連接詞出現(xiàn)的次數(shù),將結(jié)果存入連接詞詞表文件中;
(2)對于(1)中的每一個連接詞,剔除出現(xiàn)次數(shù)低于10次的篇章連接詞,最終形成一個僅包含141個篇章連接詞的連接詞閉集,結(jié)果存入篇章連接詞閉集文件中。
根據(jù)步驟三,進行詞的embedding表示,實現(xiàn)步驟如下:
(1)獲取訓(xùn)練語料,獲取新華社中文新聞?wù)Z料2.21gb,在每一句最后加入句子結(jié)尾標(biāo)記<end>,作為后續(xù)輸入;
(2)使用word2vec工具訓(xùn)練詞向量,選擇cbow模型,輸出維度為200,學(xué)習(xí)率設(shè)置為1e-3,窗口大小設(shè)置為5,訓(xùn)練之后得到詞向量文件。
根據(jù)步驟四,構(gòu)建一體化顯式篇章分析模型,實現(xiàn)步驟如下:
(1)首先設(shè)定標(biāo)注集合,在一體化顯式關(guān)系標(biāo)注中,需要同時對連接詞、論元以及篇章關(guān)系進行標(biāo)注,所以設(shè)定標(biāo)注分類為:
1)arg1:該詞為論元1的一部分。
2)arg2:該詞為論元2的一部分。
3)expansion:該詞為篇章連接詞,且該句為擴展關(guān)系。
4)temporal:該詞為篇章連接詞,且該句為時序關(guān)系。
5)comparison:該詞為篇章連接詞,且該句為轉(zhuǎn)折關(guān)系。
6)contingency:該詞為篇章連接詞,且該句為因果關(guān)系。
7)0:該詞既不為篇章連接詞,也不屬于任何論元的部分。
(2)提取上下文特征以用于分類器的訓(xùn)練及測試,所提特征為詞法特征和句法特征,具體的特征為:
(3)將上述步驟中獲得的數(shù)據(jù)輸入到crf++工具中,參數(shù)采用默認參數(shù)值,得到顯式關(guān)系分析結(jié)果,輸出至explicitrelation文件中。
根據(jù)步驟五,進行有用詞對的抽取,實現(xiàn)步驟如下:
(1)設(shè)置訓(xùn)練語料集合t的隱式篇章關(guān)系數(shù)為n,某個類別的數(shù)量用ni表示,其中i∈{1,2,3,4},分別為comparison,contingency,expansion和temporal,
(2)遍歷訓(xùn)練語料集合t,針對每一詞對t,分別統(tǒng)計出現(xiàn)在對應(yīng)類別的隱式篇章關(guān)系的頻數(shù)ti,i∈{1,2,3,4};
(3)計算對應(yīng)詞對的信息增益值,計算公式如下:
其中,ig(t)表示詞對t的信息增益值,h(n)表示類別n的熵,h(n|t)表示條件熵。針對每一詞對,均可計算出該詞對對于隱式篇章關(guān)系分類的貢獻程度,將所有詞對按照信息增益值大小排序,選取ig(t)值不小于1e-5的詞對構(gòu)成有用詞對集合t'。
根據(jù)步驟六,構(gòu)建排序語料打分機制,其實現(xiàn)步驟如下:
(1)首先使用傳統(tǒng)四分類的方法對各類關(guān)系進行偏差統(tǒng)計:提取語料中各論元的詞對特征,用步驟五中的有用詞對表進行有用詞對的篩選,并用步驟三中的詞向量表將詞對轉(zhuǎn)化為詞對向量,使用svm分類得到四分類結(jié)果;
(2)統(tǒng)計在cdtb語料中四類篇章關(guān)系的論元平均長度,將四類關(guān)系分別存入四個不同的文件中,分別遍歷得到結(jié)果以供后續(xù)使用;
(3)對于(1)中所得分類結(jié)果,按照其偏離程度分別設(shè)定偏離的基礎(chǔ)分,并采用(2)中的結(jié)果對偏離基礎(chǔ)分進行修正,以完成對訓(xùn)練樣本的構(gòu)造。
根據(jù)步驟七,進行基于排序?qū)W習(xí)的隱式篇章關(guān)系分類器的構(gòu)建,具體過程為:
(1)提取論元的相關(guān)特征,包括顯式篇章關(guān)系結(jié)果、論元長度特征、有用詞對數(shù)量特征、有用詞對特征及句法特征;
(2)使用上述步驟六中的打分機制對(1)中的語料進行打分,構(gòu)建訓(xùn)練語料;
(3)輸入至svmrank工具中進行訓(xùn)練,得到模型,并使用該模型對測試語料進行打分;
(4)選取打分高于0.8分的樣本為正樣本,低于0.8分的樣本為負樣本,得到分類結(jié)果,并輸出至implicitrelation文件中。
基于同一發(fā)明構(gòu)思,本發(fā)明實施例中還提供了一種基于管道的中文篇章結(jié)構(gòu)分析系統(tǒng),由于該裝置解決問題的原理與前述一種基于管道的中文篇章結(jié)構(gòu)分析方法相似,因此該裝置的實施可以參見方法的實施,重復(fù)之處不再贅述。
本發(fā)明實施例提供的一種基于管道的中文篇章結(jié)構(gòu)分析系統(tǒng),包括:
預(yù)處理模塊:對于輸入的語料,對其進行包括中文分詞、中文詞性標(biāo)注以及句法分析,分別將處理結(jié)果存入三個中間文件raw、pos、parser以供連接詞識別模塊、句內(nèi)關(guān)系處理模塊及句間關(guān)系處理模塊調(diào)用;
連接詞識別模塊:用于連接詞的識別及初分。該模塊的輸入來自于預(yù)處理模塊處理后的中文分詞文件raw、中文詞性標(biāo)注文件pos、句法分析文件parser,其中pos和parser文件用于連接詞分類過程中特征的提取。該模塊將中文分詞文件中的單詞進行連接詞的識別,并將識別后的連接詞進行分類,將其分為句內(nèi)連接詞及句間連接詞,按照其類別分別輸出為兩個中間文件ss和ps,并分別供句內(nèi)關(guān)系處理模塊和句間關(guān)系處理模塊調(diào)用;
句內(nèi)關(guān)系處理模塊:用于句內(nèi)篇章結(jié)構(gòu)分析。該模塊的輸入來自于預(yù)處理模塊處理后的中文分詞文件raw及連接詞識別模塊處理后的句內(nèi)連接詞文件ss。該模塊內(nèi)部包括句內(nèi)顯式篇章分析模塊及句內(nèi)隱式篇章分析模塊,其中句內(nèi)顯式篇章分析模塊用于句內(nèi)顯式論元提取及句內(nèi)顯式關(guān)系判別,其輸出為句內(nèi)顯式關(guān)系處理文件explicit_ss,文件中包含有句內(nèi)連接詞識別結(jié)果、句內(nèi)顯式論元判別結(jié)果、句內(nèi)顯式關(guān)系判別結(jié)果;句內(nèi)隱式篇章分析模塊用于句內(nèi)隱式論元提取及句內(nèi)隱式關(guān)系判別,其輸出為句內(nèi)隱式關(guān)系處理文件implicit_ss,文件中包含有句內(nèi)隱式論元判別結(jié)果及句內(nèi)隱式關(guān)系判別結(jié)果。
所述句內(nèi)關(guān)系處理模塊,如圖2所示,其句內(nèi)顯式篇章關(guān)系判別的結(jié)果作為輸入流向句內(nèi)隱式篇章分析模塊,同時地,句內(nèi)關(guān)系處理模塊中句內(nèi)顯式篇章關(guān)系判別結(jié)果以及句內(nèi)隱式篇章關(guān)系判別結(jié)果均作為輸入流向句間關(guān)系處理模塊。
進一步地,本發(fā)明實施例提供的基于管道的中文篇章結(jié)構(gòu)分析裝置,還包括句間關(guān)系處理模塊。
句間關(guān)系處理模塊:用于句間篇章結(jié)構(gòu)分析。該模塊的輸入來自于預(yù)處理模塊處理后的中文分詞文件raw、連接詞識別模塊處理后的句間連接詞文件ps、句內(nèi)關(guān)系處理模塊處理后的句內(nèi)顯式篇章分析文件explicit_ss及句內(nèi)隱式篇章分析文件implicit_ss。該模塊內(nèi)部包括句間顯式篇章分析模塊及句間隱式篇章分析模塊,其中句間顯式篇章分析模塊用于句間顯式論元提取及句間顯式關(guān)系判別,輸出為句間顯式篇章分析文件explicit_ps,文件中包含有句間連接詞識別結(jié)果、句間顯式論元判別結(jié)果、句間顯式關(guān)系判別結(jié)果;句間隱式篇章分析模塊用于句間隱式論元提取及句間隱式關(guān)系判別,輸出為句間隱式篇章分析文件implicit_ps,文件中包含有句間隱式論元判別結(jié)果及句間隱式關(guān)系判別結(jié)果。
所述句間關(guān)系處理模塊,如圖2所示,其句間顯式關(guān)系判別的結(jié)果作為輸入流向句間隱式篇章分析模塊。
進一步地,本發(fā)明實施例提供的基于管道的中文篇章結(jié)構(gòu)分析裝置,還包括輸出模塊。
輸出模塊:用于對已判別的關(guān)系進行輸出。該模塊的輸入來自于句內(nèi)關(guān)系處理模塊和句間關(guān)系處理模塊。最終輸出為一個文件output,該文件中包含有對于輸入文檔的篇章結(jié)構(gòu)分析結(jié)果。