【CS224n】Neural-Dependency-Parsing

CS224n系列:
【CS224n】Neural Networks, Backpropagation
【CS224n】Neural-Dependency-Parsing
【CS224n】Language Models, RNN, GRU and LSTM
【CS224n】Neural Machine Translation with Seq2Seq
【CS224n】ConvNets for NLP

1.1 Dependency Parsing

依存句法分析就是表示句子中詞與詞之間的關係,如下圖所示:
在這裏插入圖片描述
有向弧表示兩個詞有依存關係,箭頭表示父節點指向子節點,弧上的標籤表示具體的依存關係。
除了根節點(此處爲submitted),其他詞都有詞作爲它的父節點,根節點的父節點爲ROOT。
依存句法樹的數據表示如下圖:
在這裏插入圖片描述

1.2 Transition-Based Dependency Parsing

基於轉移的依存句法解析器
包括兩個部分:狀態和動作,狀態用來記錄中間變化過程,動作用來控制狀態的變化(轉移)。
定義以下三個狀態:
在這裏插入圖片描述
狀態之間的轉移包括以下三個類型:
在這裏插入圖片描述
在這裏插入圖片描述
轉移過程可以參照下圖進行理解:
在這裏插入圖片描述
在這裏插入圖片描述

堆從空狀態開始,通過動作轉移到下一個狀態,直到堆和緩衝區都沒有元素結束,一步步生成依存句法樹。
從網上找了一張圖可以清楚地瞭解整個轉移過程(圖片來源:詳解Transition-based Dependency parser基於轉移的依存句法解析器):
在這裏插入圖片描述
通過以上分析,我們可以看到,整個生成依存句法樹的任務變成了一個預測動作的過程,這個動作包括下一步的轉移以及轉移過程中涉及到的兩個詞之間的依存關係。
因此,我們可以很直接地想到用神經網絡來預測下一步動作:
在這裏插入圖片描述

參考:https://blog.csdn.net/Despacit0/article/details/92835286

1.3 作業

1.3.1 Machine Learning & Neural Networks

(a)給定以下依存句法樹,寫出狀態轉移過程。
在這裏插入圖片描述

Stack Buffer New dependency Transition
[ROOT] [I,parsed,this,sentence,correctly] Initial Configuration
[ROOT,I] [parsed,this,sentence,correctly] SHIFT
[ROOT,I,parsed] [this,sentence,correctly] SHIFT
[ROOT,parsed] [this,sentence,correctly] parsed\rightarrowI LEFT-ARC
[ROOT,parsed,this] [sentence,correctly] SHIFT
[ROOT,parsed,this,sentence] [correctly] SHIFT
[ROOT,parsed,sentence] [correctly] sentence\rightarrowthis LEFT-ARC
[ROOT,parsed] [correctly] parsed\rightarrowsentence RIGHT-ARC
[ROOT,parsed,correctly] SHIFT
[ROOT,parsed] parsed \rightarrow correctly RIGHT-ARC
[ROOT] ROOT\rightarrowparsed RIGHT-ARC

(b)一個長度爲n的句子,需要多少步進行解析?
答:2*n+1。理由:需要進行n次移位(SHIFT)+n次左規約/右規約(LEFT-ARC/RIGHT-ARC)+1次初始化。

1.3.2 Coding

代碼: https://github.com/sfeng-m/Neural-Dependency-Parsing

結果:訓練10個epoch,在小數據集上(small subset of the data),Loss=0.0928(要求<0.2); dev UAC(Unlabeled Attachment Score)=71.26(要求>65).
訓練10個epoch,在全量數據集上,Loss=0.0282(要求<0.08); dev UAC=89.15(要求>87).

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章