NLP | 自然語言處理 - 考慮詞彙的語法解析(Lexicalized PCFG)

語法解析的改進


NLP | 自然語言處理 - 語法解析(Parsing, and Context-Free Grammars) 這一章我們講到了上下文無關語法(PCFG - Probabilistic Context-Free Grammar)的解析方法。PCFG在許多情況下並沒有考慮詞的順序關係,例如NN NN(Milk Cup)這樣的情況兩個名詞被等價的對待,因爲也可能導致語法解析的二義性。爲了獲得更好的解析正確率,我們將在PCFG的基礎上做一些改進。

對於每一條規則,我們將添加一個規則的首要詞(head)。例如 VP => VP PP,VP就是這個規則的首要詞。那麼首要詞如何來確定呢?其實我們可以通過我們對英語語法的理解來制定一些規則來確定首要詞。

例如,對名詞短語 (NP)而言,可以包含如下規則(規則按順序匹配,命中是停止):
1)當規則包含NN, NNS或者NNP時,選擇最右側的NN, NNS或者NNP作首要詞,例如the milk cup
2)當規則包含一個NP時,選擇最左側的NP,例如(NP the car) (PP in (NP the street))
3)當規則包含一個JJ時,選擇最右側的JJ,例如the old
4)當規則包含一個CD時,選擇最右側的CD,例如 1000
5)選擇最右側的元素

對於動詞短語(VP)而言,可以保護如下規則(規則按順序匹配,命中是停止):
1)當規則包含Vi、Vt時,選擇最左側的Vi或者Vt,例如go home
2)當規則包含VP時,選擇最左側的VP,例如(VP go home) (to (VP have lunch))
3)選擇最左側的元素

有了首要詞(header)這個概念以後,我們的語法樹將可以被表示得更加的精細。但是顯然,隨之而來的計算量也將更大,同時對訓練集數據量的要求也更多。


定義

與上一章 NLP | 自然語言處理 - 語法解析(Parsing, and Context-Free Grammars) 的定義類似,我們將改進後的語法解析定義如下,並稱之爲Chomsky Normal Form。
1)N表示一組非葉子節點的標註,例如{S、NP、VP、N...}
2)Σ表示一組葉子結點的標註,例如{boeing、is...}
3)R表示一組規則,每條規則可以表示爲
      a) X(h)->Y1(h)Y2(w),X∈N,Yi∈N,h,wΣ
      b) X(h)->Y1(w)Y2(h),X∈N,Yi∈N,h,w∈Σ
      c) X(h)->h,X∈N,h∈Σ
4)S表示語法樹開始的標註

已知一棵語法書時,我們可以通過如下的公式來預測該句子出現的概率,整個過程與上一章所述非常類似。

參數估計

那麼,下一個問題是我們如何獲得X(h)->Y1(w)Y2(h)這樣一個規則的出現概率呢,例如q(S(saw) -> NP(man) VP(saw))?我們需要對公式做一個變型,q(S(saw) -> NP(man) VP(saw)) = q(S ->2 NP VP | S, saw) * q(man | S -> NPVP, saw)。右側第一個子式表示當句子的首要詞是saw時出現S -> NP VP的概率,右側第二個子式表示當首要詞爲saw並且語法確定爲S -> NP VP的情況下出現man的概率。

第二個問題是當我們的訓練數據集中有足夠多的S -> NP(man) VP(saw)時我們可以比較好的學習這個規則。那麼,如果我們沒有足夠多的規則時,我們應該如何去估計呢?與之前章節的處理方法類似,我們可以用平滑的方式去獲得近似的值,如下式所示:
q(S ->2 NP VP | S, saw) = k1 * p(S ->2 NP VP | S, saw) + k2 * p(S ->2 NP VP | S)
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章