劉匯丹,諾明花,趙維納,吳 健,賀也平
(1.中國科學(xué)院 軟件研究所,北京 100190;2.中國科學(xué)院 研究生院,北京 100190;3.北京語言大學(xué),北京 100083;4.青海師范大學(xué), 青海 西寧 810008)
藏文各音節(jié)之間由音節(jié)點分隔,但是詞與詞之間卻沒有分隔標(biāo)記,同漢語類似,分詞是藏文信息處理的基礎(chǔ)。藏文分詞的應(yīng)用涉及藏文信息檢索、文語轉(zhuǎn)換、文本校正、機器翻譯、文本分類、自動摘要等多個領(lǐng)域。本文首先回顧藏文分詞的研究歷史,然后在分析現(xiàn)有藏文分詞方法和分詞系統(tǒng)的基礎(chǔ)上,設(shè)計實現(xiàn)一個藏文分詞系統(tǒng)SegT,介紹其中的各主要模塊的核心功能和實現(xiàn)方法,然后通過實驗對系統(tǒng)進行了測試,并對結(jié)果進行了分析。
1999年,扎西次仁在分析藏文分詞中詞表的不確定性、未登錄詞、切分歧義等問題的基礎(chǔ)上,設(shè)計了一個采用最大匹配算法的人機互助藏文分詞和登錄新詞的系統(tǒng)[1],由人監(jiān)控機器分詞的過程,糾正機器犯下的少量錯誤,但是“該系統(tǒng)尚不具備實用分詞的功能”[2]。與此同時,羅秉芬等在500萬字藏語真實文本語料分詞的實踐中歸納出藏文計算機自動分詞的36條基本規(guī)則[3],首次對藏文的分詞規(guī)范進行了研究。2003年,江荻以現(xiàn)代藏語形式語法為基礎(chǔ)提出了藏語組塊分析和塊內(nèi)分詞的方法與過程[4]。同年,陳玉忠等在提出了一個基于格助詞和接續(xù)特征分塊的書面藏文分詞方案,綜合運用藏文字、詞、句等各類形態(tài)特征,在藏文格助詞、接續(xù)特征、字性知識庫以及詞典的支持下,采用逐級定位的確定性算法實現(xiàn)藏文的自動分詞?;诖朔桨笇崿F(xiàn)的分詞系統(tǒng)在500句的測試集上的初步測試結(jié)果表明系統(tǒng)分詞正確率在97%以上,且有不受領(lǐng)域限制、通用性強的特點[5-7]。2006年,祁坤鈺在研究藏語形式邏輯格、語義邏輯格、音勢論等語法理論的基礎(chǔ)上,充分利用藏語上下文語境,在不同藏語句子層面采用不同的處理方法,格切分用于句子結(jié)構(gòu)層面,邊界符判定用于短語切分,模式匹配用于詞塊切分,提出了切分與格框架、標(biāo)注一體化的藏語三級切分體系[8]。2009年,才智杰設(shè)計了“班智達藏文分詞系統(tǒng)”,該系統(tǒng)首先使用四個屬格助詞和四個作格(又稱具格)助詞共八個“特殊格助詞”對藏文進行分塊處理,然后使用采用最大匹配方法進行分詞,并采用“還原法”識別藏文中的緊縮詞[9-10]。同年,孫媛等也在使用格助詞分塊方法的基礎(chǔ)上設(shè)計并實現(xiàn)了藏文分詞系統(tǒng),該系統(tǒng)采用雙向掃描的方法檢測交集型歧義字段,并利用詞頻信息進行消歧[11-14]。江荻、陳玉忠、才讓加、扎西加、關(guān)白、多拉等還對藏文詞語分類體系和標(biāo)注集進行了研究,總體上推進了藏文分詞以及文本分析研究的進展,不再贅述。
總的來說,除了考慮藏文語言文字本身的特性以外,藏文分詞仍然主要采用基于詞典的最大匹配方法,應(yīng)用于漢語分詞的隱馬爾科夫、最大熵、條件隨機場等模型在藏文分詞中還未能得以應(yīng)用,究其原因,主要是因為目前還沒有形成規(guī)模的藏文分詞語料可用,無法對這些模型進行訓(xùn)練。
前述藏文分詞的各種方法,主要有以下特點:一是使用了格助詞及接續(xù)特征進行分塊;二是核心算法大多采用基于詞典的最大匹配方法;三是在最大匹配的過程中考慮緊縮詞的識別。這三點是現(xiàn)有藏文分詞系統(tǒng)共同的特點,只不過各個系統(tǒng)的側(cè)重點有所不同。除此之外,已有系統(tǒng)開始考慮歧義字段的識別和消歧。
我們以上述方法為基礎(chǔ),構(gòu)建一個藏文分詞系統(tǒng),并重點做到以下幾個方面:一是增加分詞詞典的詞匯量并提高詞典的質(zhì)量;二是提高格助詞分塊過程中臨界詞識別算法的效率;三是在緊縮詞識別中采用音節(jié)分析技術(shù),充分利用藏文特性提高緊縮詞識別的正確率;四是檢測交集型歧義字段,并根據(jù)大規(guī)模詞頻統(tǒng)計結(jié)果進行消歧。
下面首先介紹整個系統(tǒng)的流程,然后針對其中的關(guān)鍵問題介紹我們的方法。
整個系統(tǒng)的流程如圖1所示。系統(tǒng)首先對輸入文本進行預(yù)處理,然后分句,再對每一句藏文使用格助詞進行分塊,并在分塊過程中進行臨界詞的識別,在塊內(nèi)使用最大匹配方法進行分詞,并同時進行藏文緊縮詞的識別。分詞可以按照正向最大匹配、逆向最大匹配、雙向最大匹配等三種方式進行,在進行雙向最大匹配之后,檢測兩種分詞結(jié)果的歧義,并進行消歧,最后輸出分詞結(jié)果。
圖1 分詞流程圖
我們從《藏漢大辭典》、《漢藏對照詞典》、《藏漢對照拉薩口語詞典》等多部詞典中提取藏文詞條,并收集整理了普通詞典未收錄但在分詞中應(yīng)該作為一個分詞單位的藏文語言成分,具體請參考藏文分詞規(guī)范相關(guān)的文獻。為了保證分詞詞典的質(zhì)量,我們投入了大量時間進行人工篩選校對,最終形成分詞用藏文詞典,共包含近22萬藏文詞條。
在進行分詞消歧的過程中需要使用詞頻信息,所以如果沒有詞頻信息就不能保證正確分詞;然而,如果沒有正確切分的藏文語料就不能準確統(tǒng)計藏文詞頻。我們采用迭代訓(xùn)練的方法進行詞頻統(tǒng)計來解決此問題。該方法不依賴于所用藏文語料的所屬領(lǐng)域、主題、來源等因素,具有通用性。
圖2 詞頻統(tǒng)計方法與過程圖
如圖2所示,首先對全部藏文語料分別進行正向最大匹配分詞和逆向最大匹配分詞,并分別對分詞結(jié)果進行詞頻統(tǒng)計,然后將兩種方法統(tǒng)計的詞頻(頻次)累加作為初始詞頻。將初始詞頻作為第一輪迭代詞頻,使用雙向最大匹配分詞,檢測切分歧義并利用迭代詞頻進行消歧,這樣對全部藏文語料進行切分,形成第一次切分語料,再對切分語料進行詞頻統(tǒng)計,得到第二輪迭代詞頻。如此循環(huán),直到本輪迭代詞頻與上一輪迭代詞頻的差異小于閾值。最后一輪迭代得到的詞頻信息在經(jīng)過人工校對之后可以近似認為是真實文本的詞頻。
詞頻統(tǒng)計中用到的藏文語料主要包括《鄧小平文選》第二卷、《江澤民文選》第一、二、三卷、《中辦通訊》、《西藏政報》、《西藏通訊》、國家歷年法律法規(guī)、西藏自治區(qū)地方法規(guī)、部分其他書籍以及從部分藏文網(wǎng)站上抓取的網(wǎng)頁。語料總規(guī)模達到35.6M,共計23萬藏文句子,累計詞頻2 850 322。經(jīng)過統(tǒng)計,我們發(fā)現(xiàn)對于詞頻統(tǒng)計所用語料來說,分詞詞典中只有45 740個詞條是有效的(詞頻>0),只占分詞詞典的21%。因在詞頻統(tǒng)計過程中暫未全面考慮語料所用藏文文本的代表性和平衡性等因素,該詞頻數(shù)據(jù)只在一定范圍內(nèi)有效。但我們保證了所有詞的頻次是在對相同規(guī)模的語料進行統(tǒng)計的基礎(chǔ)上得到的,避免使用不同來源的詞頻數(shù)據(jù)帶來的問題。
由于文字處理軟件對藏文的斷行規(guī)則支持不完善,為了符合藏文排版的特性,編輯人員經(jīng)常在每行的行尾人工插入回車換行符。為了不影響分詞結(jié)果,需要將這些多余字符刪除。
在格助詞分塊的過程中,我們采用了文獻[10]中的方法,以八個“特殊格助詞”為標(biāo)志進行分塊。由于部分藏文詞本身就包含了“特殊格助詞”作為子串(文獻[10]中將這些詞稱為“臨界詞”),為了不致錯誤切分,必須識別這些臨界詞。在我們的分詞詞典中,包含臨界詞共計13 936條。采用格助詞分塊的初衷是利用格助詞是藏文天然的詞邊界這一特性,提高了分詞的效率和準確率;而識別臨界詞是為了避免在格助詞分塊過程中錯誤地將詞典中包含的詞切斷。在臨界詞識別過程中如果采用與最大匹配類似的算法,則將違背其初衷。下面介紹我們的方法。
記“特殊格助詞”的集合為:
假設(shè)包含“特殊格助詞”的藏文句子S由n個音節(jié)構(gòu)成,其中第i個音節(jié)是“特殊格助詞”,即
若臨界詞最大長度為m個音節(jié)(假設(shè)n≥2m-1),則臨界詞可能的左邊界和右邊界均有m個,需要查詞典共計(1+2+…+m)=m(m+1)/2次,即使詞典查詢算法的時間復(fù)雜度是O(1)的,整個臨界詞識別算法的時間復(fù)雜度也要達到O(m2),這將與最大匹配方法的時間復(fù)雜度相同,則整個系統(tǒng)的分詞速度與不使用格助詞分塊直接應(yīng)用最大匹配方法相比將不可能有明顯提高。
我們使用Trie樹來降低臨界詞識別算法的時間復(fù)雜度。假設(shè)臨界詞W由n個音節(jié)構(gòu)成,其中第i個音節(jié)是“特殊格助詞”,即:
則其含格助詞前綴是:
含格助詞逆序前綴(下稱“逆序前綴”)是*嚴格地講,藏文音節(jié)有多個字符構(gòu)成,單個音節(jié)的逆序與其自身并不相同,方便起見,此處忽略其差異。:
其含格助詞后綴(下稱“后綴”)是:
對于任意由n個音節(jié)構(gòu)成的藏文句子S:
若正向最大匹配和逆向最大匹配分別給出了不同的分詞結(jié)果WA和WB,分別切分出了n和m個詞(m≠n),即:
則存在k使得Wak≠Wbk,而對于任意的i 圖3 交集型歧義檢測示意圖 記D(i,j)=Len(Wi)+Len(Wi+1)+…+Len(Wj),i 其中Len(Wi)指藏文詞Wi的長度(字符數(shù))。這樣D(i,j)就是從第i個詞到第j個詞的總長度,從k向后掃描,必存在i和j,使得D(k,i)=D(k,j),但對于任意的i′ 在漢語分詞中,分詞消歧一般采用最大概率分詞方法,該方法計算對歧義字段的每種切分方法切分出來的詞串的概率,并取概率值最大的詞串作為切分結(jié)果。但是最大概率分詞算法需要對詞頻統(tǒng)計結(jié)果進行歸一化和數(shù)據(jù)平滑處理。我們借鑒最大概率分詞的思想,設(shè)計了更便于實現(xiàn)的方法。 對于藏文詞典G中的詞條W,記freq(W)為W的詞頻(頻次),定義消歧能力函數(shù)如下: F(W)= 我們認為,對于藏文來說,22萬詞條的詞典規(guī)模是相當(dāng)大的,在消歧過程中應(yīng)該將詞典中不存在的詞(應(yīng)用最大匹配方法此時都是單個音節(jié))和詞頻為零的詞區(qū)別對待,所以在消歧能力函數(shù)中對這兩類詞分別取不同的值。而對于詞頻大于零的詞,我們認為詞頻分別為2 000和1 999的兩個詞的消歧能力差異要小于詞頻分別為20和19的兩個詞的消歧能力差異,為此,我們在消歧能力函數(shù)中使用關(guān)于詞頻的對數(shù)函數(shù)衡量消歧能力。 對于歧義字段的每個候選切分結(jié)果來說,整個詞串的消歧能力F是其每個詞Wi的消歧能力的累加F=∑F(Wi),并取使F最大的切分結(jié)果作為消歧結(jié)果。 下面,我們通過兩個實驗分別考察格助詞分塊對分詞系統(tǒng)的效率影響,以及正向、逆向、雙向匹配消歧等方法的分詞效果。 我們從語料中選擇了包含藏文詞數(shù)最多的六份藏文語料,共包含藏文78 421句,近90萬詞。對每份語料,我們分別直接按正向最大匹配、逆向最大匹配、雙向匹配消歧三種方法進行分詞,并分別啟用格助詞分塊功能,與啟用之前作比較。表1列出了統(tǒng)計結(jié)果,在啟用格助詞分塊功能之前,三種方法對六份語料的分詞過程分別耗時19 500ms、19 516ms、29 829ms,在啟用之后,耗時分別降為16 580ms、16 673ms、24 578ms,分詞速度比之前分別提高了14.97%、14.57%和17.60%。對單個文件的分詞,最多節(jié)省時間達到了26.72%。圖4顯示了格助詞分塊對分詞效率的提高效果。這樣的測試結(jié)果表明,我們設(shè)計的格助詞分塊和臨界詞識別方法對于分詞效率的提高是十分明顯的。 表1 啟用格助詞分塊前后的分詞時間消耗對比 圖4 格助詞分塊對分詞效率的提高 在系統(tǒng)的開發(fā)期間,我們從語料庫中選擇了部分文章作為開發(fā)集,進行了較大規(guī)模的測試,檢查系統(tǒng)中存在的問題,并對所使用的規(guī)則和詞典進行了初步修正。然后,我們從23萬句的藏文語料中隨機抽取了4 000個藏文句子。其中的3 000句作為訓(xùn)練集,使用本系統(tǒng)切分,由人工檢查其中存在的問題,然后對規(guī)則和詞典進行了進一步修正。另外1 000句作為測試集,由系統(tǒng)初步切分,然后經(jīng)過反復(fù)數(shù)次的人工校對,形成標(biāo)準文本,用于系統(tǒng)評測。 我們將采用正確率(P)、召回率(R)、F值三個指標(biāo)對系統(tǒng)進行分詞正確性評測。這三個指標(biāo)的計算方法如下: 測試數(shù)據(jù)如表2所示,系統(tǒng)正確率(P)最高達到了96.987 5%,召回率(R)最高達到了96.911 2%,F(xiàn)值最高達到了96.949 3%。圖5對正向最大匹配、逆向最大匹配、雙向匹配消歧三種方法的分詞效果作了對比,其中逆向最大匹配方法的效果最差,相比之下,正向最大匹配方法的效果提高了約1.8個百分點,雙向匹配消歧的效果最好,比正向最大匹配方法提高了約1.5個百分點,說明我們的歧義檢測和消歧方法是有效的。 表2 分詞正確性測試數(shù)據(jù) 圖5 三種方法的分詞正確性對比 圖6 使用格助詞分塊前后的切分正確率對比 在測試中,使用雙向匹配消歧方法共有421個詞切分錯誤。其中有306個由交集型歧義引起,占72.68%,有71個由組合型歧義引起,占16.86%,有28個由未登錄詞引起,占6.65%,另有少部分錯誤由其它因素引起。在統(tǒng)計分詞錯誤的過程中我們發(fā)現(xiàn),如果繼續(xù)對詞典進行修正,系統(tǒng)的正確率還有進一步提高的可能。 在分析現(xiàn)有藏文分詞方法的基礎(chǔ)上,我們設(shè)計實現(xiàn)了一個藏文分詞系統(tǒng)SegT,該系統(tǒng)使用格助詞分塊和最大匹配方法進行分詞,采用雙向切分檢測分詞歧義并使用預(yù)先統(tǒng)計的詞頻信息進行消歧。實驗數(shù)據(jù)顯示,本文所設(shè)計的格助詞分塊和快速臨界詞識別方法可以將分詞速度提高15%左右。 由于最大匹配分詞方法對詞典的依賴性非常大,我們在分詞詞典整理工作上投入了大量的時間。最終在1 000句的測試集上進行了系統(tǒng)評測,系統(tǒng)的分詞正確率為96.98%,基本達到了實用水平。我們同時測試了格助詞分塊對于分詞結(jié)果的影響,測試數(shù)據(jù)表明,格助詞分塊對于分詞正確率沒有明顯提高或者降低。 本文所用分詞詞典和測試語料由西藏大學(xué)工學(xué)院楊毛卓瑪、官卻多杰、索南扎西人工校對,作者在此表示衷心的感謝! [1]扎西次仁.一個人機互助的藏文分詞和詞登錄系統(tǒng)的設(shè)計[C]//中國少數(shù)民族語言文字現(xiàn)代化文集,北京:民族出版社,1999. [2]江荻.藏語文本信息處理的歷程與進展[C]//中文信息處理前沿進展——中國中文信息學(xué)會二十五周年學(xué)術(shù)會議論文集.北京:清華大學(xué)出版社,2006:83-97. [3]羅秉芬,江荻.藏文計算機自動分詞的基本規(guī)則[C]//中國少數(shù)民族語言文字現(xiàn)代化文集,北京:民族出版社,1999. [4]江荻.現(xiàn)代藏語組塊分詞的方法與過程[J].民族語文,2003,(4):31-39. [5]陳玉忠,俞士汶.藏文信息處理技術(shù)的研究現(xiàn)狀與展望[J].中國藏學(xué),2003,(4):97-107. [6]陳玉忠,李保利,俞士汶,等.基于格助詞和接續(xù)特征的藏文自動分詞方案[J].語言文字應(yīng)用,2003,(1):75-82. [7]陳玉忠,李保利,俞士汶.藏文自動分詞系統(tǒng)的設(shè)計與實現(xiàn)[J].中文信息學(xué)報,2003,17(3):15-20. [8]祁坤鈺.信息處理用藏文自動分詞研究[J].西北民族大學(xué)學(xué)報(哲學(xué)社會科學(xué)版),2006,(4):92-97. [9]才智杰.班智達藏文自動分詞系統(tǒng)的設(shè)計[C]//中國少數(shù)民族語言文字信息處理研究與進展——第十二屆中國少數(shù)民族語言文字信息處理學(xué)術(shù)研討會論文集,2009. [10]才智杰.藏文自動分詞系統(tǒng)中緊縮詞的識別[J].中文信息學(xué)報,2009,23(1):35-37. [11]孫媛,羅桑強巴,楊銳,等.藏語自動分詞方案的設(shè)計[C]//中國少數(shù)民族語言文字信息處理研究與進展——第十二屆中國少數(shù)民族語言文字信息處理學(xué)術(shù)研討會論文集,2009. [12]Yuan Sun,Zhijuan Wang,Xiaobing Zhao,et al.Design of a Tibetan Automatic Word Segmentation Scheme[C]//Proceedings of 2009 1st IEEE International Conference on Information Engineering and Computer Science,2009:1-6. [13]孫媛,羅桑強巴,楊銳,等.藏語交集型歧義字段切分方法研究[C]//中國少數(shù)民族語言文字信息處理研究與進展——第十二屆中國少數(shù)民族語言文字信息處理學(xué)術(shù)研討會論文集,2009. [14]Yuan Sun,Xiaodong Yan,Xiaobing Zhao,et al.A resolution of overlapping ambiguity in Tibetan word segmentation[C]//Proceedings of 2010 3rd International Conference on Computer Science and Information Technology,2010.222-225. [15]胡書津.簡明藏文文法[M].昆明:云南民族出版社,2000.3.8 分詞消歧
4 實驗方法與結(jié)果
4.1 格助詞分塊的效率
4.2 分詞正確性評測
5 結(jié)束語
致謝