語言技術平臺(LTP)釋出新功能:中文語義依存圖分析

哈工大SCIR發表於2016-11-22

1.引言

要讓機器能夠理解自然語言,需要對原始文字自底向上進行分詞、詞性標註、命名實體識別和句法分析,若想要機器更智慧,像人一樣理解和運用語言,還需要對句子進行更深一層的分析,即句子級語義分析。

語義依存分析是通往語義深層理解的一條蹊徑,它通過在句子結構中分析實詞間的語義關係(這種關係是一種事實上或邏輯上的關係,且只有當詞語進入到句子時才會存在)來回答句子中“Who did what to whom when and where”等問題。例如句子“張三昨天告訴李四一個祕密”,語義依存分析可以回答四個問題,即誰告訴了李四一個祕密,張三告訴誰一個祕密,張三什麼時候告訴李四一個祕密,張三告訴李四什麼。

語言技術平臺(LTP)釋出新功能:中文語義依存圖分析

圖1語義依存表示示例

圖1中表示語義的形式為依存形式,Agt表示施事、Cont表示內容等。其優勢在於形式簡潔,易於理解和運用。語義依存分析建立在依存理論基礎上,是對語義的深層分析。可分為兩個階段,首先是根據依存語法建立依存結構,即找出句子中的所有修飾詞與核心詞對,然後再對所有的修飾詞與核心詞對指定語義關係。可見,語義依存分析可以同時描述句子的結構和語義資訊。

語義分析可以跨越句子的表層結構直接獲取深層語義表達的本質,例如句子:“昨天,張三將一個祕密告訴李四。”,雖然它和圖1中的句子表述形式不同,但含義相同,具體見圖2。這種性質在資訊檢索、機器翻譯等諸多領域有重要作用。

語言技術平臺(LTP)釋出新功能:中文語義依存圖分析

圖2語義依存表示示例

同時,由於中文嚴重缺乏形態的變化,詞類與句法成分沒有嚴格的對應關係,導致中文句法分析的精度始終不高。目前英文在標準測試集上的句法分析準確率達到90%左右,而中文只能達到80%左右。既然中文是意合的,在形式分析上有劣勢,因此我們提出發揮中文意合的特點,跨越句法分析直接進行語義依存分析。


2.語義依存表示

2.1   語義依存樹


在對中文語義依存分析的探索中,我們首先嚐試了用樹結構融合依存結構和語義關係。圖1是一個語義依存樹的示例。

哈工大社會計算與資訊檢索研究中心與北京語言大學邵豔秋教授合作於2011年推出了BH-SDP-v1(BLCU and HITSDP)語義依存表示體系,並對中文賓州句法樹庫中的10,068個句子進行了標註。該標註語料經過整理後在SemEval-2012上組織了國際公開評測[1]。這是世界上最早的語義依存分析技術評測。2014年,其他學者才開始組織英文語義依存分析評測。

該語料庫存在如下幾個問題:有些語義關係彼此易混淆;語義關係數量太大,有些關係在標註語料中出現次數很少;句子全部來自新聞,涵蓋的語言現象有限;依存樹結構,刻畫語義不全面。


2.2   語義依存圖


對於語義依存樹表示體系存在的問題,我們採用的解決方案是用語義依存圖分析代替語義依存樹分析。形式上類似於依存語法,但必要時突破樹形結構(BH-SDP-v2)。這樣的突破使得對連動、兼語、概念轉位等漢語中常見的現象的分析更全面深入,當然這也給依存分析器的構建帶來了很大的難度,因為任何詞都可能有多個父節點。圖3直觀地展示了語義依存樹與依存圖的區別。

語言技術平臺(LTP)釋出新功能:中文語義依存圖分析

圖3 語義依存樹與語義依存圖對比示例

 

語義依存樹與語義依存圖的主要區別在於,在依存樹中,任何一個成分都不能依存於兩個或兩個以上的成分,而在依存圖中則允許句中成分依存於兩個或兩個以上的成分。且在依存圖中允許依存弧之間存在交叉,而依存樹中不允許。

BH-SDP-v2壓縮了語義關係型別的數量,重新組織並縮減了語義關係,將關係分為主要語義角色、事件關係、關係標記,從而減少不必要的類間關係混淆。語義關係在保留了一般語義關係、反關係基礎上,我們還定義了巢狀關係,用來標記一個事件降級充當了另一個事件的成分。

我們標註了語義依存圖語料庫,包含10068句新聞語料和15000句課文句子。新聞句子平均長度是31個詞,課本句子平均長度是14個詞。我們又基於該標註語料在SemEval-2016上組織了一次國際公開評測[2]。

