NLP之漢語自動分詞
漢語自動分詞就是讓計算機識別出漢語文字中的‘詞’,在詞與詞之間自動加上空格或其他邊界標記。
目錄
一.漢語自動分詞中的基本問題
漢語自動分詞的主要困難來自如下三個方面:分詞規範、歧義切分、未登入詞的識別
1.1分詞規範問題
“詞是什麼”(詞的抽象定義)及“什麼是詞”(詞的具體界定),這兩個基本問題迄今拿不出一個公認的、具有權威性的詞表來。
主要困難出自兩個方面:一方面是單字詞與詞素之間的劃界,另一方面是詞與短語(片語)的劃界。
此外,對於漢語“詞”的認識,普通說話人的語感與語言學家的標準也有較大的差異。
從計算的嚴格意義上說,自動分詞是一個沒有明確定義的問題 。
2.2歧義切分問題
歧義欄位在漢語文字中普遍存在。
樑南元最早對歧義欄位進行了比較系統的考察。他定義了以下兩種基本的切分歧義型別。
1.交集型切分歧義
漢字串ABC稱作交集型切分歧義,如果滿足AB、BC同時為詞(A、B、C分別為漢字串)。此時漢字串B稱作交集串。
例如:大學生、結合成……
為了區分交集型歧義欄位的複雜度,我們引入鏈長的概念。
鏈長: 一個交集型切分歧義所擁有的交集串的集合稱為交集串鏈,它的個數稱為鏈長。
例如,交集型切分歧義“結合成分子”、“結合”、“合成”、“成分”、“分子”均成詞,交集串的集合為{“合”,“成”,“分”},因此,鏈長為3。類似地,“為人民工作”交集型歧義欄位的鏈長為3,“中國產品質量”欄位的鏈長為4,“部分居民生活水平”欄位的鏈長為6。
2.組合型切分歧義
漢字串AB稱作多義組合型切分歧義,如果滿足A、B、AB同時為詞。
例如,多義組合型切分歧義:“起身”
在如下兩個例子中,“起身”分別有兩種不同的切分:(a)他站│起 │身│來。(b)他明天│起身│去北京。
類似地,“將來”、“現在”、“才能”、“學生會”等,都是組合型歧義欄位。
漢語詞語邊界的歧義切分問題比較複雜,處理這類問題時往往需要進行復雜的上下文語義分析,甚至韻律分析,包括語氣、重音、停頓等。
3.未登入詞問題
未登入詞又稱為生詞(unknown word),可以有兩種解釋:一是指已有的詞表中沒有收錄的詞;二是指已有的訓練語料中未曾出現過的詞。在第二種含義下,未登入詞又稱為集外詞(out of vocabulary, OOV),即訓練集以外的詞。
通常情況下將OOV與未登入詞看作一回事。
未登入詞可以粗略劃分為如下幾種型別:
①新出現的普通詞彙,如部落格、房奴、給力等,尤其在網路用語中這種詞彙層出不窮。
②專有名詞(proper names)。專有名詞在早期主要是指人名、地名和組織機構名這三類實體名稱。1996年第六屆資訊理解會議對此進行了擴充套件,首次提出了命名實體(named entity)的概念,新增了時間和數字表達(日期、時刻、時段、數量值、百分比、序數、貨幣數量等),並且地名被進一步細化為城市名、州(省)名和國家名稱等。
③專業名詞和研究領域名稱。特定領域的專業名詞和新出現的研究領域名稱也是造成生詞的原因之一,如三聚氰胺、蘇丹紅、禽流感、堰塞湖等。
④其他專用名詞,如新出現的產品名,電影、書籍等文藝作品的名稱,等等。
根據黃昌寧等人(2003)的統計,在真實文字的切分中,未登入詞總數的大約九成是專有名詞(人名、地名、組織機構名),其餘的為新詞(包括專業術語)。當然,這個統計比例與語料所屬的領域密切相關。
對於大規模真實文字來說,未登入詞對於分詞精度的影響遠遠超過了歧義切分。在漢語分詞系統中對於未登入詞的處理,尤其是對命名實體的處理,遠比對切分歧義詞的處理重要得多。
在20世紀八九十年代和21世紀初期,針對漢語分詞問題,其一般做法是:首先依據從各類命名實體庫中總結出來的統計知識(如人名姓氏用字及其頻度)和人工歸納出來的某些命名實體結構規則,在輸入句子中猜測可能成為命名實體的漢字串並給出其置信度,然後利用對該類命名實體具有標識意義的緊鄰上下文資訊(如稱謂、組織機構標識詞等),以及全域性統計量和區域性統計量,作進一步鑑定。
實踐中,外國譯名的識別效果最好,中國人名次之,中國地名再次之,組織機構名最差,而任務本身的難度實質上也正是循這個順序由小到大。未登入詞的識別面臨很多困難。一方面,很多未登入詞都是由普通詞彙構成的,長度不定,也沒有明顯的邊界標誌詞;另一方面,有些專有名詞的首詞和尾詞可能與上下文中的其他詞彙存在交集型歧義切分。另外,在漢語文字中夾雜著其他語言的字元或符號,也是常見的事情。
二.漢語分詞方法
劉源等(1994)曾簡要介紹了16種不同的分詞方法,包括正向最大匹配法(forward maximum matching method, FMM)、逆向最大匹配法(backward maximum matching method, BMM)、雙向掃描法、逐詞遍歷法等,這些方法基本上都是在20世紀80年代或者更早的時候提出來的。由於這些分詞方法大多數都是基於詞表進行的,因此,一般統稱為基於詞表的分詞方法。
隨著統計方法的迅速發展,人們又提出了若干基於統計模型(包括基於HMM和n元語法)的分詞方法,以及規則方法與統計方法相結合的分詞技術,使漢語分詞問題得到了更加深入的研究。
接下來主要介紹幾種效能較好的基於統計模型的分詞方法,並對這些分詞技術進行簡要的比較。
1.N-最短路徑方法
考慮到漢語自動分詞中存在切分歧義消除和未登入詞識別兩個主要問題,因此,有專家將分詞過程分成兩個階段:首先採用切分演算法對句子詞語進行初步切分,得到一個相對最好的粗分結果,然後,再進行歧義排除和未登入詞識別。當然,粗切分結果的準確性與包容性(即必須涵蓋正確結果)直接影響後續的歧義排除和未登入詞識別模組的效果,並最終影響整個分詞系統的正確率和召回率。
張華平等(2002)提出了旨在提高召回率併兼顧準確率的詞語粗分模型——基於N-最短路徑方法的漢語詞語粗分模型。
這種方法的基本思想是:根據詞典,找出字串中所有可能的詞,構造詞語切分有向無環圖。每個詞對應圖中的一條有向邊,並賦給相應的邊長(權值)。然後針對該切分圖,在起點到終點的所有路徑中,求出長度值按嚴格升序排列(任何兩個不同位置上
的值一定不等,下同)依次為第1、第2、…、第i、…、第N(N≥1)的路徑集合作為相應的粗分結果集。如果兩條或兩條以上路徑長度相等,那麼,它們的長度並列第i,都要列入粗分結果集,而且不影響其他路的排列序號,最後的粗分結果集合大小大於或等於N。
考慮到切分有向無環圖G中每條邊邊長(或權重)的影響,張華平等人又將該方法分為非統計粗分模型和統計粗分模型兩種。所謂的非統計粗分模型即假定切分有向無環圖G中所有詞的權重都是對等的,即每個詞對應的邊長均設為1。
非統計粗分模型:
假設NSP為結點V0到Vn的前N個最短路徑的集合,RS是最終的N-最短路徑粗分結果集。那麼,N-最短路徑方法將詞語粗分問題轉化為如何求解有向無環圖G的集合NSP。
求解有向無環圖G的集合NSP可以採取貪心技術,張華平等使用的演算法是基於求解單源最短路徑問題的Dijkstra貪心演算法的一種簡單擴充套件。改進之處在於:每個結點處記錄N個最短路徑值,並記錄相應路徑上當前結點的前驅。如果同一長度對應多條路徑,必須同時記錄這些路徑上當前結點的前驅,最後通過回溯即可求出NSP。
例子:
以句子“他說的確實在理”為例,給出了3-最短路徑的求解過程。
圖中,虛線是回溯出的是第一條最短路徑,對應的粗分結果為:“他/說/的/確實/在理/”,Table(2),Table(3)…Table(7)分別為結點2、3、…、7對應的資訊記錄表,Table(0)、 Table(1)的資訊記錄表沒有給出。每個結點的資訊記錄表裡的編號為路徑不同長度的編號,按由小到大的順序排列,編號最大不超過N。如Table(5)表示從結點0出發到達結點5有兩條長度為4的路徑(分別為0-1-2-4-5和0-1-2-3-5)和一條長度為5的路徑(0-1-2-3-4-5)。前驅(i, j)表示沿著當前路徑到達當前結點的最後一條邊的出發結點為i,即當前結點的前一個結點為i,相應的邊為結點i的資訊記錄表中編號為j的路徑。如果j=0,表示沒有其他候選的路徑。如結點7對應的資訊記錄表Table(7)中編號為1的路徑前驅(5,1)表示前一條邊為結點5的資訊表中第1條路徑。類似地,Table(5)中的前驅(3,1)表示前驅為結點3的資訊記錄表中的第1條路徑。Table(3)中的(2,0)表示前驅邊的出發點為結點2,沒有其他候選路徑。資訊記錄表為系統回溯找出所有可選路徑提供了依據。
Dijkstra演算法的時間複雜度為O(n^2),它求的是圖中所有點到單源點的最短路徑,而應用於切分有向圖時,有兩個本質區別:首先有向邊的源點編號均小於終點編號,即所有邊的方向一致;其次,演算法最終求解的是有向圖首尾結點之間的N-最短路徑。因此,在該演算法中,執行時間與n(字串長度)、N(最短路徑數)以及某個字作為詞末端字的平均次數k(等於總詞數除以所有詞末端字的總數,對應的是切分圖中結點入度的平均值)成正比。所以,整個演算法的時間複雜度是O(n×N×k)。
考慮到在非統計模型構建粗切分有向無環圖的過程中,給每個詞對應邊的長度賦值為1。隨著字串長度n和最短路徑數N的增大,長度相同的路徑數急劇增加,同時粗切分結果數量必然上升。這樣,大量的切分結果對後期處理以及整個分詞系統性能的提高非常不利。因此,又給出了一種基於統計資訊的粗分模型。
假定一個詞串W經過通道傳送,由於噪聲干擾而丟失了詞界的切分標誌,到輸出端便成了漢字串C。N-最短路徑方法詞語粗分模型可以相應地改進為:求N個候選切分W,使概率P(W|C)為前N個最大值:其中,P(C)是漢字串的概率,它是一個常數,不必考慮。從詞串恢復到漢字串的概率P(C|W)=1(只有唯一的一種方式)。
因此,粗分的目標就是確定P(W)最大的N種切分結果。為了簡化計算,張華平等人採用一元統計模型。假設W=w1w2…wm是字串S=c1c2…cn的一種切分結果。wi是一個詞,P(wi)表示詞wi出現的概率,在大規模語料訓練的基礎上通過最大似然估計方法求得。切分W的概率為:
為了處理方便,令P*(W)=-lnP(W)=這樣,-lnP(wi)就可以看作是詞wi在切分有向無環圖中對應的邊長(做適當的資料平滑處理)。於是,求式(7-2)的最大值問題轉化為求P*(W)的最小值問題。
針對修改了邊長後的切分有向無環圖G*,直接使用非統計粗分模型的求解演算法,就可以獲得問題的最終解。
2.基於詞的n元語法模型的分詞方法
基於詞的n元文法模型是一個典型的生成式模型,早期很多統計分詞方法均以它為基本模型,然後配合其他未登入詞識別模組進行擴充套件。其基本思想是:首先根據詞典(可以是從訓練語料中抽取出來的詞典,也可以是外部詞典)對句子進行簡單匹配,找出所有可能的詞典詞,然後,將它們和所有單個字作為結點,構造的n元的切分詞圖,圖中的結點表示可能的詞候選,邊表示路徑,邊上的n元概率表示代價,最後利用相關搜尋演算法(如Viterbi演算法)從圖中找到代價最小的路徑作為最後的分詞結果。
以輸入句子“研究生物學”為例,下圖給出了基於二元文法的切分詞圖。
於未登入詞的識別是漢語分詞過程中的關鍵問題之一,因此,很多家認為未登入詞的識別與歧義切分應該是一體化處理的過程,而不是相互分離的。1996曾提出了基於加權的有限狀態轉換機模型與未登入詞識別一體化切分的實現方法。受這種方法的啟發,J.Gao等人2003提出了基於改進的信源通道模型的分詞方法。現在簡要介紹一下這種基於統計語言模型的分詞方法。
為了給自動分詞任務一個明確的定義,J.Gao等人對文字中的詞給出了一個可操作的定義,把漢語詞定義成下列4類:
(1)待切分文字中能與分詞詞表中任意一個詞相匹配的欄位為一個詞。
(2)文字中任意一個經詞法派生出來的詞或短語為一個詞,如重疊形式(高高興興,說說話、天天)、字首派生(非黨員、副部長)、字尾派生(全面性、朋友們)、中綴派生(看得出、看不出)、動詞加時態助詞(克服了、蠶食著)、動詞加趨向動詞(走出、走出來)、動詞的分離形式(長度不超過3個字,如:洗了澡、洗過澡),等等。
(3)文字中被明確定義的任意一個實體名詞(如:日期、時間、貨幣、百分數、溫度、長度、面積、體積、重量、地址、電話號碼、傳真號碼、電子郵件地址等)是一個詞。
(4)文字中任意一個專有名詞(人名、地名、機構名)是一個詞。
在這個定義中沒有考慮文字中的新詞問題。
假設隨機變數S為一個漢字序列,W是S上所有可能切分出來的詞序列,分詞過程應該是求解使條件概率P(W|S)最大的切分出來的詞序列W*,即
根據貝葉斯公式,式(7-3)改寫為
由於分母為歸一化因子,因此,
為了把4類詞納入同一個統計語言模型框架,黃昌寧等分別把專有名詞的人名(PN)、地名(LN)、機構名(ON)各作為一類,實體名詞中的日期(dat)、時間(tim)、百分數(per)、貨幣(mon)等作為一類處理,簡稱為實體名,對詞法派生詞(MW)和詞表詞(LW)則每個詞單獨作為一類。這樣,按表7-2可以把一個可能的詞序列W轉換成一個可能的詞類序列C=c1c2…cN,那麼,式(7-5)可被改寫成式(7-6):
其中,P(C)就是大家熟悉的語言模型,我們不妨將P(S|C)稱為生成模型。
根據之前中對語言模型的介紹,如果P(C)採用三元語法,可以表示為:
三元模型的引數可以通過最大似然估計在一個帶有詞類別標記的訓練語料上計算,並採用回退平滑演算法解決資料稀疏問題。
生成模型在滿足獨立性假設的條件下,可以近似為:
式(7-8)認為,任意一個詞類ci生成漢字串si的概率只與ci自身有關,而與其上下文無關。例如,如果“教授”是詞表詞,則P(si=教授|ci=LW)=1
黃昌寧等介紹的實驗系統中,詞表含有98668個詞條,詞法派生詞表收入59285條派生詞。訓練語料由88MB新聞文字構成。
模型的訓練由以下三步組成:
①在上述兩個詞表的基礎上,用正向最大匹配法(FMM)切分訓練語料,專有名詞通過一個專門模組標註,實體名詞通過相應的規則和有限狀態自動機標註,由此產生一個帶詞類別標記的初始語料;
②用帶詞類別標記的初始語料,採用最大似然估計方法估計統計語言模型的概率引數;
③採用得到的語言模型對訓練語料重新進行切分和標註(見式(7-6)~式(7-8)),得到一個重新整理的訓練語料。重複第②、③步,直到系統性能不再有明顯的提高為止。
另外,對於交集型歧義欄位(OAS),該方法的處理措施是:首先通過最大匹配方法(包括正向最大匹配和反向最大匹配)檢測出這些欄位,然後,用一個特定的類〈GAP〉取代全體OAS,依次來訓練語言模型P(C)。類〈GAP〉的生成模型的引數通過消歧規則或機器學習方法來估計。
對於組合型歧義欄位(CAS),該方法通過對訓練語料的統計,選出最高頻、且其切分分佈比較均衡的70條CAS,用機器學習方法為每一條CAS訓練一個二值分類器,再用這些分類器在訓練語料中消解這些CAS的歧義。
3.由字構詞的漢語分詞方法
字構詞的漢語分詞方法的思想並不複雜,它是將分詞過程看作字的分類問題。在以往的分詞方法中,無論是基於規則的方法還是基於統計的方法,一般都依賴於一個事先編制的詞表,自動分詞過程就是通過查詞表作出詞語切分的決策。與此相反,由字構詞的分詞方法認為每個字在構造一個特定的詞語時都佔據著一個確定的構詞位置(即詞位)。假如規定每個字只有4個詞位:詞首(B)、詞中(M)、詞尾(E)和單獨成詞(S)。
這裡所說的“字”不僅限於漢字,也可以指標點符號、外文字母、注音符號和阿拉伯數字等任何可能出現在漢語文字中的文字元號,所有這些字元都是由字構詞的基本單元。
分詞結果表示成字標註形式之後,分詞問題就變成了序列標註問題。對於一個含有n個字的漢語句子c1c2…cn,可以用下面的公式來描述分詞原理:
其中,tk表示第k個字的詞位,即tk∈{B, M, E, S}。
通常情況下,使用基於字的判別式模型時需要在當前字的上下文中開一個w個字的視窗(一般取w=5,前後各兩個字),在這個窗口裡抽取分詞相關的特徵。常用的特徵模板有:
(a) ck(k=-2,-1,0,1,2)
(b) ckck+1(k=-2,-1,0,1)
(c) c-1c1
(d) T(c-2)T(c-1)T(c0)T(c1)T(c2)
前面三類特徵模板(a)~(c)是視窗內的字及其組合特徵,T(ci)是指字ci的字元類別,例如,阿拉伯數字,中文數字,標點符號,英文字母等等。假設當前字是“北京奧運會”中的“奧”字,那麼模板(a)將生成以下特徵:c-2=北,c-1=京,c0=奧,c1=運,c2=會;模板(b):c-2c-1=北京,c-1c0=京奧,c0c1=奧運,c1c2=運會;模板(c):c-1c1=京運。模板(d)與定義的字元類別資訊有關,主要是為了處理數字、標點符號和英文字元等有明顯特徵的詞。有了這些特徵以後,我們就可以利用常用的判別式模型,如最大熵、條件隨機場、支援向量機和感知機(感知器)等進行引數訓練,然後利用解碼演算法找到最優的切分結果。
由字構詞的分詞技術的重要優勢在於,它能夠平衡地看待詞表詞和未登入詞的識別問題,文字中的詞表詞和未登入詞都是用統一的字標註過程來實現的,分詞過程成為字重組的簡單過程。在學習構架上,既可以不必專門強調詞表詞資訊,也不用專門設計特定的未登入詞識別模組,因此,大大簡化了分詞系統的設計。
4.基於詞感知機演算法的漢語分詞方法
2007年的ACL國際大會上提出了一種基於詞的判別式模型,該模型採用平均感知機(averaged perceptron)作為學習演算法,直接使用詞相關的特徵,而不是基於字的判別式模型中經常使用的字相關特徵。
簡要介紹平均感知機演算法。假設x∈X是輸入句子,y∈Y是切分結果,其中X是訓練語料集合,Y是X中句子標註結果集合。我們用GEN(x)表示輸入句子x的切分候選集,用Φ(x, y)∈Rd表示訓練例項(x, y)對應的特徵向量,α表示引數向量,其中Rd是模型的特徵空間。那麼,給定一個輸入句子x,其最優切分結果滿足如下條件:
平均感知機用來訓練引數向量α。首先將α中所有引數初始化為0,然後在訓練解碼過程中不斷更新。對每一個訓練樣本,用當前的模型引數進行解碼得到切分結果,如果切分結果與標註結果不一致,則更新模型引數。每一次都保留引數的加和,直到進行多輪迭代以後,取引數的平均值以避免模型過擬合。
平均感知機訓練演算法如下:
輸入:訓練樣本(xi,yi)
初始化:α=0,v=0
演算法過程:
輸出:α
基於感知機演算法的漢語自動分詞方法的基本思路是,對於任意給定的一個輸入句子,解碼器每次讀一個字,生成所有的候選詞。生成候選詞的方式有兩種:①作為上一個候選詞的末尾,與上一個候選詞組合成一個新的候選詞;②作為下一個候選詞的開始。這種方式可以保證在解碼過程中窮盡所有的分詞候選。在解碼的過程中,解碼器維持兩個列表:源列表和目標列表。開始時,兩個列表都為空。解碼器每讀入一個字,就與源列表中的每個候選組合生成兩個新的候選(合併為一個新的詞或者作為下一個詞的開始),並將新的候選詞放入目標列表。當源列表中的候選都處理完成之後,將目標列表中的所有候選複製到源列表中,並清空目標列表。然後,讀入下一個字,如此迴圈往復直到句子結束。最後,從源列表中可以獲取最終的切分結果。
這個演算法有點類似於全切分方法,理論上會生成所有的2l-1個切分結果(l為句長)。為了提升切分速度,可以對目標列表tgt中候選詞的數目進行限制,每次只保留B個得分最高的候選(如B=16)。那麼,如何對tgt列表中的切分候選進行打分和排序呢?Y. Zhang和S. Clark使用了平均感知機作為學習演算法,使用的特徵如表7-3所示。
例如,假定源列表src中有一個候選為“如今/有些/露宿”,當解碼器讀入一個新的字“者”時,就會生成兩個候選:(a)“如今/有些/露宿者”;(b)“如今/有些/露宿/者”。候選(a)將啟用表7-3中編號為1~6和8~14的特徵,候選(b)將啟用編號為7的特徵。這裡c0為“者”。表7-4詳細描述了兩個候選(a)和(b)對應的特徵。
根據這些特徵,就可以利用平均感知機分類器對切分候選進行打分和排序。
5.基於字的生成式模型和區分式模型相結合的漢語分詞方法
根據前面的介紹,在漢語分詞中基於詞的n元語法模型(生成式模型)和基於字的序列標註模型(區分式模型)是兩大主流方法。其中,基於詞的生成式模型對於集內詞(詞典詞)的處理可以獲得較好的效能表現,而對集外詞(未登入詞)的分詞效果欠佳;基於字的區分式模型則恰好相反,它一般對集外詞的處理有較好的魯棒性,對集內詞的處理卻難以獲得很好的效能,比基於詞的生成式模型差很多。其主要原因歸結為兩種方法採用的不同處理單元(分別是字和詞)和模型(分別為生成式模型和區分式模型),在基於字的區分式模型中,將基本單位從詞換成字以後,所有可能的“字-標記”對(character-tag-pairs)候選集要遠遠小於所有可能的詞候選集合。通過實驗分析發現,兩個處於詞邊界的字之間的依賴關係和兩個處於詞內部的字之間的依賴關係是不一樣的。圖7-4給出了logP(ci|ci-1)在兩種情況下的分佈圖。
基於詞的生成式模型實際上隱含地考慮了這種處於不同位置字之間的依賴關係,而在基於字的判別式模型中卻無法考慮這種依賴關係。但是,區分式模型能夠充分利用上下文特徵資訊等,有較大的靈活性。因此,基於字的區分式模型具有較強的魯棒性。基於這種考慮,提出了利用基於字的n元語法模型以提高其分詞的魯棒性,並將基於字的生成式模型與區分式模型相結合的漢語分詞方法,獲得了很好的分詞效果。
在提出的基於字的生成式模型中,將詞替換成相應的“字-標記”對,即
根據貝葉斯公式並參考式三元語言模型的計算公式:
式(7-11)可以進一步簡化為:
這樣,基於字的生成式模型仍然以字作為基本單位,但考慮了字與字之間的依賴關係,與基於字的判別式模型相比,處理詞典詞的能力有了大幅改觀。但是,該模型仍然有缺陷,它並沒有考慮未來資訊(當前字後面的上下文)。例如,“露宿者”中的“者”字,是一個明顯的字尾,當使用基於字的判別式模型切分“宿”時,能夠利用後續資訊判斷“宿”應該標記為“M”,而基於字的生成式模型卻由於只考慮了“宿”字左邊的上下文,錯誤地將“宿”標為“E”。因此,基於字的生成式模型處理未登入詞的能力仍然弱於基於字的判別式模型。為了利用基於字的判別式模型和基於字的生成式模型對詞典詞和未登入詞進行互補性處理,利用線性插值法將這兩個模型進行了整合,提出了一個整合式分詞模型:
其中α(0≤α≤1.0)為加權因子。
該模型同時融合了基於字的生成模型和基於字的判別式模型的優點,因此,分詞效能比兩個基本模型有了大幅度的提升。
6.其他分詞方法
Gao et al. (2005)提出了一種漢語分詞的語用方法(pragmatic approach)。該方法與多數已有方法的主要區別有三點:第一,在傳統的分詞方法中一般採用理論語言學家根據各種語言學標準給出的漢語詞的定義,而在本方法中漢語的詞是根據它們在實際使用和處理中的需要從語用上定義的切分單位;第二,該方法中提出了一種語用數學框架,在這個框架中切分已知詞和檢測不同型別的生詞能夠以一體化的方式同步進行;第三,在這種方法中假設不存在獨立於具體應用的通用切分標準,而是認為根據不同的語言處理任務需要多重切分標準和不同的詞彙粒度。該方法已經應用於微軟亞洲研究院開發的適應性漢語分詞系統MSRSeg)中。
自從薛念文等人提出由字構詞的分詞方法以後,該模型迅速成為漢語分詞的主流方法。為了提升該模型的詞典詞召回率(recall),張瑞強等人提出了基於“子詞”(sub-word)的判別式模型方法:首先用最大匹配方法切分出常用詞,然後將sub-word和字混合作為標註的基本單位。趙海等人還比較了不同詞位數量對該模型的影響,他們的實驗表明,基於6個詞位的效果最好。從近幾年的研究情況來看,基於字的判別式模型仍然是漢語分詞的主流方法。
基於詞的判別式模型有效提升了基於詞的分詞方法的效能。孫薇薇比較了基於字的判別式模型和基於詞的判別式模型的效能,並利用Bagging將兩種方法結合,取得了不錯的效果。
三、分詞方法比較
為了公平地對比各種分詞方法,我們採用SIGHAN規定的“封閉測試”原則:模型訓練和測試過程中,僅允許使用SIGHAN提供的資料集進行訓練和測試,其他任何語料、詞典、人工知識和語言學規則都不能使用。評價指標包括:準確率(P)、召回率(R)、F-測度(F-measure,簡寫為F)、未登入詞的召回率(ROOV)和詞典詞的召回率(RIV)。各指標的計算公式如下:
在實際應用中,F值計算時一般取β=1,所以,F值又稱為F1值。
總之,隨著自然語言處理技術整體水平的提高,尤其近幾年來新的機器學習方法和大規模計算技術在漢語分詞中的應用,分詞系統的效能一直在不斷提升。特別是在一些通用的書面文字上,如新聞語料,領域內測試(訓練語料和測試語料來自同一個領域)的效能已經達到相當高的水平。但是,跨領域測試的效能仍然很不理想,例如用計算機領域或者醫學領域的測試集測試用新聞領域的資料訓練出來的模型。由於目前具有較好效能的分詞系統都是基於有監督的學習方法訓練出來的,需要大量有標註資料的支撐,而標註各個不同領域的語料需要耗費大量的人力和時間,因此,如何提升漢語自動分詞系統的跨領域效能仍然是目前面臨的一個難題。
另外,隨著網際網路和移動通訊技術的發展,越來越多的非規範文字大量湧現,如微博、部落格、手機簡訊等。這些網路文字與正規出版的書面文字有很大的不同,大多數情況下它們不符合語言學上的語法,並且存在大量網路新詞和流行語,有很多還是非正常同音字或詞的替換,例如,“溫拿”、“盧瑟”等。這些文字的出現都給分詞帶來了一定的困難,傳統的分詞方法很難直接使用,而且這些網路新詞的生命週期都不是很長,消亡較快,所以,很難通過語料規模的隨時擴大和更新來解決這些問題。
綜上所述,漢語分詞是中文資訊處理研究的一項基礎性工作,經過幾十年的研究開發,已經取得了豐碩的成果,但仍面臨若干頗具挑戰性的難題。