摘 要:提出了一個新型系統,致力于解決目前漢語教材編著過程中遇到的難題。系統中使用一種基于字符串匹配與隱馬爾科夫模型相結合的算法提高了自動拼音標注的正確率。為了解決課文生詞詞匯量過多以及復現率低的問題,系統采用了跨文本搜索和統計的方法;例子舉證不合理也是導致教材質量降低的一個原因,系統采用語料庫檢索算法解決了該問題。實驗證明,采用該系統編著的教材更加符合科學規范。
關鍵詞: 協同編著; 對外漢語教學; 中間件技術; 語料庫
中圖分類號:TP391.12; TP393.09; TP319文獻標志碼:A
文章編號:1001—3695(2007)03—0177—04
教材建設是對外漢語教學的重要環節之一,也是影響教學效果的關鍵因素。因此對外漢語教材的編寫出版與理論研究一直受到國內外漢語教學界的高度重視,并于近幾年取得了長足的發展。然而,隨著世界漢語教學的不斷發展,對漢語教材的質量也提出更高的要求。因此如何實現對外漢語教材的創新已成為教材建設的研究熱點。有學者(王建勤,2002)指出,對外漢語教材創新的出路在于教材的現代化,即教材的編寫觀念、設計思想、編寫手段、表現媒介等方面的現代化,并提出一種基于網絡平臺、以網絡為媒體的對外漢語教材編寫模式[1]。
基于上述背景,本文著手研究基于Web的對外漢語教材協同編著系統。該系統是通過建立一個具有群體性、交互性、分布性和協作性的人機網絡工作環境來協助多個地理位置分散的作者對一個大型文檔的共同編著,是CSCW技術在著作領域中的一個典型應用[2]。目前,人們對協同編著的研究也比較多,普遍認為協同編著過程是以異步協作為主、同步協作為輔,隱式協作為主、顯式協作為輔的過程,要求協同編著系統對各種協作(特別是異步隱式協作)給予全面支持[3]。由此一個協同編著系統應實現以下功能:分布式的多媒體協同編輯器、文檔管理、協同系統管理、協同工程管理、協同用戶管理以及一些常用的輔助協同功能如電子郵件系統、聊天室和論壇等[2—5]。基于Web的多媒體協同編著系統在國內主要有浙江大學的ZU—CoEditor[6]、清華大學的DCA(Distributed Cooperative Authoring) [3]和DMCW(Distributed Multimedia Cooperative Writing) [5]、上海大學計算機學院開發的一個基于J2EE的協同編著系統。國外的主要有AllianceWeb、COARSY(Collaborative Asynchronous Review System)、WebDAV、PINAS [7,8]。
上述系統實現了一個多媒體協同編著系統應該具備的常用功能。這些功能可以分成兩類,即同步和異步協同功能。對于同步功能,協同編輯器的概念被提出,在這個編輯器上,多人可以同時對一個文本進行編著;對于異步功能,大多數系統都是通過提供一些諸如用戶管理、文檔版本管理以及一些常用的交流工具如論壇、聊天室、站內信箱等來實現的。但它們都不是為對外漢語教學教材編著這一領域而設計的,所以無法提供漢語教材編著所需的一些特殊功能。在參考這些系統設計的基礎上,本文設計和開發了基于中間件技術的對外漢語教材協同編著系統。在系統實現過程中,綜合利用CSCW和自然語言處理相關的知識解決了漢語教材編著過程中的大部分難題。
1 基于中間件的協同編著系統設計
1.1 協同編著系統體系架構
系統在設計上采用基于Web的三層體系結構,主要包括瀏覽器客戶端、中間件服務器層以及數據庫服務器層。
瀏覽器客戶端主要包括一些用戶接口,如管理員的用戶管理、語料庫管理、文檔管理、論壇管理;主編的文檔管理;參編的論壇、站內信箱、聊天室以及編輯器的使用等。
中間服務器層分為三個部分,即應用服務器、Web服務器以及文檔服務器。應用服務器主要負責業務邏輯的實現;Web服務器主要用于用戶的訪問控制;文檔服務器主要用于文檔管理以及提供對外漢語教材編寫的一些輔助工具。早期版本的系統設計中曾嘗試把文檔服務器所實現的功能由應用服務器來完成。試驗證明以這種方式在并發用戶很多時會導致系統執行的速度減緩。按照現在這種模式,可以把應用服務器、Web服務器以及文檔服務器分別部署到網絡上不同的主機中,采用分布式運算的方式來提高系統整體性能。
數據庫層主要負責持久業務數據的管理,它是聯系瀏覽器客戶端各個部分的數據紐帶。
數據通信方面,瀏覽器客戶端主要通過TCP/IP協議和中間層服務器連接,其中的編輯器模塊還要與文檔服務器有一個專門的Socket連接,通過這個連接可以實現對外漢語教材編著的特殊要求,如語料庫查詢、生詞注音、詞匯難度統計等。中間層服務器通過JDBC/ODBC驅動與數據庫服務器連接。JDBC/ODBC可以支持系統與目前大多數流行的數據庫系統的連接。其框架結構如圖1所示。
1.2 系統的協同機制
借鑒現實生活中人們協同工作的經驗,可以得出這樣一個結論:要實現群體的協同工作并且使群體具有最大的創造性,既要有一個健全的人事管理體制,根據每個人的能力和興趣愛好去安排適合他的崗位,這樣就能充分調動成員的積極性和創造性;還要在成員工作時,為其提供一個好的信息交流平臺,使其能夠相互幫助,共同討論未決的問題。系統的設計正是基于這樣的考慮。
首先,為了實現人事管理機制,系統采用角色機制來分配和管理用戶權限,并按組來劃分用戶,以便給每組用戶授予不同權限,從而實現不同用戶對系統的訪問控制,如表1所示。
其次,編著成員工作上的協同主要分為同步協同和異步協同。
同步協同是指成員間共享一個工作區域,在這個工作區域中可以同時對同一文檔的不同部分進行編輯。為了支持同步協作功能,系統編輯器支持了兩種功能:①動態多光標。每個光標是以“段落名、用戶ID、角色”來標志的。該光標表示所有者目前是什么角色,正在哪一段落的何處活動等信息。多光標可使協作者感知群體的存在和活動,構建了一種人—人交互的界面。②多顏色文本。系統利用不同顏色來標志不同協作者編輯活動的結果。
異步協同是指工作區域之外的協同,其實現主要是通過系統論壇、郵件系統以及聊天室功能來完成的。
1.3 文檔的版本管理
編著過程是一個反復的過程,需要不斷地對文檔進行修改,而且最后修改的文檔未必是最令編者滿意的,所以編著系統必須提供對文檔的版本管理支持[9]。本系統實現上主要是通過“文件名+修改日期”來標志同一文件不同版本的。另外為了給用戶進行歷史文檔恢復提供參考信息,對應的文檔版本有一個描述信息,這個描述信息是當用戶提交修改一個修改文檔時要求用戶填寫的。
對于文檔的版本管理模塊,還有一個值得一提的功能是可以實現兩個文檔的比較。文檔比較是以行為單位,在同一個窗口中同時顯示比較的兩個文檔,不同的地方用顏色高亮顯示,如圖2所示。
圖2 文檔效果比較圖
2 對外漢語多媒體編輯器的設計
對外漢語教學教材的編著不同于一般文檔的編寫,除了要實現一般編輯器對文字、圖片、聲音、視頻的支持外,它還有其自身的一些特點。例如要實現生詞注音、生成詞匯表、詞匯難度統計、詞匯頻率統計、查詢例句、章節合并和生成電子課件等功能。這些操作都是教材編著者需要經常使用的,如果把它們都經過中間件服務器去實現,必將大大增加中間件服務器的負擔,影響它處理其他業務邏輯的效率。因此本文在服務器端設計了一個文檔服務器來專門實現這些常用功能,在客戶端采用ActiveX控件與文檔服務器進行通信。在瀏覽器端,ActiveX控件感知用戶操作請求后,負責把請求傳送到文檔服務器;文檔服務器再把響應返回給ActiveX控件,ActiveX最后負責對瀏覽器端顯示的更新。
對外漢語教材編輯器各功能的實現綜合利用了自然語言處理、語料庫、J2EE以及控件編程各方面的技術。
2.1 自動拼音標注
拼音標注可以用微軟的Word拼音指南來實現,但是它有三個缺點:只能手動標注;每次只能標注30個詞;多音字的情況下,有可能標錯,并且沒有辦法修正。為此,編輯器實現了全自動拼音標注的功能,而且對標注文本的長度沒有任何限制。為了解決上述問題, 系統提供了一個能自動對無限長度的文本進行標注的功能,并且具有很高的精確度。之所以拼音標注會出錯,主要是因為分詞不正確引起的。所以要提高標注的準確率,首先要解決分詞問題。下面介紹一下提高拼音標注正確率的算法。
目前常用的分詞算法可以分為三大類,即基于字符串匹配的分詞方法、基于理解的分詞方法和基于統計的分詞方法。其中基于理解的分詞方法是,通過讓計算機模擬人對句子的理解來達到識別詞的效果。這種分詞方法需要使用大量語言知識和信息。由于漢語語言知識的籠統、復雜性,難以將各種語言信息組織成機器可直接讀取的形式,目前基于理解的分詞系統還處在試驗階段。基于字符串匹配的分詞方法按照一定的策略來將待分析的漢字串與一個充分大的機器詞典中的詞條進行匹配;一旦在詞典中找到某個字符串,則識別出該詞。這個方法的優點是切分速度快、效率高,但是無法對新詞(沒有出現在機器詞典中的詞)進行正確劃分。基于統計的分詞方法的基本原理是根據詞是穩定的字的組合,因此在上下文中,相鄰字同時出現的次數越多,就越有可能構成一個詞。這種方法的優點是可以發現新詞,并且能夠很好地解決歧義問題;但它也有一定的局限性,即會經常抽出一些共現頻度高,卻并不是詞的常用字組,并且算法的時空開銷較大。為了綜合利用基于字符串匹配方法的快速高效性和基于統計方法對新詞的敏感性,系統中采用的是字符串匹配方法和基于HMM的統計方法相結合的方式。分詞算法流程如圖3所示。
圖3中逆向匹配不是最大逆向匹配方法,而只是根據機器詞典來進行字符串的匹配,所以切分有多種可能的情況;圖中結合詞性標注過程來提高分詞的正確率,這種方式之所以能提高正確率,是因為它引入了句子的語法信息。詞性標注是采用基于HMM的統計方法。其基本原理如下:
上述算法在求出最好的標注序列T的同時,也完成了文本的分詞。
2.2 語料庫查詢
漢語教材的編寫中,要向學生展示一些詞語的用法,就要用到一些例句;而舉例時要考慮到學生的漢語水平來選擇合適的例句,這單靠編寫者的主觀認識是比較難把握的。因而本文采用了語料庫查詢方式。查詢界面可以輸入關鍵字,以及相應的難度對比控制;查詢返回結果按照難度升序排列;要使用例句時只要把例句拷貝到教材中就可以了。語料庫通常是指為語言研究收集的、用電子形式保存的語言材料。由自然出現的書面語或口語的樣本匯集而成,用來代表特定的語言或語言變體,具有適當規模的語料庫能夠反映和記錄語言的實際使用情況。因而采用語料庫查詢方式來選擇合適的例句是比較具有科學根據的,能保證教材編著的科學性。
實現快速的語料庫查詢需要首先解決的是語料庫的索引問題。由于本文采用的語料庫是已經分詞和標注的,所以采用了對詞的倒排序與哈希文件相結合的索引方式[6]。倒排序文件結構如下:
單詞+單詞所在句子在語料庫中的首位置+句子中單詞相對句子首位置的偏移量+下一個相同單詞在倒排序文件中的位置
哈希文件的結構如下:
單詞+單詞在倒排序文件的末位置+出現此單詞的所有例句個數+單詞在哈希文件中的位置
通過一次掃描標注語料庫,可以得到倒排序文件,再掃描一次倒排序文件,可以得到哈希文件。語料庫檢索主要是針對倒排序和哈希文件進行檢索的,考慮到文件結構的安排,檢索時在文件當中是反向檢索的。檢索結果按照相似度大小降序排列返回給用戶。相似度的度量是通過改進文獻[10]中提出的一個基于詞形和詞序的相似度模型來計算的。設句子A為待查詢詞或句子,句子B為語料庫中的句子,詞形相似度
其中,Once(A,B)表示在A、B都出現且只出現一次的單詞的集合;Pfirst(A,B)表示Once(A,B)的單詞在A中的位置序號構成的向量,Psecond(A,B)表示Once(A,B)的單詞在B中的位置構成的向量;RevOrd(A,B)表示Psecond(A,B)中各相鄰分量的逆序數。在定義了詞形后詞序相似度之后,整個句子A和B的相似度定義為Sim(A,B)=α×FormSim(A,B)+β×OrderSim(A,B),其中α+β=1。一般詞形的相似度比詞序的相似度更加重要,所以α>>β。
2.3 統計功能
目前還很少有對外漢語教材能夠利用現代教育技術對語言點進行系統的計量分析,并作相應調整和定量控制,以提高教材規范化程度的。有些專家學者針對現有對外漢語教材的這個缺陷提出了批評。趙金銘先生(1998)指出了對外漢語教材編寫方面普遍存在的一些問題,其中包括教材的詞匯量大、復現率低、練習種類單調、數量不足。程相文先生(2001)也指出,現行教材的量化標準大多是根據教師的主觀認識和經驗確定的,缺乏科學依據。楊德峰先生(1997)認為,教材規范化應該包括生詞及語言點確定的規范化,但是每課中生詞量、語言點數量的多寡沒有客觀標準。通過對漢語教材詞匯量的分析,發現有的初級漢語閱讀教材和中級漢語精讀教材中的超綱詞語占生詞的一半以上,而且有幾本教材每課的生詞量失控,數量過大[1]。
為了解決生詞復現率低的問題,編輯器提供了查詢詞頻的功能。該功能可以實現某一課、某幾課或整部教材中用了哪些詞語、詞語出現的頻率有多少以及在各個章節中的分配情況等的查詢。編者可以根據這些量化標準來調整編著過程。
為了解決詞匯量過大的問題,編輯器按照漢語水平等級大綱(HSK)來統計每章中出現的甲乙丙丁和超綱詞各占多大比例,并且對每種不同等級的詞匯以不同顏色來標示。所以編者可以很直觀地從統計結果看出章節的編寫是否科學。
2.4 其他功能
除上述漢語教材編著的專用功能外,編輯器還提供了以下功能:
①生成詞匯表。詞匯表生成是對外漢語教材編寫的一大需求,詞匯表中要列出出現的所有詞的字形、拼音以及詞性等。如果通過人工方式去做,效率將會很低;而通過系統的此功能,在幾秒之內即可完成。
②章節合并。這一功能可以把多個文檔合并成一個文檔。
③生成課件。編寫的教材往往不只是為了出版用,而且教材中插入的一些多媒體信息如動畫、聲音、視頻都無法出版。因此可以把編寫的教材生成網絡課件的形式,用于網絡教學。
④安全保存。保存功能不僅能把課件保存到服務器上,而且還能把課件保存到本地磁盤上。
3 結束語
本文提出一個新型的對外漢語教材編著系統。這個系統不僅提供了協同編著過程中所需的功能,而且還有很多致力于解決漢語教材編著過程中遇到的難題的功能。整個系統是基于J2EE技術的松耦合設計的,因此具有很好的可維護性和可擴展性。但是系統中還有一個問題尚待解決,即一個用戶只有當其在線時才能感知其他用戶對文檔在哪一部分作了哪些修改,但在其離線時則無法感知,這給協同編著帶來了一定的不便。因此,筆者目前正在考慮實現當用戶離線時,仍能收到系統自動發送的郵件。該郵件中應該包含哪個用戶對文檔的哪個部分作了怎樣的修改。這一功能的實現,能在一定程度上提高系統的協同性。
本文中所涉及到的圖表、注解、公式等內容請以PDF格式閱讀原文。