一、引言
一個高質量、大規模的分詞語料庫是中文信息處理的根基。目前機器自動分詞的正確率已達到97%左右,但由于校對者受語境干擾和自身語感的差異,時常會出現一個字串的意義、功能都是確定的但給出了不同的切分形式的情況,我們稱之為分詞變異。由于意義、功能是否確定在分詞層面機器難以判斷,因此分詞變異的外在表現和組合型歧義相同,同時,在一些專名和非專名串之間也存在著類似的問題。多種成因共同導致了復雜的分詞不一致現象:一個相同的字串(不考慮它的意義、功能)在語料庫中存在著不同的切分形式。
孫茂松(1999)認為:衡量一個語料庫質量的重要標準之一是分詞后的語料庫是否具有比較高的一致性。因此,建設一個高質量的語料庫,分詞不一致的處理是一個無法回避的問題,而處理的前提和關鍵就是識別出分詞不一致的不同成因。
本文提出了一種基于機器學習的分詞不一致自動識別方案,通過兩遍識別,以特征詞法識別結果為基礎,讓機器從中學習到規則后輔以人工規則再處理第一遍未識別的不一致字串。既解決了單一使用特征詞法召回率過低和單一使用規則法容易忽視小規則的問題,也克服了原先方法前期需要投入大量人力進行人工校對和規則總結的缺陷。
我們從1998年1月《人民日報》200萬字的語料庫中抽取到40 926個分詞不一致字串,將字串相同的歸為1組,共1797組。從中抽樣10131條473組做人工識別,其中5065條230組作為訓練集,其余5066條243組作為測試集。
二、分詞不一致現象分析
(一)成因分析
分詞不一致現象的成因主要歸為以下三類,在識別時分別標注對應的字母:
(A)分詞變異。比如:
四/m個/q大字/n“/w福如東海/i”/w
恭賀/v新春/t”/w的/u金色/n大/a字/n分外/d醒目/a。/w
(B)組合型歧義。比如:
多方/d籌集/v資金/n6億/m元/q,/w
運/v來/v山基土/n5600/m多/m方/q,/w
(C)專名和非專名串。比如:
《/w電力/n報/n》/w記者/n張/nr大和/nr
密度/n之/u大/a和/c持續/vn時間/n之/u長/Ng,/w
(二)組合情況分析
每一組的情況并不一定是單純的,會有A、B、C三類組合出現的可能。常見的組合有一合對多分和一分對多合兩種,前者比如:
等到/v波羅的海/ns三/m國/n加入/v北約/j(1)
因為/c 等/v到/v片子/n剪/v出來/v,/w(2)
事故/n證明/n及/c醫院/n證明/n 等/u到/v保險/n公司/n(3)
其中,(1)和(2)的關系是A類,而(1)和(3)的關系是B類。
后者比如:
屋子/n分/v東/f西/f兩/m 個/q 廂房/n(4)
廣場/n東西/f兩側/f百/m米/q燈/n廊/Ng(5)
武俠小說/n本身/r是/v娛樂性/n的/u東西/n(6)
其中,(4)和(5)的關系是A類,而(4)和(6)的關系是B類。
三、識別算法設計
算法流程如下:
1.抽取語料庫中所有分詞不一致的字串、詞性標記和上下文等信息;
2.前期處理全部C類;
3.第1遍識別,使用特征詞法標記部分A類,并讓機器從中學習規則;
4.第2遍識別,使用學習到的規則加上人工輔助規則標記剩下的A類和B類。
(一)分詞不一致字串的抽取
表1中列出了每一個分詞不一致字串抽取的信息,其中上下文的觀察窗口設為5。

(二)前期處理
前期主要將有明顯特征的C類先行識別出來。由C類引起的分詞不一致可以從詞性標記判定,專名包括人名(nr)、地名(ns)、機構團體名(nt)、其他專名(nz)四種。剔除專名后,如果該組不再存在不一致現象,則不對該組再做處理;否則該組中剩下的不一致字串進入下一環節識別。
(三)特征詞法
前期處理后,關鍵將集中在識別A類和B類。我們首先使用特征詞法標注一部分。
A類分、合兩種形式由于意義、功能是確定的,因此語境中可能會存在著相同的特征詞,而B類這種可能性將遠小于A類。
首先,一組中以Keytags的不同分類,一般情況分為分(wordnum>1)、合(wordnum=1)兩類,但也有兩類以上的,比如keystr=大地的組就有三類:/a;/a/u;/a/d。
然后,抽取每一類中所有不一致字串的上下文特征詞構成一張左、右特征詞表。特征詞是由leftwords和rightwords去掉一些沒有明顯識別作用的詞類(比如標點、連詞)和詞(比如“是”)組成。為避免對于高頻特征詞的過低估計,規定一個詞出現幾次就在特征詞表中登記幾次。
接著,將不同分類兩兩組合,計算它們之間特征詞共現率,公式為:

