王 靜, 姜 杰, 李 藝
(南京師范大學 教育科學學院, 南京210024)
續筆是指書寫者在漢字書寫過程中,有意識、有目的地對已完成的筆畫進行再次延長、覆蓋、連接等加工或修飾的書寫行為[1],這多屬于書寫者對已書寫漢字,在正確性、工整性意義上的再次糾正,反映了其對所寫漢字的重新認識。續筆現象不只在學生群體中出現,語文老師在批改書寫作業或辦公人員書寫文稿時,也經常對某些不恰當或不美觀的筆畫進行續筆、修繕。這種常見的續筆行為在“紙—筆”書寫介質中較容易識別,但在數字化書寫采集介質下,往往不能將其進行有效識別,卻直接判斷為該字書寫錯誤。對此,在數字化手寫平臺智能識別用戶的續筆行為并作為正確的行為接受下來,顯得非常有價值。
在目前提出的手寫漢字書寫自動評價方法中,中國發明專利“手寫漢字筆畫相交離的規范性判定方法和裝置”[2]公開了一種通過比較手寫漢字筆段的交接離關系與標準漢字筆段的交接離關系,進而判斷手寫漢字書寫是否規范,該方法首先獲取用戶書寫的漢字筆畫,再根據拐點提取筆畫中的筆段,最后判斷筆段間的交接離關系;專利“一種漢字書寫形態美觀度的計算機評估方法”[3]通過漢字書寫形態進行筆劃分解與參數化,然后使用圖像處理和人工智能的方法獲得漢字書寫形態與其美觀度間的潛在關系,進而對人工給定的漢字書寫樣本的美觀度評分;專利“書寫漢字結構規范性評價的方法和裝置”[4]通過獲得橫向對稱參數差值、縱向對稱參數差值、緊湊對稱參數差值和分布向量參數差值,根據監督分類機器學習機制,利用上述4種差值對所述書寫漢字進行結構規范性評價。
上述方法雖然在某些方面對手寫漢字書寫質量給出一定效度的評價,但這些方法并沒有實現對用戶書寫過程中出現的續筆現象進行判斷和識別。本研究克服現有技術的不足,提出“標記—整合”識別漢字筆畫續筆的方法,該算法區別于以往基于圖像格式的脫機漢字處理方式,收集觸摸屏上漢字筆畫的點集以及點集的時間戳保存在xml文件中[5],通過筆畫點集之間距離、方位的判斷,智能識別數字化手寫平臺上的續筆行為,并將互為續筆關系的筆畫進行整合,以使書寫的漢字通過正確性判斷,進而在工整性上更滿足書寫者的需求。
Liu[6]將漢字結構劃分為5個層次,其中筆段位于最底層,是構成漢字的最小單位,描述了整個漢字的重要的結構特征信息,并具有方向、長度等屬性,筆段間的拓撲結構也有多種。而續筆行為,主要發生在筆段間,因此本研究將從筆段間相連的拓撲結構、筆段間相連方向入手,對續筆情形分類判斷。
筆段間相連的拓撲結構主要包括“鄰”“疊”“交”[7-8],因此續筆關系中筆段相連包括相鄰、相疊、相交等3種類型。“相鄰”即兩個筆段的徑跡點首尾距離小于某個閾值且兩筆段的夾角余弦值小于某個閾值;“相疊”即兩個筆段的徑跡點中有若干對距離小于某給定閾值的點且兩筆段的夾角余弦值小于某個閾值;“相交”即兩個筆段的徑跡相互交叉[9],判斷方法如下:


(3) 判斷兩個筆段相交的方法:i筆段的端點p1、p2分散在j筆段端點p3、p4連線的兩側。令d1=p3p1×p3p4,d2=p3p2×p3p4,d3=p1p3×p1p2,d4=p1p4×p1p2,并滿足d1×d2p0&d3×d4p0,則i和j筆段相交。
漢字每一筆畫的入筆、運筆、收筆,以入筆之勢,造就筆畫之形[10],運筆過程中蘊含著漢字筆畫的時序特征,因此漢字筆段、筆畫書寫帶有方向性,規范書寫是i筆畫的末筆段與i+1筆畫的首筆段相接,但續筆現象存在較多反向連接。因此根據續筆中不同筆段間相連的方向,續筆類型又分為筆段間頭頭相連、頭尾相連、尾頭相連、尾尾相連以及包含與被包含關系。
根據筆段間相連的拓撲結構、連接方向,續筆類型分為5大類14小類,如表1所示。
趙學軍等[11-14]學者使用向右、右上、向上、左上、向左、左下、向下、右下8個方向表示筆畫走向,如圖1所示。本研究借鑒此劃分方式,通過記錄手寫漢字筆畫時從起筆到收筆留下的徑跡,根據徑跡上相鄰兩點所成直線與水平線之間夾角的余弦值cosθ,再結合不同筆畫類型的走向偏移角度,把平面坐標系分成8個走向,用8個阿拉伯數字表示[1],其中不存在從右向左


