劉亞琛 劉曼 姚登峰
摘要:手語是我國聽障人重要交流之一,手語文本自動分詞系統對聽障人的政治、文化、生活的發展有著重要意義。研發了手語文本自動分詞系統,這是在漢語切分的基礎上針對手語特點進行手語切分,而且是利用計算機對文本里面的內容進行自動分詞。該系統包括基本的自動分詞方法、歧義的處理等基本模塊,每一環節互相協助,互相依賴,共同決定該系統的價值、質量和應用水平。
關鍵詞:手語文本; 自動分詞; 詞典; 切分
中圖分類號:TP391 文獻標識碼:A文章編號:2095-2163(2013)06-0081-04
0研究背景
目前國外已研制開發了一定數量的手語機器翻譯系統,其中的手語文本的特點是諸如美國手語的英語句子本身就有空格,并不需要自動分詞技術。但現如今中國在這方面的研究仍是一片空白,然而國內現有2 700萬聽障人,并且新生聾兒正以每年3萬例的速度在增加。為了保障殘疾人充分平等地參與社會生活,無差地共享社會物質文化成果,以及滿足聽障人的需要,并且提供無障礙服務,對手語機器翻譯系統的開發已勢在必行,本文研究旨在為今后中國手語機器翻譯系統的設計與實現創造基礎現實條件。
由于計算機并不如人類那般具有智能,能夠有效地切分出手語文本,進而達到可適用于聾人使用的語言水平。如,“我和你一起吃飯”,在與聽障人交流的時候,直接說“吃飯”,計算機分詞不能實現詞語刪減,所以計算機分詞的能力是有限的。
通過研究發現,中國手語植根于中國漢語的大環境之中。不論提出哪種轉寫方案,轉寫后的中國手語文本都面臨著漢語所特有的自動分詞問題[1],這是手語處理的關鍵技術之一,也是語言智能化處理的基礎工程。只有對手語句子進行正確無誤的分詞,才有可能實現對自然手語的機器理解,為建設手語語料庫、手語機器翻譯提供必備前提。
手語信息處理是以“手勢”為基礎[2],手語文本自動分詞所面臨的問題就是如何將文本內容自動切分出單個手勢詞,即使得計算機通過空格作為標志切分得到每一句話的詞。為了提高“手勢”切分準確率,就需要針對手語的特點,實現對手語文本自動分詞系統的設計與開發。
1手語介紹
漢語中最小的語言單位是字,而手語中則是手勢(sign)[3]。手勢是手語體系中最小的語言單位,無法再進行分割。這也是中國手語有別于漢語的地方。如果一個復合詞由兩個手勢構成,這個手勢就是語素。語素就是構成詞的詞素[2]。所以手勢可以是一個詞,也可以是一個詞素。 比如“妻子”,在漢語分詞里是一個詞的單位,但在手語里卻是合成詞,因為手語對“妻子”的表示是 “結婚”+“女人”,或者 “女人”+“結婚”,這樣本來在漢語里是一個語素的“妻子”,在手語里卻是由兩個語素構成的合成詞。這種情況在中國手語里大量存在,經常是漢語里一個名詞為一個語素,在手語里卻變成了兩個語素,甚至三、四個語素。手語文本的切分規則就是以手勢為單位,詞與詞之間則用空格分開。
1.1詞
漢語中的一個詞匯,用手語可以打出多個手勢。以一個詞為詞根,做前綴或后綴。同一個詞根有著不同的手勢。不同含義有著相似手語打法的詞(同音,借代)。不同詞有同一手勢。不同的詞根都代表的一個手勢。成語、歇后語則需逐次翻譯每一個詞。
1.2手語句子劃分的特點
(1)“的”(定)、“地”(狀)、“得”(補)這樣的詞語,在手語中是不用表達的。
例:“的”, 北京的工業發展很快。(形容詞+結構助詞)
漢語劃分:北京的工業發展很快。
手語劃分:北京的工業發展很快。
(2)動賓一體。當句子出現動賓一體的時候,手語會將其轉化為一個手勢去表達該動作。
(3)動詞+介詞(到、去、在、向、于、自)。在手語中,介詞不用打手勢,跟隨前一個動詞表達動詞的手勢即可。
(4) 動詞+動態助詞(了)。同樣跟隨前一個詞語。
(5)感嘆語氣。在手語中,感嘆詞也常省略。
(6)狀語倒裝。在這種現象里, 聾人強調的是動詞。
(7)判斷詞。省略判斷動詞“是”。
(8)名詞。在手語中,部分名詞需要逐字劃分的。包括專業名詞、普通名詞,同一個名詞可能需要多個手勢組成。
(9)數量詞。修飾數量詞作定語成分可省略、修飾數量詞作定語中的量詞可省略,數量詞與字母有相同的手勢。
2手語文本自動分詞技術
中國手語是一種獨立的語言,本身具有象形表意的功能,由于漢語的影響和滲透,又增加了表音和表字的功能,中國手語和漢語之間的關系是借用與被借用的關系,這意味著中國手語跟漢語既有聯系,又有區別[5]。中國手語分詞可以借鑒國內外分詞技術及算法研究的優勢[6],同時從自身的詞法、句法等出發,提出與之相應的手語分詞方案[7-8]。本研究的手語文本自動分詞系統結合詞典、規則的方法[9]。兩種方法進行結合,并互為補充,力求找到最合適手語文本自動分詞的平衡點。
手語文本中的詞通用還原法切分手語文本內容時存在一些普遍的還原現象[10]。
概念:假設手語文本內容是“HF”,F∈M,M為手語詞典,其中H為詞根(或一個手勢),S詞綴。那么可直接切分為HF→H+F的形式。
按照通用還原法的概念,可采用基于手勢詞綴的逆向最大匹配算法[11]。本研究的逆向最大匹配算法是:在手語文本中“HF1F2”,F1∈M,F2∈M,M為手勢詞典,其中F1、F2、H分別代表第一個手勢、第二個手勢、詞根的意思。如果采用該方法,則切出的結果為HF1F2F→H+F1+F2。
手語文本自動分詞在切分過程中還發現存在一些歧義現象的問題,對于切分出來的結果含有二重意思,如此則會影響切分效率[1]。因此,為了確保切分的準確度,必須合理有效地處理歧義現象。雙向掃描法和逐詞掃描法是歧義收集的兩種方法[10]。本系統開發采用的方法是雙向掃描法,這種算法處理交集字段時:
首先通過以下兩種方法分別切分字符串歧義的個數。
(1)發現切分個數不同,選擇少的返回;
(2)發現相同但字符串不同,再處理。因為切分字符串個數少,字段的長度就比較長。而且已經知道如果詞越長,信息量就越大,所以最好不要切分長詞。
文中采用歧義收集算法流程圖來處理交集歧義,如圖1所示。
3手語文本自動分詞的設計
運行要求:支持本系統運行的環境則需要在Windows xp或Windows 7下,使用MyEclipse7.0軟件。
3.1系統總流程
該系統是基于詞典、規則與統計語言模型的漢語切分系統,其總體流程如圖2所示。
3.2創建手語詞典
在進行手語切分時,并不能完全照搬漢語切分方法[12-13],需根據手語詞性語法特征進行正確切分。 手語詞本身沒有陰、陽性的區別,也沒有單、復數的區別,不存在主、賓格的變化,所有格主要是通過語序、詞界等隱性的句法形式來確定。中國手語除了一小部分單字手勢詞諸如身體部位名稱、姓氏名稱、行為動作和事物性質特點之外,其余的絕大部分均為雙字手勢詞,三字和四字手勢詞所占的比重非常少,因而為文本的切分帶來了極大的便利。
根據上面的現象,文中建立一個手語詞典,并且是.txt的文本。同時基于上面提出的現象,整理詞典,將單字的詞去掉,逐字翻譯的詞也刪掉,剩下的就是動賓一體、一個手勢的詞。
3.3實現與驗證
讀取文件中所要切分的內容,此程序開始采用的正向匹配法,發現運行程序出現切分錯誤,只能實現切分1~2個詞,不能在更大程度上提高程序的準確率和切分率。因此最終選用逆向最大匹配法。由于手語詞典中的詞匯最大長度是3,所以開始即選取最大長度3。
這種方法基本原理是:當讀取文本內容時,從末尾開始讀最大長度3,也就是說從末尾切出3個字符串,然后與手語字典比較,判斷其是否存在[14]。
為了使程序整體更為清晰,文中編寫了方法,便于調用Bijiao方法[15]。該方法是讀取手語詞典的文本,然后設置詞典有6 000個數組,每個數組由array[]來代替,整數型mn為0,布爾型zj為假。通過while循環條件實現運行,將詞典的數據賦值給數組元素[16],得到了詞典含有的總個數為mn。利用for循環,字與詞典的單詞比較,當詞典有一個與ch字相同,則zj為真,否則為假,即不存在該詞。返回并賦予函數。程序中,flag3方法是比較三個字,輸出切分出來的字并加上空格。可設置整數型liu為0,采用if條件,調用子函數bijiao(sb),若詞典有該字,那么liu=3(輸出3個字)。否則,賦予t為字符串,t為三個字末尾的兩個字,再一次調用子函數bijiao(t),若該詞典有這個字,那么liu=2(輸出兩個字),若沒有,則輸出一個字,liu=1,返回并賦予函數。
程序部分代碼如下:
public static int flag3(String sb)throws FileNotFoundException //子函數flag3
{
int liu=0;//將0賦予liu
if (bijiao(sb))//調用子函數bijiao(sb),r若詞典有該字
{
liu=3;//則輸出3個字
}
else
{
String t;//賦予t為字符串
t=""+sb.charAt(1)+sb.charAt(2);//三個字末尾的兩個字
if (bijiao(t))//調用子函數bijiao(sb),r若詞典有該字
{
liu=2;//則輸出2個字
}
else
{
liu=1;//則輸出1個字
}
}
return liu;//返回,賦值
}
同理,可整理出 flag2 方法、讀取文件的方法等。比如,如果讀取文本為一段內容,則需首先統計這段一共有幾行,其后再進行切分。這幾種方法,能夠一目了然,降低出錯率。 系統最終實現界面如圖3所示。圖3 系統實現界面
Fig.3 System interface4結束語
本研究為手語文本自動分詞系統的設計與實現,通過開發一個手語文本自動分詞系統,實現手語文本的切分功能。最關鍵的一點就是要去總結中國手語和漢語的區別,搜集聽障人講故事的視頻,根據視頻進行人工切分漢語,交流手語問題,梳理分析手語和漢語的區別。通過比較,再整理得到一個手語詞典,手語詞典的創立是一個龐大的工程,在漢語詞典中刪除單字的、名稱、數量詞、成語等,手語和詞一一對應相保存,這一任務也花費了很長時間。最后就是采用了逆向最大匹配法,不僅切分率高、準確率也很高;在此過程中,畫出流程圖,保證了系統的正常運行。
參考文獻:
[1]陳曉明,李玲俐,梁雄友. 消除語義網絡中分詞歧義方法研究[J].微電子學與計算機, 2012(3):178-181.
[2]張寧生.手語翻譯概論[M].鄭州:鄭州大學出版社, 2009.
[3]中國聾人協會.中國手語(上、下冊)[M].北京:華夏出版社,2009.
[4]李良炎.基于詞聯接的自然語言處理技術及其應用研究[M].上海:學林出版社,2007.
[5]鄭璇. 中國聾人手語的語言地位[D]. 武漢:武漢大學, 2005.
[6]甘秋云.中文分詞算法概述[J].唐山師范學院學報, 2013(5):55-57.
[7]修馳.宋柔. 基于“固結詞串”實例的中文分詞研究[J].中文信息學報,2012(3):59-64.
[8]周奇年,張振浩,徐登彩. 用于中文文本分類的基于類別區分詞的特征選擇方法[J].計算機應用與軟件, 2013(3):193-195.
[9]葛銳. 漢語分詞技術初探 [J].軟件, 2013(3):140-141.
[10]江銘虎.自然語言處理[M].北京:高等教育出版社,2005.
[11]劉穎.計算語言學[M].北京:清華大學出版社,2008.
[12]李榮,曹建芳.漢語名詞短語和動詞短語的自動識別方法研究[M].北京:北京希望電子出版社, 2008.
[13]趙小兵,張志平,田寄遠.現代漢語基本詞匯自動識別方法[M].北京:中央民族大學出版社,2012.
[14]Bruce Eckel.Java編程思想(第4版)[M].北京:機械工業出版社,2011.
[15]明日科技.Java從入門到精通(實例版)(軟件開發視頻大講堂)[M].北京:清華大學出版社,2012.
[16]Reges S, Stepp M. Building java programs[M]. Pearson/Addison-Wesley, 2008.