其中,tableleft1 和tableright1分別是組合中特征詞數較多的表,M(table1,table2)函數對table1中的每個詞考察其是否在table2中出現,如出現則計數加1,N(table)函數計算table的特征詞數。
最后,我們還需要從訓練集中提取閾值去判斷組合內是否具有同一性。其中有兩種情況:1.wordnum1≠wordnum2,則超過閾值可初步識別該組合為A類;2.wordnum1=wordnum2,則超過閾值可將該組合合為一類處理。盡管兩種情況結果不同,但判斷同一性這點是相同的,因此只需一個閾值就夠了。我們使用出現頻率較高的情況1作為閾值提取的依據。
表2中統計了不同閾值和A類的識別正確率、成功識別組合數之間的關系。

在第1遍識別時,我們希望得到較高的正確率。從表2中可以初步將閾值確定在0.03-0.04之間,經過進一步計算,當閾值為0.032時,正確率達到最高為91.67%。對于情況2也使用0.032作為閾值。
(四)規則學習
使用特征詞法的目的除了識別出部分A類以外,更重要的是我們希望將特征詞法的識別結果提供給機器以學習到A類規則庫。在第(三)節中我們希望得到最理想的正確率,但對于機器學習來說,由于后期還有規則頻率閾值的約束,就并不需要那么高的正確率,而希望機器能多學習到一些規則備用。因此,我們將閾值從0.032降低到0.02作為規則提取的閾值,以放棄部分正確率的代價換來成功識別組合數的增加。
機器在對40926個分詞不一致字串進行第1遍識別后共學習到不同規則186條,舍棄低頻規則,將出現頻率3次以上的44條規則放入A類規則庫。表3中列出了出現頻率最高的5條規則。這些高頻規則與孫茂松(1999)所總結的導致分詞不一致的主要結構類型是吻合的。

(五)人工輔助規則
為解決一些具有一定規律性和普遍性但規則復雜機器難以學習的情況,我們添加了3條人工輔助規則與第(四)節的規則庫配合使用。
人工規則1:如果分、合兩類情況中出現一類所有不一致字串的前鄰接詞與詞性高度一致(對數詞只要求詞性一致,不考慮標點和助詞等特征性不強的詞類),而另一類中所有字串的前鄰接詞不含有該詞,則將這種對類內具有高度相似性對類外具有嚴格排他性的組合認定為B類。在實際操作中,我們將高度一致的標準設置為:頻率<10的類相似度=100%;頻率≥10的類相似度>90%,這樣可以有效避免高頻類中由于極個別字串分詞錯誤造成的干擾。
人工規則2:如果合時keytags為/i或/l,或分時keytags前含/h或后含/k,則認定該組合屬于A類。孫茂松(1999)、苗璽(2006)均將成語、習用語、前后詞綴作為構成A類的常見結構。這類詞合時詞性標記單一但分時由于本身結構復雜造成詞性多樣,機器難以學習到強勢規則而造成漏檢。
人工規則3:對分時wordnum全部大于2的組標為A類。盡管這種多詞不一致串在人工內省造句時仍然可能是B類,但數目極少,我們可以直接識別為A類。
(六)規則庫識別
進行第2遍識別,將一組中按Keytags的不同分類,對wordnum不同的類兩兩組合。首先使用3條人工輔助規則對每個組合進行判斷,如果符合則完成識別,否則如果該組合在第1遍識別時未能標識,則從A類規則庫中尋找匹配的規則,如果找到則標識為A類,否則標識為B類。
四、實驗結果
我們使用此算法標注了抽取出的全部40926個分詞不一致字串,將訓練集中5065條230組人工標注結果與機器標注進行比對,一組中標識全部正確的算作正確,封閉測試正確率為85.22%,對于A類,正確率86.21%,召回率88.65%;對測試集的5066條243組進行同樣的比對,開放測試正確率為83.13%,對于A類,正確率86.62%,召回率86.08%。
五、結語
如何提高識別的正確率是我們進一步研究的重點,我們覺得主要有這幾方面的工作要做:(1)深入觀察語料,挖掘分詞不一致現象不同成因之間的深層規律,拓展目前特征詞加規則庫的模式;(2)讓機器在自動學習規則的基礎上能歸納、合并規則,同時增加規則的要素約束規則失效;(3)抵抗語料庫自身錯誤等干擾因素帶來的影響。
參考文獻:
[1]孫茂松. 談談漢語分詞語料庫的一致性問題[J]. 語言文字應用,1999,(2):88-91.
[2]杜永萍 鄭家恒. 分詞及詞性標注一致性校對系統的設計與實現[J]. 電腦開發與應用,2001,(10):16-18.
[3]劉江 鄭家恒 張虎. 中文文本語料庫分詞一致性檢驗技術的初探[J]. 計算機應用研究,2005,(9):52-54.
[4]苗 璽 鄭家恒.中文語料庫分詞不一致的分類處理研究[J]. 山西大學學報,2006,(1):22-25.
(盧俊之, 南京師范大學文學院)