3.基於轉移的語義依存圖分析

目前依存分析領域兩大主流方法分別是基於轉移(Transition-based)和基於圖(Graph-based)的依存分析。基於圖的演算法將依存分析轉換為在有向完全圖中求解最大生成樹的問題,是基於動態規劃的一種圖搜尋演算法。該演算法由McDonald等於2005年提出,是一種全域性最優的搜尋演算法。基於轉移的依存分析演算法將句子的解碼過程建模為一個轉移序列的構造過程。其依存分析模型的目標是通過學習得到一個能夠準確的預測下一步轉移動作的分類器。


3.1   基於轉移的依存圖分析框架


與語義依存樹不同,在依存圖中,每個詞的父節點個數是不確定的。這種不確定性使得用基於圖的方法解決該問題變得很困難,因此我們選擇了基於轉移的方法,通過修改現有轉移系統中的轉移動作來直接生成語義依存圖。

基於轉移的依存分析的轉移系統一般包括一個儲存正在處理中的詞的棧σ,一個儲存待處理詞的快取β,和一個記錄已經生成的依存弧的儲存器A。這三個部分的狀態合在一起稱為轉移狀態。分析演算法中還定義了若干轉移動作(如移進、規約等),通過執行轉移動作,系統可以從一個狀態轉移到另一個狀態,同時可能生成依存弧。我們的目標是訓練一個分類器,在每個轉移狀態下,根據從上述三部分中獲得的資訊,預測出下一步要執行的轉移動作。圖4給出了用Arc-standard演算法進行基於轉移的依存分析的整個流程。

語言技術平臺(LTP)釋出新功能:中文語義依存圖分析圖4 基於轉移的依存分析流程示意圖

