句法分析的應用場景很多,比如搜索引擎的用戶日誌分析、關鍵詞識別,比如信息抽取、自動問答、機器翻譯等與自然語言處理相關的任務。
句法分析需要遵循壹定的語法體系,語法樹的表達形式是根據這個體系的語法來確定的。我們來看下面這個句子:
使用可視化工具Stanford Parser查看句法分析的全過程:
短語結構樹由終結節點、非終結節點和短語標簽組成。分句的語法規則形成壹個短語為幾個端點,作為非端點參與下壹個規範,直到結束。如下圖所示:
依存句法分析通過分析語言單位中成分之間的依存關系來揭示其句法結構。
直觀地說,依存句法的目的是分析和識別句子中的“主謂賓”、“定補”等語法成分,分析成分之間的關系。
依存句法的結構中沒有非終結點,詞與詞之間有直接的依存關系,形成依存對,其中壹個是核心詞,也叫支配詞,另壹個叫修飾語,也叫從屬詞。
依賴關系用有向弧來表示,稱為依賴弧。依存弧的方向是從從屬詞到主導詞,但反過來也是可以的,可以根據個人習慣統壹表示。
比如下面這句話:
依存句法分析結果如下(使用哈工大LTP):
從分析結果可以看出,該句的核心謂語是"提議",主語是"李克強",賓語是"支持上海……","調查……"是"提議"的狀語,"李克強"的修飾語是"國務院總理","支持"的賓語是"探索新機制"。
有了上面依存句法分析的結果,我們不難看出,提出者是李克強,而不是上海或外高橋,盡管它們都是名詞,離提出者更近。
依存句法通過分析壹個語言單位中成分之前的依存關系來解釋其句法結構,主張句子中的核心動詞是支配其他成分的中心成分。但是,它不受任何其他組件的支配,所有被支配的組件都以某種方式從屬於支配者。
20世紀70年代,Robinson在依存句法中提出了關於依存的四個公理。在中文信息處理的研究中,中國學者提出了關於依存性的第五個公理,如下:
漢語詞匯(合成語)、短語、簡單句、段落、篇章中普遍存在句子成分之間互為支配和支配、依存和依賴的現象,可以獨立使用和表達。這壹特點反映了依賴性的普遍性。依存句法分析可以反映句子成分之間的語義修飾關系,它可以獲得長距離的搭配信息,而不考慮句子成分的物理位置。
依賴分析註釋關系(***14)及其含義如下表所示:
語義依存句法分析(SDP)是分析壹個句子的語言單位之間的語義關聯,並將語義關聯呈現在依存結構中。用語義依賴來描述句子語義的好處是,不需要抽象詞匯本身,而是通過它所承載的語義框架來描述詞匯,論元的數量總是比詞匯少得多。
語義依存分析的目標是跨越句子表層句法結構的約束,直接獲得深層語義信息。比如下面三句話,用不同的方式表達了同壹個語義信息,就是張三進行了壹個吃的動作,吃的動作是在蘋果上進行的。
語義依存分析不受句法結構的影響,語義直接相關的語言單位直接用依存弧連接,並標註相應的語義關系。這也是語義依存分析和依存句法分析的壹個重要區別。
語義依存分為三類,主要是語義角色,每個語義角色都有嵌套關系和反關系;事件關系,描述兩個事件之間的關系;語義附著標記,標記說話人的語氣等依存信息。
最後,我們通過Pyhanlp庫實現了依存句法的實際練習。在這個過程中,我們選擇依賴查看器工具進行可視化顯示。可視化時,txt文檔需要用UTF-8編碼。
先介紹包,然後可以直接分析:
獲得的結果:
然後,我們將結果保存在壹個txt文件中:
最後,通過依賴查看器工具將其可視化。如果有亂碼,記得將txt文檔保存為UTF-8,得到的可視化結果如下圖所示:
本文首先介紹語法體系以及如何根據語法體系確定壹個句子的語法樹,為後面的句法分析奠定基礎。
然後介紹依存句法,其目的是通過分析壹個語言單位中成分之間的依存關系來揭示其句法結構,然後解釋依存句法中的五種依存關系。
最後,進壹步介紹了不同於依存句法的語義依存。它的目的是分析句子語言單位之間的語義關聯,並以依存結構的形式呈現語義關聯。
文末,我們將通過Pyhanlp實戰和可視化,進壹步加深對漢語依存句法的理解。
參考資料和推薦讀物: