依存句法分析,對於下游的很多任務(如分詞、詞性標註、命名實體識別、組塊分析等)非常重要。傳統的句法分析,主要包括兩種方法:基於圖模型的依存句法分析(Graph-based)和基於轉移的依存句法分析(Transition-based)。
基於深度學習的圖模型依存句法分析:
基於深度學習的轉移模型依存句法分析:
Transition-based dependency簡介:
一個句法分析的轉移系統(transition system) 爲一個四元組,其中:
1、C 是一個狀態(configuration)集合,其中的元素包含一個堆棧(包含了未處理和正在處理的節點),一個緩存(buffer)(其包含了餘下的節點),和一個依存弧的集合A;
2、T 是一個轉移動作(transition)集合,每個元素是一個函數;
3、是一個初始化函數,將句子 映射到一個狀態
4、是一個終結狀態集合。
轉移動作(也即基於棧的轉移模型),主要包括arc-standard 算法和arc-eager算法兩種,我們常見的是前者。Arc-standard 算法包含三個分析動作,分別爲左弧(左歸約,left-arc),右弧(右歸約,right-arc)和移進(shift)。其中左弧和右弧又可以與不同的依存關係進行組合成爲多種動作,移進僅有一種。在這裏,我們用表示棧頂爲i 的棧,表示隊首爲j 的緩存隊列。
實際使用中,我們一般會使用下列形式:
以下爲基於轉移模型的依存句法分析的例子:
基於前饋神經網絡的Transition-based dependency模型:
一、模型結構
基於轉移的分析過程的格局C可以用一個三元組(S,I,A)來表示,S 是堆棧,I 是未處理的結點序列,A 是依存弧集合。用於分析動作決策的特徵向量即取自這樣的三元組。基於前饋神經網絡的模型利用一個神經網絡對分析過程中的C提取特徵,並訓練動作分類器。具體地,模型由輸入層、嵌入層、隱含層和softmax 層組成:
1、輸入層。輸入層的作用是從分析狀態(S;I;A) 中抽取元特徵(atomic feature),這些元特徵包括詞特徵、詞性特徵和依存弧特徵。
2、嵌入層(embedding layer)。嵌入層由三個獨立的子嵌入層組成,分別爲詞嵌入層、詞性嵌入層和依存弧嵌入層,對應輸入中的詞特徵、詞性特徵和依存弧特徵。這些嵌入層的作用是將輸入層抽取的離散稀疏特徵轉換成稠密特徵。
3、隱含層。隱含層從嵌入層獲得三種稠密特徵輸入,並對其做非線性變換。
4、softmax 層。與其他softmax 層的作用相同,該層用於預測多分類的結果。
二、元特徵(atomic feature)
以前的基於特徵工程的依存句法分析器過於依賴於專家定義的特徵集合,因此研究人員爲基於轉移的依存句法分析方法定義了一組特徵模板(見下表),這組特徵顯著提高了依存句法分析器的性能。這些特徵被分成了三類:詞特徵(),詞性特徵()和弧特徵()。各個特徵所代表的含義爲:
1、表示棧S中的第i個詞;
2、表示輸入緩衝I中的第j個詞;
3、表示取詞的第i個左兒子;
4、表示取詞的第i個右兒子。
在上表中,即爲棧S中的第0個詞,即棧頂的單詞;爲輸入緩衝I中第二個詞;即爲棧頂詞的第一個左兒子;即爲棧頂詞的第二個左兒子。可以注意到:元特徵模板中並不包含輸入緩存中的詞的兒子信息,因爲輸入緩存中的詞尚未被分析,其沒有兒子節點。:
將以上位置信息分別與w (word embedding),p (pos) 或l (link)組合,即可得到不同位置上的詞特徵、詞性特徵或依存弧特徵。例如,爲棧頂單詞的詞特徵;爲輸入緩衝I中第二個詞的詞性特徵;表示最右兒子的詞特徵;表示最左兒子的詞性特徵。