句法分析 (syntactic parsing) 在 NLP 領域的應用是怎樣的? | 知乎問答精選

 

A-A+

句法分析 (syntactic parsing) 在 NLP 領域的應用是怎樣的?

2018年09月07日 知乎問答精選 暫無評論 閱讀 8 ℃ 次

【金凱的回答(27票)】:

謝邀。這裡面有兩個問題:1. 在opinion extraction/IR中如何使用句法分析;2. 句法分析在多大程度上對這兩個任務有幫助(原題)。

由於我自己主要還是做句法分析本身,暫時很少做上層應用,所以簡單談談我對應用的理解,拋磚引玉。

1. 在opinion extraction/IR中如何使用句法分析。

舉幾個例子吧。

比如在opinion extraction中我們常常要抽取評價對像(aspect):

例:「知乎的內容質量很好」

這裡 「很好」 形容的是 「內容質量」。通過依存句法分析,就可以抽取出對應的搭配。如下圖:

(順手插個廣告,分析結果來自我們實驗室的語言云:(順手插個廣告,分析結果來自我們實驗室的語言云:在線演示 | 語言雲(語言技術平台雲 LTP-Cloud))

再說說IR,以百度框計算為例。對於以下兩個query:

Query 1: 謝霆鋒的兒子是誰?

Query 2: 謝霆鋒是誰的兒子?

這兩個Query的bag-of-words完全一致,如果不考慮其語法結構,很難直接給用戶返回正確的結果。類似的例子還有很多。在這種情況下,通過句法分析,我們就能夠知道用戶詢問的真正對象是什麼。

推而廣之,對Query進行更general的需求分析大都離不開描述對象的提取,很多時候句法結構非常關鍵,更是下一步語義分析的前提。

2. 句法分析在多大程度上對這兩個任務有幫助(原題)。

原問題很好,可以擴展出很多思考。在煉丹紀到來之前,也許我們可以給一個非常樂觀的回答,比如60%。但是現如今,我們需要思慮再三。主要原因在於,RNN/LSTM等強大的時序模型(sequential modeling)能夠在一定程度上刻畫句子的隱含語法結構。儘管我們暫時無法提供一個清晰的解釋,但是它在很多任務上的確表現出非常promising的性能。

推薦一下車萬翔老師前段時間寫的一個簡單的survey:哈工大車萬翔:自然語言處理中的深度學習模型是否依賴於樹結構?

文中的一個性能對比能夠說明問題:Tree-LSTM是基於句法結構之上的LSTM,Bi-LSTM則是簡單的雙向(left<->right)LSTM。在很多任務上,Bi-LSTM都表現得比Tree-LSTM更好。

但是,這並不說明句法結構是沒有用的,詳細分析請參考上面提到的survey。

需要提及的是,句法分析目前的性能是妨礙其實際應用的一個關鍵因素,尤其是在open-domain上。目前在英文WSJ上的parsing性能最高能夠做到94%,但是一旦跨領域,性能甚至跌到80%以下,是達不到實際應用標準的。而中文上parsing性能則更低。

【pengsun的回答(2票)】:

我本人是做文本情感分析的,經常用到句法依存分析,算是對這些有些瞭解,暫且發表一下個人的觀點,不對之處希望指出,大家共同學習,共同進步。

1.句法依存的介紹

依存分析主要是為了分析句子中各成分之間的相互關係。大致目標:識別句法成分(主謂賓等)、確定句法關係(SBV、VOB、ATT、ADV等)。

依存分析的實現主要包括基於圖的方法和基於狀態轉移的方法。基於圖的方法利用全句的依存關係訓練,使用最大生成樹算法解析,具有全局性,但他有個致命缺點--不到搜索結束,不會產生中間解析結果,因此無法把中間結果用於後續解析。基於狀態轉移的方法利用每一步的轉移訓練,逐步搜索局部最優解析直至解析完畢,這種方法有點貪心算法的意思(個人感覺)和局部性,這個算法的好處是可以利用中間結果對後續進行解析。這兩種方法可以說是對立又互補的關係,也有不少人把他們融合,據說產生了比任何一個單獨方法都要好的效果。

2.句法依存的意義

2.1 文本理解

「謝霆鋒的兒子是誰?」和「謝霆鋒是誰的兒子?」這倆問題完全不一樣,但是如果用傳統的搜索肯定導致搜索結果幾乎一致(因為基本就是關鍵字匹配),但是如果加入句法依存分析的話結果就會完全不一樣。

2.2語義消歧(這個用處就很多了,最常見的可以用與query改寫)

比如「去醫院看癌症病人」,「看」在這裡可以是「治療」的意思也可以是「看望」的意思,所以容易歧義。如果你引入句法依存完全就會確定為「看望」了,因為看的賓語是「病人」。

2.3主幹抽取

「給我推薦一家能夠聽到古典音樂的餐廳」這句通過句法分析就可以輕而易舉獲取主幹。

2.4摘要抽取

具體類似,不再多說。

2.5情感分析

一般因為領域問題(我家音響聲音很大VS我家洗衣機聲音很大)和反諷問題(你牛逼你上啊),目前情感分析大多基於規則而不是基於統計,基於規則的一般用句法分析確定和驗證一些情感詞、主觀詞的句法結構,然後判定句子的情感傾向、抽取情感tag等。

2.6機器翻譯

最簡單的一種方法:通過句法分析把句子結構確定下來,然後逐個詞翻譯,再根據句法結構整理和修改翻譯結果。

2.7唯一答案搜索(問答系統)

比如用戶搜「陳道明身高」、「陳道明年齡」,如果加入句法依存分析就會直接給出搜索結果。

類似的應用還有,不再一一列舉。除此之外句法依存分析還是語義角色標注的基礎。類似的應用還有,不再一一列舉。除此之外句法依存分析還是語義角色標注的基礎。

3.什麼時候需要句法依存分析

a.對於複雜問題但訓練數據比較少

b.語義依賴的距離比較遠(那幫傻乎乎的女性小粉絲在網絡上抨擊我)

具體參考車老師的這個文章:哈工大車萬翔:自然語言處理中的深度學習模型是否依賴於樹結構?

4.句法分析怎麼用

簡單介紹一個在主觀句抽取中的應用吧,基本處理(分詞、詞性標注等)-->match aspect-->match aspect-verb-->match 情感詞-->match 泛情感詞-->粒度解析(合併結果、重新詞性標注等,比如(給v 力n -->給力a)-->句法依存分析-->驗證主觀詞句法結構(比如情感動詞必須得有主語和賓語等)-->句式匹配(多種句式,不同句式位置和命中規則不一樣)-->句式過濾(多種句式,不同句式過濾的位置和過濾規則不一樣)-->整句句法分析-->整句過濾-->輸出主觀句。

標籤:-信息技術(IT) -Python -機器學習 -自然語言處理 -計算語言學


相關資源:





給我留言