圖1 平面坐標系的8個走向
以及從下向上書寫的筆畫走向,因此去除走向編號5、7,只有1~4,6,8這6個方向,如圖2所示,對于復雜筆畫,拆分成若干個走向獨立的筆段,由筆段走向碼組合成筆畫類型編碼。

圖2 走向碼的角度劃分
走向碼表示筆段的傾斜度,對于單筆段筆畫如“橫”“豎”“撇”“捺”等可以唯一確定其位置,但對于多筆段筆畫如“撇點”“橫折撇”等,筆段間連接方向不同導致筆畫類型不同。如表2中,續筆判斷時僅依靠與標準漢字走向碼匹配,是不能準確識別續筆行為,例“谷”字中相連的撇和捺因與“女”中撇點的走向碼相同,有可能被識別為續筆;“又”中的多筆段筆畫“橫折撇”與“原”中的單筆段筆畫“橫”和“撇”也是類似。

表2 無連接方向的走向碼及其例字
鑒于無連接方向的走向碼在續筆判斷中存在不足,在很大程度上導致續筆判斷準確率下降,因此本算法在走向碼基礎上添加筆段連接方向,用h表示筆段頭部,e表示筆段尾部,添加之后結果如表3所示,上述問題迎刃而解。
筆段間續筆關系的判斷是“標記—整合”算法的關鍵步驟,依據筆段間拓撲結構的判斷方法,將當前筆畫所有筆段的點集依次與之前筆畫的筆段進行距離及方位判斷,根據點集計算結果,判斷兩筆段間的拓撲結構,進而在筆段層次上添加標記,具體算法如下:
輸入用戶書寫漢字點集信息類
輸出筆段間續筆關系判斷后標記添加后的信息類

表3 無連接方向的走向碼及其例字
(1) 在當前筆畫i的徑跡記錄
(2) 倒敘比較。從集合{Si1,Si2,…,Sin}中依次取出筆段Sij與i-1筆畫的筆段集合{Si-1(1),Si-1(2),…,Si-1(n)}中筆段Si-1(j)依次比較判斷,直到與集合{Sstart1,Sstart2,…,Sstartn}中所有筆段比較完成。
(4) 若兩筆段存在續筆關系,則分別根據Pstart、Pend坐標計算cosθ,據此得出兩筆段走向碼,若走向碼相同,則進行標記,方便將走向碼整合時去除相同走向碼。
(5) 在筆段Sij類中不僅標注續筆類型,而且要存儲與之有續筆關系的筆畫序號i以及筆段序號j,方便真續筆之間筆畫融合。
(6) 當前筆畫i的所有筆段{Si1,Si2,…,Sin}遍歷完成,進行下一筆畫判斷,依次循環,直到該漢字所有筆畫的全部筆段續筆關系判斷完成。
若筆畫i與筆畫j的筆段間存在相鄰或相疊或相交的拓撲結構,則判斷筆畫i與筆畫j有續筆關系,并添加標記。但是如圖3的“谷”中的“撇”和“捺”不存在續筆關系,但這兩筆畫判斷為相鄰,則會添加續筆標記。所以續筆有真偽之分,需借助標準漢字筆畫類型編碼庫,區分真續筆與偽續筆,具體算法描述如下:
(1) 已判斷筆段Sij是筆段Sji的續筆,若Sij與Sji是

