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