甘秋云
(1.福州海峽職業(yè)技術(shù)學(xué)院,福建 福州 350014;2.福建工程學(xué)院 國脈信息院,福建 福州 350014)
對于以漢語為母語的我國來說,中文信息處理技術(shù)已經(jīng)在我國信息化建設(shè)中占據(jù)了一個非常重要的地位。據(jù)統(tǒng)計,在信息領(lǐng)域中80%以上的信息是以語言文字為載體的,這些信息的自動輸入和輸出、文本的??焙头诸悺⑿畔⒌奶崛『蜋z索以及語言翻譯等語言工程,都是我國信息化建設(shè)的重要基礎(chǔ)。在眾多中文信息處理技術(shù)中,中文分詞技術(shù)是關(guān)鍵技術(shù),同時也是中文信息處理的基礎(chǔ)。
中文分詞既是中文信息處理的關(guān)鍵,也是中文信息處理的基礎(chǔ)。對于中文分詞可以通俗地指由機器在中文文本的詞與詞之間自動加上空格,以實現(xiàn)分詞的目的。
中文信息處理主要包括了字、詞、短語、句子、篇章等多層面的信息加工處理任務(wù)。當(dāng)前漢語信息處理的主要任務(wù)已從“字處理”轉(zhuǎn)移到“詞處理”。由于中文文本是按詞連寫的,詞間無間隙,因而在中文文本處理中,首先遇到的問題是詞的切分問題,也就是中文自動分詞,例如將“學(xué)習(xí)信息科學(xué)”切分成“學(xué)習(xí)/信息/科學(xué)”。
在20世紀80年代初期,自動分詞技術(shù)的研究就受到重視并不斷發(fā)展,因此許多分詞模型和軟件也不斷問世。近年來,隨著國民經(jīng)濟信息化的不斷發(fā)展以及 Internet的普及應(yīng)用,在中文信息處理的廣泛應(yīng)用中,實現(xiàn)漢語詞典和語料庫等中文資源的共享和復(fù)用顯得尤為重要,因此對自動分詞的要求也越來越高,自動分詞已經(jīng)成為中文信息處理的一個前沿課題[1]。
1.2.1 分詞規(guī)范問題[2]
漢語詞的概念。對于分詞結(jié)果是否正確需要有一個通用、權(quán)威的分詞標(biāo)準來衡量。分詞標(biāo)準的問題實際上是漢語詞與語素、詞與詞組的界定問題,這是漢語語法的一個基本、長期的問題。主要包括核心詞表問題、詞的變形結(jié)構(gòu)問題、詞綴的問題等。
不同應(yīng)用對詞的切分規(guī)范要求不同。漢語自動分詞規(guī)范必須支持各種不同目標(biāo)的應(yīng)用,但不同目標(biāo)的應(yīng)用對詞的要求是不同的,甚至?xí)忻?。如,以詞為單位的鍵盤輸入系統(tǒng),為了提高輸入速度,一些互現(xiàn)頻率高的相互鄰接的幾個字也常作為輸入單位,如“這是”、“就是”等。
1.2.2 分詞算法的困難
1.2.2.1 分詞與理解的先后
由于計算機理解文本的前提是識別出詞、獲得詞的各項信息,即它只能在對輸入文本尚無理解的條件下進行分詞。因此它無法像人那樣在閱讀漢語文章時邊理解邊分詞,而只能是先分詞后理解,這就會造成邏輯上的兩難:分詞要以理解為前提,而理解又是以分詞為前提。所以任何分詞系統(tǒng)都不可能企求百分之百的切分正確率。
1.2.2.2 切分歧義的消除[3]
當(dāng)語言存在歧義時,我們一般是通過上下文理解來選擇正確的詞語。但是機器很難正確判斷該如何切分。例如“中國人民”,到底是切分成“中國人/民”還是切分成“中國/人民”,就需要想辦法正確選擇。
對于歧義而言,我們按照它的結(jié)構(gòu)可以分為兩種類型:交叉歧義(交集型歧義)和覆蓋歧義(組合型歧義)。
交叉歧義指的是,字串“ABC”,如果“AB”、“BC”分別屬于兩個不同的詞,既可以切分成“A/BC”,也可以切分成“AB/C”,則稱“ABC”存在交叉歧義。例如字串“組合成”,“組合”和“合成”都是一個詞,他們就存在交叉歧義。
覆蓋歧義,也稱為組合歧義,對于字串“AB”,如果“AB”是一個詞,“AB”其中的子串“A”和“B”也是一個詞,則稱“AB”存在覆蓋歧義。例如字串“才能”,“才能”是一個詞,“才”和“能”也可以單獨成詞。例如“他/來/了/,/問題/才/能/解決”,“他/的/才能/是/有目共睹/的”,這時候就存在覆蓋歧義。
歧義的消除一般需要提供更多的語法和語義信息,而且有時候要結(jié)合上下文語境理解。切分過程中,當(dāng)出現(xiàn)人工也無法判斷時,就必須要結(jié)合更多的上下文才能理解。此時要求計算機自動識別,就更加困難了。
1.2.2.3 未登錄詞識別[4]
未登錄詞指的是詞典中沒有收錄的詞語。主要指各種命名實體和新詞。另外,一些縮略語和術(shù)語也屬于未登錄詞的范圍。
對于有些命名實體,比如數(shù)詞、時間等具有較強的規(guī)律性,相對容易識別。有些比如人名、地名,也有自己的常用詞,采用一些規(guī)則和統(tǒng)計信息,也能識別大部分。但是對于新詞來說,則很難找出什么規(guī)律。隨著社會的發(fā)展,各種新詞層出不窮,很多新詞的形成在語法語義上是完全沒有規(guī)律的,例如“非典”、“醬紫”等。而且很多未登錄詞和常用詞混在一起,容易形成歧義。
1.2.2.4 先識別已知詞還是先識別未登錄詞
在目前的分詞算法中,通常是將已知詞識別和未登錄詞識別分作兩個部分。這樣就產(chǎn)生了一個問題:先識別哪個部分更有利。
如果先識別未登錄詞,同樣也可能導(dǎo)致已知詞識別錯誤,例如“勝利/取決/于勇/氣”。反之,如果先識別已知詞,會導(dǎo)致未登錄詞識別錯誤,例如“內(nèi)塔尼亞/胡說”。
目前來說,對于哪一步識別在先更好一些,研究者們并沒有一個確定的結(jié)論。
從1983年第一個實用分詞系統(tǒng)CDWS的誕生到現(xiàn)在,關(guān)于漢語分詞的算法大致可以分為四大類。
這類算法在切分時用待切分的字符串去匹配詞典中的詞條,如果匹配成功,則切分成一個詞。目前最常用的是基于詞典的字符串匹配方法,主要包括最大匹配、全切分、最短路徑等。
2.1.1 最大匹配法
該方法又可分為正向最大匹配、反向最大匹配和雙向最大匹配三種,主要是根據(jù)取詞的方向來決定的。正向最大匹配從左到右每次取最長詞,反向最大匹配則每次是從右到左取最長詞,得到切分結(jié)果。雙向匹配則是進行正向、反向匹配,然后對于兩種匹配結(jié)果不同的地方再利用一定的規(guī)則進行消歧。這種方法實現(xiàn)簡單,而且切分速度較快。但是,當(dāng)出現(xiàn)覆蓋歧義的時候,最大匹配法是無法發(fā)現(xiàn)的,對于某些復(fù)雜的交叉歧義也會遺漏。
2.1.2 全切分法
全切分算法是利用詞典匹配,獲得一個句子所有可能的切分結(jié)果。當(dāng)句子長度增加時,全切分的結(jié)果數(shù)也隨之增加,且呈指數(shù)增長,對于比較長且包含較多歧義的句子,往往要經(jīng)過很長的時間才能遍歷完所有的切分路徑。因此該方法的時間開銷非常大,無論是在統(tǒng)計語言模型訓(xùn)練還是在全文檢索、機器翻譯等實際應(yīng)用中都是難以接受的。
2.1.3 最短路徑法
最短路徑方法是一種動態(tài)規(guī)劃算法,它的基本思想是在詞圖上選擇一條詞數(shù)最少的路徑,節(jié)省了時間開銷,且它相對優(yōu)于單向最大匹配方法,但是這種方法忽略了所有覆蓋歧義,也無法解決大部分交叉歧義問題。
這一類方法是目前分詞算法中比較常用的方法,主要是從大規(guī)模語料庫中統(tǒng)計得到各種概率信息來指導(dǎo)字符串的切分?;诮y(tǒng)計的方法可以借用許多比較成熟的概率模型來實現(xiàn)切分,不需要人工維護規(guī)則和復(fù)雜的語言學(xué)知識,擴展性較好。除了最常見的詞頻統(tǒng)計信息以外,目前常用的幾種其它概率模型主要包括有:
2.2.1 N元語法模型和隱馬爾可夫模型
在N元語法模型中,一個句子可以看成一個連續(xù)的字符串序列,即可以是單字序列,也可以是詞序列。N元語法假設(shè)一個單詞出現(xiàn)的概率分布只與單詞前面的 1-N 個單詞有關(guān),與更早出現(xiàn)的單詞無關(guān)。若一個句子的出現(xiàn)概率用 P (W)表示[6]。則
可以看出,N元語法模型認為產(chǎn)生語句W的概率是產(chǎn)生其第一個字的概率,乘以在給定第一個字的條件下產(chǎn)生第二個字的概率,乘以在給定前兩個字的條件下產(chǎn)生第三個字的概率,……乘以在給定前 1-n 個字的條件下產(chǎn)生第n個字的概率。產(chǎn)生第i個字的概率是由已產(chǎn)生的 1-i 個字決定的。
利用大規(guī)模的語料庫和成熟的N元語法模型,使用三元語法,在不考慮未定義詞的情況下,就可以將切分的正確率提高到98%以上[7]。
隱馬爾可夫模型是N元語法模型的一種,已廣泛地應(yīng)用于自然語言處理領(lǐng)域中,比如語音識別、詞性標(biāo)注等等。在隱馬爾可夫模型中,任一隨機事件都有一個狀態(tài)序列和一個觀察值序列隱馬爾可夫模型可以形式化為一個五元組),,,,(πBAOS,其中:
隱馬爾可夫模型很少單獨使用,通常是和詞性標(biāo)注結(jié)合在一起用,它的作用類似于譯碼。在序列分析中,從序列中的每個觀察值去推測它可能屬于哪個狀態(tài)。
2.2.2 互信息
互信息用來表示兩個字之間結(jié)合的強度,其公式為:
MI越大,表示兩個字之間的結(jié)合越緊密。反之,斷開的可能性越大。當(dāng)x與y關(guān)系強時,0),(≥yxMI;當(dāng)x與y關(guān)系弱時,0),(≈yxMI;而當(dāng)0),(<yxMI時,x與y稱為“互補分布”[8]。
目前大多數(shù)的分詞算法都是采用規(guī)則和統(tǒng)計相結(jié)合的方法,主要是利用詞典進行初切分,然后用其它的概率統(tǒng)計方法和簡單規(guī)則進行消歧和未登錄詞識別。這樣不僅可以降低統(tǒng)計對語料庫的依賴性,充分利用已有的詞法信息,還能彌補規(guī)則方法的不足之處。
人工智能法,又稱理解分詞法,主要是對信息進行智能化處理的一種模式。主要有兩種處理方式:一種是基于生理學(xué)的模擬方法,例如神經(jīng)網(wǎng)絡(luò),即在模擬人腦的神經(jīng)系統(tǒng)機構(gòu)的運作機制來實現(xiàn)一定的功能;另一種是基于心理學(xué)的符號處理方法,例如專家系統(tǒng),即通過模擬人腦的功能,構(gòu)造推理網(wǎng)絡(luò),經(jīng)過符號轉(zhuǎn)換,從而可以進行解釋性處理。以上兩種思路是近年來人工智能領(lǐng)域研究的熱點問題,應(yīng)用到分詞方法上,產(chǎn)生了專家系統(tǒng)分詞法和神經(jīng)網(wǎng)絡(luò)分詞法。
每一種分詞算法都有各自的優(yōu)缺點。由于漢語語言知識的籠統(tǒng)和復(fù)雜性,對于將各種語言信息組織成機器可直接讀取的形式具有一定的難度,目前基于人工智能的分詞系統(tǒng)還在試驗階段中。
[1] 文孝庭.漢語自動分詞研究進展[J].圖書情報,2005(5):54-62.
[2] 張春霞,郝天永.漢語自動分詞的研究現(xiàn)狀與困難[J].系統(tǒng)仿真學(xué)報,2005(17):138-147.
[3] 孫斌.切分歧義字段的綜合性分級處理方法.北京大學(xué)計算語言學(xué)研究所討論班[EB/OL].http://ccl.pku.edu.cn/doubtfire/nlp/Lexical_Analysis/Word_Segmentation_Tag ging/Chinese_Word_Seg_Tag/seg_tag_BSWEN.htm,199 9-4-13.
[4] 馮玉春,宋濤瀚.Web中文文本分詞技術(shù)研究[J].計算機應(yīng)用,2004,24(4):134-136.
[5] 劉件,魏程.中文分詞算法研究[J].微計算機應(yīng)用,2008,29(8):12-16.
[6] 龍樹全,趙正文,唐華.中文分詞算法概述[A].電腦知識與技術(shù),2009,5(10):2605-2607.
[7] 高山,張艷,徐波等.基于三元統(tǒng)計模型的漢語分詞標(biāo)注一體化研究[A].全國第六屆計算機語言學(xué)聯(lián)合學(xué)術(shù)會議(JSCL-2001)[C].太原:山西大學(xué),2001.
[8] 張磊,張代遠.中文分詞算法解析[A].電腦知識與技術(shù),2009,5(1):192-193.