柴偉



摘要:句法分析是對一個句子成分進行分析的過程,主要分為短語結構句法分析和依存結構句法分析,句法分析的結果對后續語義分析等產生重要影響,因此句法分析是自然語言處理中十分重要的一個環節。短語結構句法分析研究的基本發展過程是從利用語言規則進行句法分析到使用統計的方法進行句法分析,目前,在神經網絡的基礎上進行短語結構句法分析,對語言形態研究具有重大意義。
關鍵詞: 句法分析; 短語結構; 自然語言處理
中圖分類號:TP391? ? ? ? 文獻標識碼:A
文章編號:1009-3044(2020)16-0026-02
Abstract: Parsing is a process of analyzing a sentence component. It is mainly divided into constituency parsing and dependency parsing. The result of parsing has an important impact on semantic analysis. Therefore, parsing is a very important in natural language processing. The basic development of constituency parsing is from rule-based parsing to statistical parsing. At present, parsing based on neural networks is of great significance to the language morphology.
Key words: parsing; constituency parsing; natural language processing
1 引言
句法分析在自然語言處理中起著承上啟下的作用,句法分析是在句子分詞之后,對分詞后的句子成分之間的關系進行進一步分析,將句子成分中短語成分使用樹狀或依存關系的形式表示出來,不論在漢語還是其他少數民族語言的句法分析原理基本一致,但各語言間存在特殊的語法結構,因此在短語結構句法分析研究中,需要結合語言特點進行句法分析研究。
2 短語結構句法分析基本理論
短語結構句法分析主要研究的是將句子中的成分使用標記集進行標注,標記集一般分為:詞性標記,如名詞(N),動詞(V)和短語類型標記,如:名詞短語(NP)、介詞短語(PP)。短語結構句法分析的結果一般使用樹形結構進行表示,例如句子the boy hits the dog with a rod,其短語結構句法分析結果如圖1所示。
短語結構句法分析主要經歷了幾個階段:
第一階段(1950年初—1990年左右):使用語法規則進行短語結構句法分析,這個階段主要是基于語言學家提供的語法規則形成規則庫后,根據規則庫中的已有規則進行句法分析,規則庫并不能完全涵蓋所有語言規則,例如在漢語中存在大量歧義現象,基于規則的句法分析速度慢,準確率較低。
第二階段(1990年—2010年左右):將統計的方法引入句法分析過程中,利用大量已經將短語成分標注好的語料作為基礎,使用統計的方法將短語成分的概率進行計算,在句法分析時,采用上下文關系以及語料庫得出的概率進行計算后,找到概率最大的短語標注,就是句法分析的結果,相較于基于規則的方法其分析速度及準確率大大提高。
第三階段(2010年—至今):在基于規則和基于統計方法的基礎上將神經網絡引入句法分析中,將RNN、LSTM等神經網絡應用在句法分析中,通過神經網絡計算得到的模型更加符合語言規則,大大提高了句法分析的準確率及分析速度。
3 短語結構句法分析方法
3.1 基于規則的短語結構句法分析
基于規則的短語結構句法分析方法主要是根據語言學家提供的規則庫推導出句子的句法結構如圖2所示,基于規則的方法主要分為以下幾種為:
1)自頂向下法。根據規則庫中的規則,從整個句子開始進行短語結構的分析,首先查看頂層結構(句子和子句)的規則,然后考察頂層結構的下屬各成分的規則,如此進行直到一個完整的句子結構被建立起來為止,如果這一句子與輸入數據相匹配,分析便結束,否則,它便從頂層重新開始,生成另外一種句子結構,最終就可得到一個完整的句法樹。
2)移進-規約方法。移進-規約方法也叫作自底向上法,是由Ullman[1]等人提出,主要分為四個動作:移進(shift)、規約(reduce)、標記短語(label-X)和不標記(nolabel)。移進-規約法需要一個棧對當前詞進行存儲。主要過程為在句子分詞及標注詞性后,從句子的第一個詞開始,進行移進動作存入棧中,在移進操作完成后根據規則庫中規則判斷是否可以標記為短語,若不能標記為短語繼續進行移進入棧操作,在每次移進入棧操作完成后需要判斷當前棧中是否可以根據規則組成一個短語,如果可以組成短語則根據規則標記為相應短語,若句子中有n個詞,那么需要2(2n-1)步可得出句法樹。
3)CYK方法。Kasami[2]等人提出CYK方法,其基本原理為:對于一個長度為n的句子,首先第一步從i=1開始,確定句子中每個詞Wi對應的詞性標記bi1;第二步是在確定完成詞性標記后,對于1 ≤h 在以上基于規則的方法上還衍生出一些改進的方法:例如歐雷分析算法(Earley parsing)[3]、左角分析法以及富田算法[4]等。 3.2 基于統計的短語結構句法分析 基于統計的句法分析分為兩個步驟:訓練(train)和解碼(decode)。訓練步驟是在語料庫的基礎上通過統計學建立句法分析模型,解碼是在根據模型預測找到概率最大值得到句法分析結果,分析過程如圖3所示,基于統計的句法分析主要分為以下幾種方法: 1)PCFG方法。PCFG是概率上下文無關文法是由Charniak[5]提出,在基于規則的基礎上根據語料庫計算每一條規則的概率,在進行句法分析時,根據規則的概率計算每棵句法分析樹的概率,那么最終句法樹就是所有規則的有序集合。PCFG方法無法利用上下文信息,因此難以解決句法分析中的歧義現象。 2)條件隨機場(CRF)方法。John[6]等人為解決序列標記中的偏置問題,提出了CRF方法,CRF是一種基于概率無向圖模型的方法,對于給定一個句子x=x1x2…xn作為輸入序列,則無向圖中有n個節點,假設y=y1...yn為句法分析輸出序列,那么根據條件隨機場其概率計算為: 其中參數λk和μk是通過語料庫中計算得到,序列fk(yi-1,yi,x)是輸入序列對應的位置i-1與i的標記特征函數,gk(yi,x)是位置i的輸入序列和輸出序列的狀態特征函數,最終求得概率無向圖模型的概率最大值后,通過解碼算法就可得到句法分析的結果,可以看出CRF可以利用句子中詞的上下文信息,解決了句法分析中的歧義現象。 除了以上兩種較為常見的分析方法,還有一些方法如:最大熵方法[7]、基于歷史的句法分析[8]、分層漸進式句法分析[9]、頭驅動的統計句法分析[10]以及一些將基于規則的方法與基于統計的方法相結合,解決的句法分析中的歧義問題。 3.3 基于神經網絡的短語結構句法分析 基于神經網絡的句法分析主要是在生成句法分析模型時,借助神經網絡獲得句法分析中所需的上下文信息以及詞性等影響句法分析準確率的因素。因此絕大部分基于神經網絡的句法分析都是在基于統計的方法上進行改進。因此基于神經網絡的句法分析的一般過程為:將大量已經標注好短語標記的句子作為訓練集,通過神經網絡生成模型,將需要標記的句子輸入模型預測后,使用分析算法將模型預測的最好結果輸出作為句法分析的結果。 在基于神經網絡的句法分析中,使用較多的神經網絡類型為LSTM(Long Short-Term Memory) 是具有長期記憶能力的一種時間遞歸神經網絡RNN(Recurrent Neural Network)。LSTM中能向單元狀態中移除或添加信息的結構稱為門限,包括:遺忘門(Forget Gate)、輸入門(Input Gate)和輸出門(Output Gate)。當輸入訓練集后,將句子轉化為向量序列,輸入門決定當前輸入向量序列的被采納的程度,遺忘門決定記憶被遺忘的程度,輸出門決定記憶中的在當前輸出的程度。LSTM其相較于CNN、RNN優勢在于能獲得較長距離的上下文信息。如James Cross[11]等人通過使用2個雙向的LSTM與移進-規約句法分析相結合,提高了句法分析的準確率。 短語結構神經網絡句法分析還有一些方法,例如Greg Durrett[12]等人在CRF句法分析的基礎上加入了神經網絡,利用神經網絡特定獲得句法分析中的特征,從而進一步提高句法分析的準確率。Jiangming Liu[13]等人提出了在移進-歸約短語句法分析中使用Bi-LSTM獲得句子全局特征,使得句法分析過程充分利用了句子的上下文信息。這些方法都是在基于規則或基于統計的方法上,利用神經網絡特點,對句法分析中特征提取等方面進行改進。 4? 總結與展望 句法分析作為自然語言處理中的重要一環,基于短語結構的句法分析更是句法分析中的重中之重,隨著神經網絡的發展,利用最新的神經網絡技術提高短語結構分析的準確率也成為當前研究的重點,目前的短語結構句法分析研究多在模型的訓練階段進行改進,在今后的研究中還需要對句法分析的解碼準確率進行進一步的提高。從而使得短語結構的句法分析水平有更大的提升。 參考文獻: [1] Aho AV, Ullman JD. The Theory of Parsing, Translation and Compiling[J]. Englewood Cliffs, NJ: Prentice-Hall. [2] Kasami T. An Efficient Recognition and Syntax Analysis Algorithm for Context-free Language[R]. Technical Report AFCRL-65-785. Bedford, MA,1965. [3] Earley J. An efficient context-free parsing algorithm[M]. Readings in natural language processing. 1986. [4] Tomita M.Left-to-right on-line parsing[M]//Efficient Parsing for Natural Language. Boston, MA: Springer US, 1986: 95-102. [5] Baayen R H,Charniak E.Statistical language learning[J].Language, 1997,73(3):588. [6] John L. Conditional Random Fields: Probabilistic Models for Segmenting and Labeling Sequence Data[J]. 2001. [7] A.Ratnaparkhi. Learning to Parse Natural Language with Maximum Entory Models[J]. Machine Learning, 1999,34:151-178. [8] Marcus. Linguistic Theory and Computer Application[J]. New York,Acsdemic Press, 1980:69-112. [9] Steve Abney. Rapid Incremental Parsing with Pepari[C]. In Preceeding of the 6th New OED Conference: Electronic Text Research, 1990:1-9. [10] Collins M.Head-driven statistical models for natural language parsing[J].Computational Linguistics, 2003,29(4):589-637. [11] Cross J , Huang L . Incremental Parsing with Minimal Features Using Bi-Directional LSTM[J]. 2016. [12] Durrett G, Klein D. Neural CRF Parsing[J]. Computer Science, 2015. [13] Liu J M,Zhang Y.Shift-reduce constituent parsing with neural lookahead features[J].Transactions of the Association for Computational Linguistics, 2017,5:45-58. 【通聯編輯:唐一東】