- 簽證留學(xué) |
- 筆譯 |
- 口譯
- 求職 |
- 日/韓語 |
- 德語
在語義分析器的簡單管道流的結(jié)構(gòu)中,將一個(gè)完全的句法剖析結(jié)果作為輸入傳給語義分析器。這樣做的動(dòng)機(jī)源于組合方法在處理之前就需要句法剖析這一事實(shí)。然而,語義分析與句法處理同時(shí)進(jìn)行也是可能的??赡艿脑蛟谟?,在我們的組合框架中只要給出所有成分部件就可以生成一個(gè)成分的意義表示。
把語義分析結(jié)合到Earley剖析中是比較容易理解的。而且與把合一運(yùn)算結(jié)合到算法中的處理方法是相同的。對原來的算法需要做三項(xiàng)修改:
1. 將一個(gè)新的域引入語法規(guī)則,以包含它們的語義附著。
2. 將一個(gè)新的域引入線圖中的狀態(tài),以容納成分的意義表示。
3. 改變ENQUEUE函數(shù),以便于當(dāng)一個(gè)完全狀態(tài)進(jìn)入線圖時(shí),在狀態(tài)的語義場中能夠計(jì)算和存儲(chǔ)語義。
在圖1中給出了為生成意義表示而對ENQUEUE函數(shù)所做的修改。當(dāng)一個(gè)完全狀態(tài)通過ENQUEUE并且這個(gè)狀態(tài)能成功地合并它的合一約束時(shí),ENQUEUE調(diào)用APPLY-SEMANTICS來為這個(gè)狀態(tài)計(jì)算并存儲(chǔ)意義表示。注意,在語義分析之前進(jìn)行特征合一處理的重要性。這樣做確保語義分析處理只是基于有效的剖析樹,并且確保能給出語義分析需要的特征。
圖1 修改ENQUEUE函數(shù)以便于處理語義。如果狀態(tài)是完全的并且合一成功,則ENQUEUE調(diào)用APPLY-SEMANTICS來計(jì)算并存儲(chǔ)完全狀態(tài)的意義表示
這種結(jié)合方法相對于管道流方法的根本優(yōu)點(diǎn)在于這一事實(shí):APPLY-SEMANTICS能以與合一失敗類似的方式失敗。如果發(fā)現(xiàn)一個(gè)語義的非良構(gòu)形式,在生成意義表示時(shí),則這個(gè)相關(guān)的狀態(tài)就能夠被阻塞,以防止進(jìn)入線圖。借助這個(gè)方法,在句法處理時(shí)就實(shí)現(xiàn)了語義考慮。
遺憾的是,這同時(shí)也是把語義結(jié)合到剖析中所帶來的根本缺點(diǎn)中的一個(gè),也就是大量的精力將耗費(fèi)在孤立(orphan)成分的語義分析上,而這最終對一個(gè)成功的剖析并沒有多少貢獻(xiàn)。早期實(shí)現(xiàn)語義所帶來的益處是否大于引入外部語義處理所帶來的耗費(fèi),這個(gè)問題只能根據(jù)每個(gè)具體的實(shí)例來回答(對于不同的實(shí)例,答案很可能不同)。
責(zé)任編輯:admin