為了處理依存圖結構,我們在Choi等人2013年提出的List-based演算法[3的基礎上修改了幾個轉移動作的執行條件,使得修改後的演算法能夠直接生成語義依存圖。原List-based演算法[3]在前文介紹的轉移系統基礎上,還多了一個棧δ用於儲存暫時跳過的詞,該結構是為了處理非投射樹(即存在交叉弧的樹)。在原演算法中,一個詞的父節點一旦被找到,立即將該詞規約,這種規則保證了最終生成的一定是一棵依存樹。在我們修改的演算法中,一個詞的父節點找到後,並不一定立即規約該詞,而可能將其放入棧δ中,這就為將來找到該詞的其它父節點提供了可能。而依存圖結構的最主要特徵就是存在有多個父節點的詞,因此修改後的演算法能夠直接生成依存圖結構。

3.2   基於Stack LSTM的分類器


解決了轉移系統的問題,接下來就需要選擇一個合適的分類器在每個轉移狀態下預測出下一步要執行的轉移動作。我們選擇了Dyer等人在2015年提出的Stack-LSTM[4]來學習轉移系統中的棧σ、棧δ、快取β和歷史轉移動作序列A中的資訊。

傳統LSTM對一個從左到右的序列進行建模,此前已經在此基礎上發展出了雙向LSTM和多維LSTM等模型。Stack LSTM向LSTM中加入一個棧指標。與傳統LSTM類似,新的輸入總是加入最右的位置,但計算新的記憶部分時,棧指標決定由LSTM的哪一層提供ct-1和ht-1。除了向序列尾新增新元素外,Stack LSTM還提供彈棧動作,將棧指標指向前一個元素。因此,該LSTM可以看作是一個棧,其中壓棧操作把新元素放到列表最後,儲存一個指向當前棧頂的指標,然後將棧指標指向新元素。彈棧操作只更新棧指標。棧指標指向的層的輸出就是棧中所有內容在連續空間中的向量表示。

語言技術平臺(LTP)釋出新功能:中文語義依存圖分析

圖5 Stack LSTM示意圖

 

圖5是Stack LSTM中彈棧和壓棧的狀態改變示意圖,其中最下面的方塊表示棧中內容,或者說是每個時間節點的輸入,中間的方塊表示記憶體和控制門,最上面的方塊表示每個時間節點的輸出,在實際應用中,只用TOP指標指示的輸出表示棧中所有內容。圖中顯示了3個連續的Stack LSTM狀態,其中左邊的狀態中棧中只有一個元素,經過一個彈棧動作,到達中間的狀態,再經過一個壓棧操作到達右邊狀態。研究證明,這種結構的LSTM能夠學習棧中任意位置的資訊。我們分別使用4個Stack LSTM學習棧 σ、棧δ、快取β和歷史轉移動作序列的向量表示,通過一個隱層將它們組合起來作為當前轉移狀態的向量表示。該向量表示通過一個softmax層得到當前狀態下轉移動作的概率分佈。為了更清楚地介紹用StackLSTM學習轉移狀態的表示的神經網路結構,在圖6中我們給出該模型的結構示意圖。

語言技術平臺(LTP)釋出新功能:中文語義依存圖分析

圖6 基於Stack LSTM的依存圖分析器模型結構圖

圖6中分別用σ、δ、β和A表示棧σ、棧δ、快取β和歷史轉移動作序列A對應的Stack LSTM。它們輸出的向量線性組合後通過一個ReLU啟用函式產生表示轉移狀態的向量et。分類器用該轉移狀態向量和表示轉移動作的向量計算出當前狀態下每種可執行的轉移動作的概率。

最終,我們的List-LSTM語義依存圖分析器在SemEval-2016任務9上進行了測試,得到的所有評測指標都超過了其他參賽系統。在新聞測試集上LF為61.57%,UF為79.75%,在小學課本測試集上LF為71.73%,UF為84.87%。

4.語言技術平臺中的語義依存分析

語言技術平臺,簡稱LTP(LanguageTechnology Platform, LTP),是我實驗室歷時十餘年研發的一整套自然語言處理基礎平臺。該平臺集詞法分析(分詞、詞性標註、命名實體識別)、句法分析(依存句法分析)和語義分析(語義角色標註)等多項自然語言處理子系統於一體,有效解決了自然語言處理技術入行門檻高,準確率、效率偏低,缺少共享資料和程式資源,重複開發現象嚴重,結果視覺化差,錯誤分析困難,較難真正支援各類應用研究等眾多問題。

我們已將最新的語義依存圖分析功能加入到LTP中,見線上演示系統(http://www.ltp-cloud.com/demo/)。在圖7的例子中,藍色部分為句法依存分析結果,綠色部分為原語義依存樹分析結果,紫色部分為新增的語義依存圖分析結果。可以注意到,在原來的語義依存樹中,受限於樹結構,只能刻畫出“有”與“兒子”之間的屬事(Belg)關係。而在語義依存圖中,除了該關係之外,還刻畫出了“兒子”與“上”之間的施事(Agt)關係。語義依存圖對語義關係更完整的覆蓋,為獲取句中實詞之間的語義關係提供了更方便的工具。例如在“他有個兒子才上小學。”這句話中,如果要回答“誰在上小學”這個問題,語義依存圖能夠直接提供答案,而語義依存樹則不能。

另外,新的語義依存圖分析功能也能通過語言云服務的API直接呼叫,具體操作方法可以參照http://www.ltp-cloud.com/document/。

語言技術平臺(LTP)釋出新功能:中文語義依存圖分析

圖7 LTP語義依存圖分析示例

5.結語

本文介紹了中文語義依存圖分析,這一新的語義表示方式。與句法依存分析相比,語義依存分析能表達更深刻的語義資訊,對於中文這種意合的語言尤為適合;與語義依存樹分析相比,語義依存圖能更全面、靈活的表示句子中的語義關係。與此同時,直接分析成圖結構,也給分析器帶來了不小的挑戰。我們提出一步到位的語義依存圖分析框架,使用Stack LSTM作為其中的分類器,取得了目前最好的中文語義依存圖分析效能。我們已將語義依存圖分析功能加入語言技術平臺(LTP),歡迎大家試用。

作者: 哈工大SCIR博士生 王宇軒

6.參考文獻

[1] Che W, Zhang M, Shao Y, et al. Semeval-2012 task 5: Chinesesemantic dependency parsing[C] Proceedings of the 1st Joint Conference onLexical and Computational Semantics-Volume 1: Proceedings of the mainconference and the shared task, and Volume 2: Proceedings of the SixthInternational Workshop on Semantic Evaluation. Association for ComputationalLinguistics, 2012: 378-384.[2]Che W, Shao Y, Liu T, et al. SemEval-2016 task 9: ChineseSemantic Dependency Parsing[C] Proceedings of the 10th international workshopon semantic evaluation (SemEval 2016), San Diego, US (forthcoming). 2016.

[3] ChoiJ D, McCallum A. Transition-based Dependency Parsing with Selectional Branching[C]. Proceedings ofthe 51th Annual Meeting of the Association for Computational Linguistics. 2013:1052-1062.[4]Dyer C, Ballesteros M, Ling W, et al. Transition-based dependency parsing with stack longshort-term memory[C]. Proceedings of Annual Meeting on Association for ComputationalLinguistics. 2015: 334–343.       



本文來源於哈工大SCIR

原文連結點選即可跳轉

語言技術平臺(LTP)釋出新功能:中文語義依存圖分析


相關文章