三、 系統設計與實做
3.3 文法檢查模組設計
文法檢查模組包含以下幾個部份,依序如後:詞性標記(APP)、結構標記 (APPP)、文法檢查(modules)、CLEC 驗證。
圖 3-5 文 法檢查 模組 流程圖
從此圖即可以清楚的看出,剛才經過 Aspell 檢查無誤的句子,經過詞性以 及句子結構的標記,便依照這些標記進行文法檢查,句子經過每一個文法檢查 的模組檢查過後,如果全部都正確無誤,就將資訊送到同義字檢查模組;如果 發生錯誤,便一一記錄下來錯誤的模組有幾個,並且送到評分模組。
3.3.1 詞性及句構標記
我們採用的 parser 是 Apple Pie Parser(APP)。我們將通過拼字檢查的句
子,送進 APP,APP 會對句中的單字作出詞性標記以及句子的結構;之後,再
將句子送進 Apple Pie Parser Parser(APPP)進行樹狀標記,標記完之後,再交 由文法模組做錯誤檢查。
圖 3-6 APP 及 APPP 解析句子流程圖
3.3.2 文法檢查模組驗證方式
系統將文章做過以上的處理之後,就會送到文法檢查模組中做檢查,但是 這些文法模組的設計分類方式,以及相關的驗證,需要大量的樣本來做測試。
因此,我們將依照文法模組在 CLEC 各類型句子中的驗證結果,去設計及撰寫
文法模組,如下圖所示:
圖 3-7 文 法檢查 模組 驗證方 式設 計流程 圖
我們每設計一個文法模組,便以 CLEC 中的錯誤句子做測試,測試完畢後,
便統計尚有多少數量及類型錯誤還未能找出,針對模組不足之處再加以補強,
並且重複這樣的步驟,以新增各類型文法檢查模組。
實做的方式則如下圖所示:
圖 3-8 文 法檢查 模組 驗證方 式實 作流程 圖
圖中 CLEC 的資料送進我們的文法檢查模組中檢驗,檢驗後主要分成兩個
部份:
1. 後端錯誤統計:
利用 perl 去呼叫檢驗程式,將 CLEC 中有錯但尚未檢查出錯誤的句子
經過主程式檢驗之後做成列表,由於 perl 對於字串的處理能力很強,
所以在這個部份能很快的計算出句子數目,以利後續在撰寫程式時,
確認哪類型的文法錯誤數量較多,需要先行解決。
2. 前端網頁測試:
後端撰寫完畢的文法檢查模組,可以由前端網頁呼叫,測試目前文法 檢查模組可以偵測的狀況有哪些。並將檢查出的拼字錯誤、文法錯誤、
語義錯誤的訊息呈現在網頁上。
3.3.3 CLEC 樣本統計
系統藉由以上檢驗方式,首先統計出兩項資料:
1. CLEC 原本樣本句數:
我們將 CLEC 中的 ST2~ST6 樣本輸入 perl 中,雖然已知在 CLEC 中的詞 數為一百萬詞,但並非所有文章中的句子都有發生錯誤,因此我們僅統計 有發生錯誤的句數有多少,同時將它分類。
2. CLEC 句數錯誤類型比率:
表 3-1 是 CLEC 語料庫經過 perl 程式檢驗後,而得到的各類型錯誤數量。
表 3-1 CLEC 錯誤類型及句數統計表
錯誤類型 句數 錯誤類型 句數 錯誤類型 句數
[ad1] 151 [np2] 56 [sn5] 25 [ad2] 72 [np3] 678 [sn6] 131 [ad3] 17 [np4] 109 [sn7] 125
[aj1] 30 [np5] 209 [sn8] 2523
[aj2] 29 [np6] 1251 [sn9] 1888
[aj3] 156 [np7] 436 [vp1] 776 [aj4] 37 [np8] 99 [vp2] 321 [aj5] 10 [np9] 45 [vp3] 1499 [cc1] 154 [pp1] 309 [vp4] 285 [cc2] 167 [pp2] 380 [vp5] 300 [cc3] 673 [pr1] 340 [vp6] 1548 [cc4] 228 [pr2] 94 [vp7] 318
[cc5] 48 [pr3] 203 [vp8] 57 [cc6] 24 [pr4] 116 [vp9] 484
[cj1] 60 [pr5] 69 [wd1] 210
[cj2] 21 [pr6] 12 [wd2] 1375
[fm1] 6586 [sn1] 1116 [wd3] 3405 [fm2] 1119 [sn2] 1232 [wd4] 1613 [fm3] 2402 [sn3] 42 [wd5] 1185 [np1] 74 [sn4] 43 [wd6] 119
[wd7] 811
統計之後,在 CLEC 裡面的錯誤句數總共有 37895 句,但由於上表並不容
易看出來各類型錯誤比率是多少,因此我們再針對 CLEC 中的言語失誤分類表
上面的 11 大類做出分類和百分比。
表 3-2 是以 CLEC 中 11 大類的錯誤類型,分別統計數量而得到的,並且 計算各大類所佔的比率。
表 3-2 CLEC 錯誤類型比率統計表
詞形[fm] 10107 26.7%
動詞短語[vp] 5588 14.7%
名詞短語[np] 2957 7.8%
代詞[pr] 834 2.2%
形容詞短語[aj] 262 0.7%
副詞[ad] 240 0.6%
介詞短語[pp] 689 1.8%
連詞[cj] 81 0.2%
詞彙[wd] 8718 23.0%
搭配[cc] 1294 3.4%
句法[sn] 7125 18.8%
總計 37895 100.00%
圖 3-9 是將表 3-2 以統計圖的方式呈現,讓我們可以更清楚的看出各類型
例如:被動語態Æbe 動詞+過去分詞,就可以表示「is broken」、「was opened」、「were selected」…等句型,而不需一一列舉。