圖3 “谷”中的偽續筆關系
同走向筆段,則將Sij的走向碼刪除,表明此續筆意義在于對上一筆畫的延長。
(2) 若Sij與Sji是異走向筆段,則表明Sij與Sji所在的筆畫連接將構成新筆畫類型,需與標準筆畫類型編碼庫進行比對。
(4) 根據筆段連接方向,調整筆段Sij所在筆畫i的走向碼與筆段Sji所在筆畫j的走向碼連接順序,中間用連接碼將兩筆畫走向碼連接成一個筆畫s的走向碼。
(5) 將筆畫s的走向碼與標準漢字筆畫類型編碼庫Q進行比對,若s∈Q,則在筆段Sij類中添加真續筆標記;若s?Q,則在筆段Sij類中添加偽續筆標記。
經過上述3個步驟,可基本識別書寫漢字的續筆行為,并標記有續筆關系的筆畫序號及筆段序號,如圖4所示,漢字的第1個筆畫記為0筆畫,“半”字的前5個筆畫無續筆行為則標記為false,第6個筆畫存在續筆關系,則為true,并對續筆發生的位置進行簡要說明,如“半”字的5筆畫0筆段與4筆畫的0筆段存在續筆關系。根據續筆判斷結果,可進一步將含續筆關系的兩筆段點集融合,合并成一個完整筆畫。

圖4 續筆測試平臺
當書寫者完成該漢字,先進行續筆行為判斷,若某筆畫的筆段上存在真續筆標記,則進行筆畫
(1) 若筆畫i的某筆段上含有真續筆標記,則根據續筆類型將兩筆畫點集融合,合成一個完整筆畫。
(2) 筆段相鄰。根據筆段連接方向,將筆畫i與筆畫j的連接筆段點集整合。
(3) 筆段相疊。根據疊點位置,去除兩筆段重疊部分,將筆畫i與筆畫j的其余部分點集整合。
(4) 筆段相交。根據交點位置,截取筆畫i有效部分以及筆畫j有效部分進行點集整合。
(5) 將整合后的筆畫加入筆畫集合{S1,S2,…,Si},將另兩個筆畫在筆畫集合中進行刪除。
(6) 將判斷及修繕完成的筆畫集作為該漢字完整的筆畫信息。
為驗證本文提出的“標記—整合”算法的有效性,代碼開發完成后,以南京市某小學三年級某班的全體同學為實驗對象,收集大量基于觸摸屏的漢字書寫信息,捕獲學生在無意識書寫狀態下的續筆行為,并對其進行續筆判斷處理,將修繕后的漢字輸送到下一邏輯環節判斷其正確性,最后統計續筆行為判斷的準確率。
3.1.1實驗前期調研與相關說明
因小學低年級的學生對于平板的操作以及觸摸屏寫字力度把握有一定的難度,且識字數量較少,無法客觀體現小學生真實的漢字書寫水平,而小學階段中年級的學生已經有了一定的漢字儲備量,對于平板操作也較熟悉,因此本次實驗選取了南京市某小學三年級一個班的學生作為實驗對象,該班共有45名同學,大約4/5的學生表示在日常生活中經常使用觸摸屏的各種操作,有較少數學生表示對觸摸屏寫字不熟悉,對于那些沒有觸摸屏書寫經驗的學生,經簡單指導,已迅速掌握操作步驟,可順利參與實驗。
3.1.2實驗材料
本次實驗選擇三年級上冊學習過的唐代詩人張繼的《楓橋夜泊》作為實驗材料,包含“月落烏啼霜滿天,江楓漁火對愁眠。姑蘇城外寒山寺,夜半鐘聲到客船”共28個漢字。
選擇該詩作為實驗材料,可使學生在練習、鞏固該詩的基礎上進行有意義實驗,并且詩中的漢字不僅涵蓋了多種基本筆畫:橫、豎、點、提、撇、捺,還包含有大量的常見筆畫,如:豎鉤、橫鉤、豎彎鉤、橫折鉤、撇折、橫撇等等,這些筆畫在常用漢字庫中出現次數頻繁,基本囊括了可能出現續筆問題的各種筆畫或結構。總的來說,這首詩包含的標準筆畫類型豐富,難易程度適中,能夠較客觀地反映學生平時的書寫習慣。
3.1.3實驗工具
選擇SANXING SM-P600帶有觸控筆的10.1英寸平板電腦作為本次實驗的測試設備,Android版本為4.3,安裝漢字書寫軟件,打開《楓橋夜泊》這首詩的字庫集,依次書寫28個漢字(見圖5),書寫完每個漢字后,點擊“寫的怎么樣”判斷按鈕,系統首先判斷該字中是否存在續筆行為,再對判斷修繕后的漢字的正確性進行正誤判斷。

