依存句法分析 Dependency Parsing


任務介紹

句子的依存結構表達了詞與詞之間的依賴關系,這種關系稱依存關系。它是一種二元的非對稱關系(binary asymmetric relation),從依存關系的支配者head指向從屬者dependent。

依存句法分析旨在將輸入的句子轉化成依存分析樹(或圖),依存樹中自上而下任意父子結點之間用依存關系連接。在自然語言處理中,依存句法分析屬於句法層次的任務,它一般需要詞法層次的詞性標注(POS)的結果作為輔助信息。

有趣的是,詞性標注這個任務又需要分詞結果作為輔助信息,可通過分詞和詞性標注聯合任務來規避分詞帶來錯誤傳播,當然這是題外話。

以LTP為例,依存句法分析中的依存關系包括:

關系類型 標簽 描述 樣例
主謂關系 SBV subject-verb 我送她一束花 (我 <-- 送)
動賓關系 VOB 直接賓語,verb-object 我送她一束花 (送 --> 花)
間賓關系 IOB 間接賓語,indirect-object 我送她一束花 (送 --> 她)
前置賓語 FOB 前置賓語,fronting-object 他什么書都讀 (書 <-- 讀)
兼語 DBL double 他請我吃飯 (請 --> 我)
定中關系 ATT attribute 紅蘋果 (紅 <-- 蘋果)
狀中結構 ADV adverbial 非常美麗 (非常 <-- 美麗)
動補結構 CMP complement 做完了作業 (做 --> 完)
並列關系 COO coordinate 大山和大海 (大山 --> 大海)
介賓關系 POB preposition-object 在貿易區內 (在 --> 內)
左附加關系 LAD left adjunct 大山和大海 (和 <-- 大海)
右附加關系 RAD right adjunct 孩子們 (孩子 --> 們)
獨立結構 IS independent structure 兩個單句在結構上彼此獨立
標點 WP punctuation
核心關系 HED head 指整個句子的核心

實際上,也不必嚴格遵守這個表格,最終還是得按照語料的來,畢竟tag都是標注規范說了算。

以“他叫湯姆去拿外衣。”為例,得到如下的依存句法分析結果:

一般句子的核心都是謂詞。

依存句法分析可以幫助理解文本語義,並且具有可解釋性。

基於貪心的確定性轉移的依存句法分析[1]

將依存句法分析的分析過程看成狀態機的狀態轉移過程。給定一個初始狀態(init state)和一個終止狀態(terminate state),狀態機從初始狀態出發,在每個時刻都貪心地選擇一個轉移方式,從而實現狀態的轉移。到達終止狀態后,可根據整個過程中的轉移序列可以還原出依存分析樹。

用三元組(\(\sigma\), \(\beta\), A)表示狀態,其中\(\sigma\)是一個棧(ROOT位於棧底),\(\beta\)是緩存(buffer),A表示解析的結果。對於句子\(s=(w_1, w_2, ..., w_n)\),起始狀態為([ROOT], [\(w_0\) \(w_1\) \(w_2\) ... \(w_n\)], \(\emptyset\)),終止狀態為([ROOT], [], A)

每個時刻的轉移方式有三種,shift、left_arc和right_arc。

  • shift:將buffer中的一個詞添加到棧頂;即 \(\sigma\), \(w_i\)|\(\beta\), A \(\rightarrow\) \(\sigma\)|\(w_i\), \(\beta\), A
  • Left-Arc(l):棧[ROOT w1 w2 ...]生成一個方向向左、依存關系標簽為l的弧邊(\(w_1 \leftarrow w_2\))加入到A中,然后將\(w_1\)移出棧;
  • Right-Arc(l):棧[ROOT w1 w2 ...]生成一個方向向右、依存關系標簽為l的弧邊(\(w_1 \rightarrow w_2\))加入到A中,然后將\(w_2\)移出棧;

以“He has good control.”為例,整個轉移過程為:

最終可根據A得到如下解析樹:

於是每個時刻如何選擇轉移方式成為方法的關鍵。考慮到狀態機在每個時刻的轉移方式有\(2*N_l+1\)[2],其中\(N_l\)是依存關系的數量。而狀態機在每個時刻都只貪心地做出選擇,所以簡單構建一個分類器即可實現整個系統。當然,在解碼過程中也可以換成beam search。

A Fast and Accurate Dependency Parser using Neural Networks中使用的是DNN模型,從stack和buffer中抽取出一些詞,然后將這些詞的詞嵌入、POS標簽嵌入、依存關系標簽嵌入作為輸入,輸出則是預測狀態轉移的方式。考慮到2014年的模型拿到現在肯定不中用,無論是網絡結構還是優化器,都過時了,所以這里不打算介紹了。

度量

度量包括兩種,UAS(unlabeled attachment scores)和LAS(labeled attachment scores),其中LAS可參考CoNLL 2017 Shared Task: Multilingual Parsing from Raw Text to Universal Dependencies.

后記

相比於傳統的語義理解,如今大數據+大算力直接訓練端到端的模型成為主流,語義依存分析漸漸變得不再那么重要了。


  1. A Fast and Accurate Dependency Parser using Neural Networks. Danqi Chen, Christopher D. Manning. EMNLP 2014. ↩︎

  2. left-arc和right-arc各有\(N_l\)個轉移方式,再加shift就是\(2*N_l+1\)了。 ↩︎


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM