白話NLP 依存句法分析

2021-10-01 03:06:03 字數 2260 閱讀 6321

在依存句法分析中,句子中詞與詞之間存在一種二元不等價關係主從關係。在句子中,如果乙個詞修飾另乙個詞,則稱修飾詞為從屬詞(dependent),被修飾詞成為支配詞(head),兩者之間的語法關係就是依存關係(dependency relation)

如句子「小目標」中的形容詞「小」與名次「夢想」之間的關係如下圖所示:

在圖中,箭頭的方向由支配詞指向從屬詞。將句子中所有的詞語的依存關係以有向邊的形式表示出來,就會得到一顆樹,該樹即是依存句法樹(dependency parse tree)

現代依存語法中,語言學家robinson對依存句法樹提出了一下4條約束性公理:

有且只有乙個詞語(root,虛擬根節點,簡稱虛根)不依存於其他詞語;

除此之外所有詞語必須依存於其他詞語;

每個詞語不能依存於多個詞語;

如果詞語a依存於b,那麼位置處於a和b之間的詞語c只能依存於a、b或ab之間的詞語;

這四條公理分別約束了依存句法樹的根節點的唯一性連通無環投射性

依存句法分析是一種中高階nlp任務,用來分析句子的依存語法。通常根據句子的詞語詞性,生成一顆依存句法樹

目前常用的依存句法分析方法是:基於轉移的依存句法分析。基於轉移的依存句法分析屬於監督學習的範疇,其涉及許多元件。我們先定義一台虛擬的機器,這台機器會根據自身的狀態和輸入的詞語**下一步要執行的轉移動作,然後根據轉移動作拼裝句法樹。該類演算法中比較經典的是:arc-eager

乙個轉移系統(transition system)s由4個部件構成:s=(

c,t,

cs,c

t)s = (c,t,c_,c_)

s=(c,t

,cs​

,ct​

)其中:

系統狀態由3元組組成:c = (s, b, a),其中:

arc-eager轉移系統的轉移動作集合和響應的執行條件如下表所示:

動作名稱

動作條件

備註shift

(s, i|b,a) => (s|i, b, a)

佇列b非空

將隊首單詞i壓棧

leftarc

(s|i, j|b, a) => (b, j|b, au)

棧頂單詞i沒有支配詞

將棧頂單詞i的支配詞設定為隊首單詞j,即i作為j的子節點;

rightarc

(s|i, j|b, a) => (s|i|j, b, au )

隊首單詞就沒有支配詞

將隊首單詞j的支配詞設定為棧頂單詞i,集j作為i的子節點;

reduce

(s|i, b, a) => (s, b, a)

棧頂單詞i已有支配詞

將棧頂單詞i出棧;

備註:轉移系統的終止狀態為:棧為空,且佇列僅剩下虛根(root)時的狀態。

以「我愛自然語言處理」為例,使用arc-eager轉移系統進行依存分析時系統狀態如下:

編號轉移動作sb

a0init

[我,愛,自然語言處理,root]{}1

shift

[我][愛,自然語言處理,root]{}2

leftarc(主謂)

[愛,自然語言處理,root]

3shift

[愛][自然語言處理,root]

4rightarc(動賓)

[愛,自然語言處理]

[root]

5reduce

[愛][root]

6leftarc(核心)

常用的依存句法分析工具如下:

hanlp;

ltp;

句法分析 依存句法分析

句法分析是自然語言處理中的關鍵技術之一,其基本任務是確定句子的句法結構或者句子中詞彙之間的依存關係。主要包括兩方面的內容,一是確定語言的語法體系,即對語言中合法的句子的語法結構給與形式化的定義 另一方面是句法分析技術,即根據給定的語法體系,自動推導出句子的句法結構,分析句子所包含的句法單位和這些句法...

依存句法分析 Dependency Parsing

句子的依存結構表達了詞與詞之間的依賴關係,這種關係稱依存關係。它是一種二元的非對稱關係 binary asymmetric relation 從依存關係的支配者head指向從屬者dependent。依存句法分析旨在將輸入的句子轉化成依存分析樹 或圖 依存樹中自上而下任意父子結點之間用依存關係連線。在...

百度NLP依存句法分析工具DDParser開源啦

圖1ddparser能做什麼 通過依存句法分析可直接獲取輸入文字中的關聯詞對 長距離依賴詞對等,其對事件抽取 情感分析 問答等任務均有幫助。在事件抽取任務中,我們通過依存分析結果可提取句子中所包含的各種粒度的事件,如 納達爾擊敗梅德韋傑夫 納達爾奪得冠軍 納達爾奪得2019年美網男單冠軍 相應的,在...