圖5 軟件書寫界面
為收集大量書寫數據,發現小學生在無意識書寫行為中出現的續筆問題,本續筆實驗共持續5 d,周一到周五,時間連續,每人每天書寫28個漢字。在學生書寫過程中,研究者與語文老師配合在現場隨時指導學生進行觸摸屏操作、書寫漢字操作、保存漢字信息操作,盡最大可能地保證書寫數據的回收。實驗全部進行完之后,將發放的設備收回,并將漢字數據從服務器中獲取,對保存的漢字書寫圖片認真觀察、每個漢字xml文件中的時序點集進行計算并認真分析,統計書寫時續筆行為的識別率及修繕成功率。
期望共有6 300個漢字書寫信息,但在實驗過程中有個別學生存在漢字漏寫或沒有按照要求對書寫信息進行保存,導致最終采集的漢字書寫數據6 158個,其中續筆行為達658次,真續筆行為達503次,續筆類型主要集中在筆畫“橫”“豎”“撇”“捺”的延長以及筆畫“橫鉤”“豎鉤”“豎彎鉤”中筆段“鉤”的補充,續筆數量主要是1或2次,含有3次續筆關系的漢字較少,超過3次更是極少數,本次實驗續筆行為現象的統計如圖6所示。
從圖6可以看出,隨著實驗時間的延長,續筆現象發生越來越頻繁。因小學生每天書寫的漢字相同,實驗起初兩天時間內,學生一直在熟悉并習慣于在觸摸屏上書寫漢字,對漢字本身的筆畫、結構也熟練掌握。在接下來的書寫過程中,學生不僅保證漢字書寫的正確性,而且越來越追求漢字的美觀、工整,在此較高需求的基礎上,續筆現象發生頻繁。因此也可總結出續筆行為的發生多源于學生對漢字的“優劣”判斷以及有“向好”的愿望,是漢字書寫過程中的有價值信息。

圖6 實驗期間含續筆關系的漢字數量
收集書寫過程中的漢字信息,捕獲續筆行為,統計續筆判斷的準確率K以及修繕筆畫后的正確性通過率P,統計結果如表4所示。
表4統計了實驗材料中續筆頻率較高的漢字、判斷準確率以及修繕后正確性通過率,從收集的數據可以看出《楓橋夜泊》這首詩的續筆情況集中發生在“橫”“豎”“撇”“捺”“點”等簡單筆畫的完善加工,主要是對筆畫的某個筆段進行延長修飾,復雜筆畫如楓字中的“橫折彎鉤”、對字中的“豎鉤”、眠字中的“戈鉤”以及愁字中的“臥鉤”發生的次數也較多,根據每個字中含有續筆關系的漢字正確性通過率,續筆行為判斷準確率在80%以上,修繕后正確性通過率也在73%以上。
表5中統計了在實驗期間發生續筆次數較多的學生以及其書寫的續筆類型舉例、續筆準確率統計,從表中的續筆漢字舉例可知學生的續筆行為與其書寫習慣有關,例如學生1書寫時“橫”筆畫普遍較短,需再添加一筆將其進行延長;學生5書寫時“鉤”筆段常忘記,所以“橫折彎鉤”“豎鉤”等筆畫容易產生續筆行為;學生7書寫時筆段連接處易產生中斷,最后需再補一筆將兩者進行連接。在每位同學的續筆行為中,續筆判斷準確率在80%以上,修繕準確率平均在75%以上。
因實驗材料中每個漢字的續筆判斷準確率以及每位同學的續筆識別準確率都在80%以上,修繕準確率在73%以上,通過橫向比較和縱向比較,表明本文提出的“標記—整合”算法能有效識別漢字書寫過程中的續筆行為并在很大程度上對其修繕成功,提高了觸摸屏漢字書寫的正確性通過率。

表4 頻率較高的漢字續筆情形
本文根據筆段間的拓撲結構以及筆段相連方向,對續筆行為分類,提出“標記—整合”算法,該算法首先判斷筆段間拓撲結構并添加相應標記,再與標準漢字筆畫編碼庫進行比對,最后將含續筆關系的兩筆畫點集整合,作為完整筆畫添加到該漢字筆畫集合中。通過實驗驗證,本算法識別續筆行為準確率達80%以上,因此“標記—整合”算法可很好地解決漢字書寫質量智能測評系統上的續筆行為。但較復雜筆畫的續筆判斷較復雜,迭代次數多,再加上走向碼判斷局限性,所以正確性通過率有待提高,判斷續筆行為的算法需要改進。

表5 續筆次數較多的同學續筆判斷準確率統計