倪 吉,孔 芳,朱巧明,李培峰
(蘇州大學 計算機科學與技術(shù)學院,江蘇 蘇州 215006;江蘇省計算機信息處理技術(shù)重點實驗室,江蘇 蘇州 215006)
命名實體識別是文本信息處理的基礎(chǔ),在機器翻譯、信息檢索、自動問答、知識管理、實體關(guān)系抽取等應(yīng)用領(lǐng)域中都有重要的作用。命名實體識別首先在MUC-6上作為子任務(wù)提出[1],主要任務(wù)是識別文本中人名、地名、機構(gòu)名、時間表達式、數(shù)量表達式等。由于中國人名在實體中所占的比例較大,據(jù)統(tǒng)計,在《人民日報》1998年1月的語料庫(2 305 896字)中,平均每100個字包含未登錄詞1.192個(不計時間詞和數(shù)量詞),其中48.6%的實體是中國人名[2],另外中文語義復雜,中國人名的用字又具有很大的任意性,所以中國人名的識別是命名實體識別任務(wù)中主要任務(wù)和主要難點之一。
雖然中文命名實體的研究相比英語命名實體識別尚處于不成熟階段,但在中文人名識別上也已經(jīng)有了不少的研究,主要有基于規(guī)則和基于語料庫統(tǒng)計[3-6]的人名識別方法,這類方法的核心是統(tǒng)計人名用字在語料中的頻率,通過計算概率來確定文本中的候選人名為確定人名的可能性;羅智勇等[7]提出的基于可信度的中國人名識別方法也是統(tǒng)計人名的用字頻率作為人名的可信度,但他在統(tǒng)計人名用字概率時去除了人名用字在語料中作為普通詞出現(xiàn)的情況,是一種解決傳統(tǒng)統(tǒng)計誤區(qū)的方法;李中國等[8]提出了基于邊界模板和局部統(tǒng)計相結(jié)合的中國人名識別方法,該方法從標注語料庫中抽取邊界模板,利用邊界模板對人名進行粗略定界,然后根據(jù)局部統(tǒng)計量和啟發(fā)式規(guī)則對識別結(jié)果進行校正;另外,賈寧等[9-11]使用了機器學習模型對人名進行識別。上述方法通常會受到訓練語料規(guī)模的約束,所以如何在有限語料庫基礎(chǔ)上提高統(tǒng)計數(shù)據(jù)的有效性,充分利用語料庫中的知識,從而使整體識別性能得到提高也是重要的研究方向之一。除此之外,文獻[12]指出了目前命名實體系統(tǒng)準確率較高而召回率較低的情況,該文基于CRFs使用0/1標簽方法和Non-local特征來提高系統(tǒng)的召回率,所以如何在保證準確率的同時能有效地提高召回率也是目前命名實體識別系統(tǒng)需要解決的問題之一。
本文在前人研究的基礎(chǔ)上,利用標注語料庫和人名相關(guān)的知識庫,研究了中國人名形成的特征,定義了人名可信度的計算方法,并通過實驗將可信度模型嵌入到基準系統(tǒng)中,著重研究了可信度模型對已有命名實體識別系統(tǒng)中人名識別召回率提高的作用。實驗證明,可信度模型對中國人名識別性能提高有一定的幫助,也說明本文的可信度模型在考慮人名成詞時更具有完整性。
可信度模型是通過計算人名內(nèi)聚度、人名區(qū)分度(文獻[2]和文獻[7]中就將其稱為可信度)和邊界模板可信度的綜合概率,判斷某個候選人名確實為人名的可信程度。人名可信度模型主要用途包括兩個方面: 第一,對系統(tǒng)已標注的人名通過計算其可信度判斷該人名是否識別正確,主要針對一些低準確率的情況;第二,對系統(tǒng)未識別的人名進行補充識別,是一種使用可信度模型解決低召回率問題的方法。
通常,一個完整的中國人名由姓字(SN)、姓名首字(FN)、姓名尾字(LN)組成。其中姓名首字特指字數(shù)超過兩字的人名的中間用字,例如孫中山的“中”字。假設(shè)中國人名在文本中出現(xiàn)不超過四字,于是我們定義人名的出現(xiàn)有以下幾種形式:
四字: SN(復姓)|FN|LN,SN|SN|FN|LN(港澳臺的已婚婦女),還有較少的SN|FN|FN|LN和SN|FN|LN|LN;
三字: SN|FN|LN,SN(復姓)|LN,SN|SN|LN
二字: SN|LN,F(xiàn)N|LN
單字: SN,LN
人名內(nèi)聚度的概念是借鑒于“物以類聚”的思想,即人名常用字也會以一定的強度聚在一起,即一個字符序列若為人名,則這個序列是由人名常用字聚集而成,也可以這么認為: 若某個字為SN,則緊接著很有可能出現(xiàn)FN、LN,這些連續(xù)的字內(nèi)聚成人名的可能性則比較大。如果SN后緊接的字不為FN或LN,則可以認為這兩個字內(nèi)聚成人名的概率為0(內(nèi)聚不考慮單字人名的情況)。也就是說,內(nèi)聚度的強弱說明了連續(xù)的幾個字內(nèi)聚成人名的概率大小,而這種內(nèi)聚強度在本文中采用了人名用字的常用程度來體現(xiàn)。
我們從網(wǎng)絡(luò)上收集了8萬多中國常見人名,記錄所有不同的SN、FN和LN用字以及它們分別出現(xiàn)的次數(shù)(表1),并計算每個不同SN(FN、LN)用字在SN(FN、LN)總數(shù)中的比例,記為Cohe(XNi),XNi表示SN、FN或LN中的第i個字,計算方法如公式(1)所示。
(1)
表1 SN、FN、LN統(tǒng)計結(jié)果
表1的數(shù)據(jù)實際上反映了每個字作為人名的常用程度,所以Cohe(XNi)值越大表示XNi作為XN出現(xiàn)機會越大。定義WN=C1C2...Cn為連續(xù)的字符序列,則WN的內(nèi)聚度記為Cohe(WN)。由于收集的人名中復姓、港澳臺姓名都較少,為了保證內(nèi)聚概率的可靠性,我們僅計算WN符合上述中國人名出現(xiàn)形式中SN|FN|LN和SN|LN時的Cohe(WN),即:
除此之外,對于有名無姓的形式FN|LN和LN,有姓無名的情況SN,由于這些形式都有其在文本中出現(xiàn)的特殊情況,首先,一般在上文中出現(xiàn)了人名的全名,后文才會使用簡稱;其次,若為SN是人名,則往往以老|小SN、SN某、SN稱謂詞等搭配形式出現(xiàn)。所以可以單獨采用規(guī)則的算法進行處理。
人名內(nèi)聚度從人名用字的常用程度及通過這種常用程度反映的字串序列間的內(nèi)聚度來決定這個字串成為人名的可信程度。但是在文本中,每一個SN、FN、LN用字都有可能是普通用字。例如,表1中的“王”字,雖然是中國人名的大姓,但是“王”字作為普通用字的時候也很多,如“大王”、“王爺”;又如“劉”字,雖然其從統(tǒng)計中獲得常用程度不如“王”,但它的區(qū)分度較高(表2),則“劉”字在文本中作為姓字的概率也會很高。所以我們需要為每個人名常用字定義一個區(qū)分于普通用字的概率,記為Diff(Ni)。人名區(qū)分度是根據(jù)每個字的Diff值,綜合計算一個字符序列是人名還是普通字詞的區(qū)分概率。區(qū)分度的計算需要語料庫的支持,設(shè)2.1節(jié)中獲得的人名常用字為C,C綜合了SN、FN、LN,則Diff(C)的計算方法如公式4所示。
本文考慮到分詞錯誤可能會帶來的統(tǒng)計錯誤,例如,句子“對白/n 曉/v 燕/n 說起/v”進行切分后使用文獻[7]中的統(tǒng)計方法會對“白”字的統(tǒng)計產(chǎn)生偏差,所以本文采用了傳統(tǒng)基于字的統(tǒng)計方法,通過內(nèi)聚度和區(qū)分度的綜合來減少傳統(tǒng)統(tǒng)計的不合理之處;本文利用微軟研究院(MSRA)標注的訓練文件進行統(tǒng)計,統(tǒng)計結(jié)果如表2所示,從表2中可以看出,表1中常用的人名用字可能其區(qū)分度并不高,而表2中區(qū)分度高的用字,在表1中得到的出現(xiàn)次數(shù)并不多,所以內(nèi)聚度和下文定義的人名區(qū)分度是決定人名可信度共同的內(nèi)部因素。
表2 人名常用字區(qū)分度
根據(jù)區(qū)分度的定義,設(shè)WN=C1C2…Cn為人名估計字符序列,我們認為只有當WN中的每個字都為非人名用字時,該WN才不是人名;否則,如果存在任意Ci表現(xiàn)為人名用字時,該WN都有可能為人名。所以,序列WN的人名區(qū)分度可用公式(5)表示。
(5)
區(qū)分度是指區(qū)別一個字是人名用字或是普通用字的能力。但是僅靠區(qū)分度參數(shù)進行判定時會遇到一些困難,例如,“張”字,其統(tǒng)計獲得的區(qū)分度僅為0.422 68(“張”的人名用字次數(shù)為287,普通用字次數(shù)為392),則從區(qū)分度參數(shù)很難判斷“張”是否為姓字。而通過綜合“張”字作為人名的常用程度考慮會使判定更具有可靠性。
人名內(nèi)聚度和區(qū)分度都是根據(jù)人名的內(nèi)部信息計算人名的可信程度。邊界模板可信度則是通過人名的上下文邊界統(tǒng)計信息來計算可信度。
本文實驗系統(tǒng)中使用的邊界模板集合是從MSRA的標注語料中獲得,統(tǒng)計和記錄模板及其出現(xiàn)的次數(shù),如出現(xiàn)次數(shù)較多的模板有“記者 PER 報道”、“、 PER 、”、“| PER 說”、“, PER 、”、“| PER 在”…… 其中“|”表示句首。類似與人名區(qū)分度,處于邊界模板之間的字詞不一定為人名,例如對于模板“、 PER 、”,頓號之間可能是地名、普通形容詞、名詞等,所以我們也統(tǒng)計了所有模板在標注語料中出現(xiàn)的總次數(shù),以計算模板作為人名邊界的概率。由于本文主要是對于中國人名邊界模板的處理,在統(tǒng)計每個模板總數(shù)時,只考慮了模板間字數(shù)小于4的情況。
在上述統(tǒng)計到邊界模板中,不管模板作為人名邊界的概率有多大,只要在邊界模板之間的字詞都有可能為人名,所以不能因為作為邊界模板的概率低而使模板之間的人名可信度降低,所以我們定義的模板可信度如公式(6)所示。
(6)
公式(6)的定義主要是為了體現(xiàn)邊界模板對人名可信度的加強作用,所以人名的可信度模型定義可如公式(7)所示。
K(WN,PER)=Cohe(WN)*Diff(WN)*Tj
(7)
特殊地,當邊界模板在模板集合中不存在時,Tj=1。
本文使用微軟亞洲研究院(MSRA)標注的語料進行實驗,首先建立基準平臺,用于人名的初步識別,之后使用可信度模型對初步結(jié)果文本進一步處理,最后得到整個系統(tǒng)的最終識別結(jié)果。系統(tǒng)流程如圖1所示。
基準平臺是系統(tǒng)對待識別文本進行的初步處理,本文使用CRFs分類器和MSRA標注的訓練語料訓練形成模型,使用的特征有一元特征(w0),窗口大小為2,即考慮前后各兩個單元(w1,w2,w-1,w-2);二元特征(w0/w1,w-1/w0);三元特征(w-2/w-1/w0,w-1/w0/w1,w0/w1/w2)。其中,w0表示當前位置的字面特征,w-i表示從當前位置往分析方向相反的第i個字,w+i表示從當前位置與分析方向一致的第i個字,二元和三元特征都為組合特征?;鶞势脚_即是通過上述特征訓練形成的模型對源文本進行人名識別。
使用MSRA提供的測試文本對基準平臺進行測試,初步識別結(jié)果的性能如表3所示。
表3 基準平臺識別性能
可信度模型的核心是通過計算一個字符序列內(nèi)聚度、區(qū)分度和邊界模板可信度的綜合概率來衡量該字符序列作為人名的可靠性程度,其中區(qū)分度和模板可信度的數(shù)據(jù)即為第二節(jié)中介紹的方法獲得,只是對內(nèi)聚度的數(shù)值進行了轉(zhuǎn)換: ①根據(jù)公式(2)和公式3計算SN|FN|LN和SN|LN的初始內(nèi)聚度;②確定Cohe值的范圍分別為4.1E-5~3.4E-15、1.3E-3~1.9E-10;③將步驟②中Cohe值按表4進行轉(zhuǎn)換,本實驗中C的取值為0.9。
表4 Cohe轉(zhuǎn)換表
另外,影響內(nèi)聚度的因素還包括內(nèi)聚的字及其上下文的成詞情況,以下列舉了3條常用的啟發(fā)式規(guī)則,存在這些情況,則會使Cohe值降低: 設(shè)字符序列為:
S=…C1C2SNFNLNC3C4…(…C1C2SNLNC3C4…),
① (C1C2) is not phrase AND (C2SN) is phrase AND FNLN is phrase;
② (C3C4) is not phrase AND (LNC3) is phrase AND SNFN is phrase;
③ SNFNLN(SNLN) is Phrase;
本節(jié)通過使用可信度模型對基準平臺輸出的初步結(jié)果進行了人名的再識別,主要是為了能提高整個系統(tǒng)的召回率,其過程是對整個文本中已識別為人名的字串不作任何處理,只對文本中其余部分進行再識別,識別的方法是以姓字(SN)為驅(qū)動,由姓字(SN)及其緊隨的單字或雙字組成字串序列,采用可信度模型計算詞語序列(SN+LN)和(SN+FN+LN)的可信度概率,取兩者中較大值,若該值大于設(shè)定的閾值δ則認為該詞語序列為人名。在MSRA語料上封閉測試的實驗結(jié)果如表5,表6所示,表5的結(jié)果是使用傳統(tǒng)區(qū)分度作為可信度,表6則是綜合了內(nèi)聚度、區(qū)分度和邊界模板來計算可信度的結(jié)果。
從表5的數(shù)據(jù)可以看出,隨著閾值δ的降低,在召回率提高的同時精確率下降得很快,這說明了只使用區(qū)分度作為可信度缺乏穩(wěn)定性,引入內(nèi)聚度和邊界模板正是為了在提高召回率的同時更好地保證識別的精確率。從表6可以看出, 召回率提高對精確率的損失影響比較平滑,并且在δ取0.4時,可信度模型對原有系統(tǒng)性能的提升最大,召回率提高了4.3%,而準確率僅下降了0.24%,從而使F提高了2.27%,高于原始可信度模型對系統(tǒng)F值性能提高的0.87%。
表5 傳統(tǒng)可信度模型識別結(jié)果
表6 加入內(nèi)聚度和邊界模板的可信度模型識別結(jié)果
表7 系統(tǒng)識別結(jié)果示例
在表7列出的系統(tǒng)識別結(jié)果中,例句1、2、3是基準平臺未能識別而通過可信度模型識別的人名;例句4、5反映了分詞對人名識別的影響[13],其中“對白”、“好在”都會在分詞時被作為普通詞從而影響到人名的識別,所以本文只是將分詞信息作為內(nèi)聚度計算的輔助信息;例句6、7反映了不分詞對識別的影響,其中“林業(yè)科”、“程順利”都會被誤識別為人名,所以4.2節(jié)中計算內(nèi)聚度引入了啟發(fā)式規(guī)則;例句8、9是可信度模型識別錯誤的人名;例句10是可信度模型未能識別的人名,因為人名“凌然”的可信度為0.37,小于識別性能最好的閾值0.4;例句11假設(shè)人名“凌然”出現(xiàn)在邊界模板“| PER 闡述”之間,由于“| PER 闡述”的模板可信度較高,所以“凌然”可以被識別為人名,該例句說明了邊界模板對人名識別的作用;例句12中人名“傅抱石”在基準平臺中可以被識別,而使用可信度模型不能識別,原因是“抱”字在統(tǒng)計的人名信息中不存在,使得“傅抱石”成為人名的可信度為0,這也反映了統(tǒng)計方法存在的缺陷,所以本文將可信度模型作為模塊嵌入到基礎(chǔ)平臺。
本文提出了一種計算中國人名可信度的方法,通過內(nèi)聚度、區(qū)分度和邊界模板可信度的綜合概率來衡量一個字串序列為人名的可靠程度,并將實現(xiàn)的可信度檢測模塊嵌入到一個簡單的人名識別系統(tǒng)中,可以對系統(tǒng)已識別的人名進行糾正,也可以對系統(tǒng)未識別的部分進行再識別。本文的實驗說明了可信度模型的有效性,另外,實驗中將可信度模型嵌入到基于CRFs的基準平臺,是為了將統(tǒng)計方法可能帶來的偏差縮小在一個較小的范圍,能夠在損失較小準確率的前提下提高召回率??尚哦饶P涂梢元毩⒂谝延忻麑嶓w識別系統(tǒng)存在,單獨地對人名進行判斷,但其性能對統(tǒng)計信息的可靠性及相對應(yīng)的啟發(fā)式規(guī)則的要求較高,需要更進一步地研究和完善。由于使用的測試語料中包含了大量的譯名,而可信度模型是對于中國人名的判斷,所以對整個系統(tǒng)人名識別性能的提升也存在局限性。
本文對內(nèi)聚度的計算只考慮了SN|FN|LN和SN|LN的情況,下一步的工作可以增加人名內(nèi)聚情況以提高可信度模型的覆蓋程度。另外,區(qū)分度和內(nèi)聚度已經(jīng)很好地反映了一個人名的內(nèi)部信息,但是人名的外部信息邊界模板并沒有充分發(fā)揮其作用,所以更好地制定邊界模板可信度的計算策略對人名的識別也有重要的作用。之后可以嘗試將可信度模型的計算方法應(yīng)用到譯名、地名、機構(gòu)名的識別中。
[1] Sundheim B M. Named entity task definition, version 2.1[C]//Proceedings of the Sixth Message Understanding Conference. Morgan Kaufmann, California, 1995:319-332.
[2] 張素香. 信息抽取中關(guān)鍵技術(shù)的研究[D]. 北京: 北京郵電大學, 2007.5.
[3] Li Jianhua,Wang X.L.An Effective Method on Automatic Identification of Chinese Name[J].High Technology Letters. 2000, 10(2): 46-49.
[4] 黃德根,楊元生等. 基于統(tǒng)計方法的中文姓名識別[J]. 中文信息學報, 2001,15(2): 31-37.
[5] 劉秉偉,黃萱菁等. 基于統(tǒng)計方法的中文姓名識別[J]. 中文信息學報, 2000,14(3): 16-24,36
[6] 鄭家恒,李鑫,譚紅葉. 基于語料庫的中文姓名識別方法研究[J]. 中文信息學報, 2000, 14(1): 7-12.
[7] 羅智勇,宋柔. 一種基于可信度的人名識別方法[J]. 中文信息學報, 2005, 19(3): 67-72,86.
[8] 李中國,劉穎. 邊界模板和局部統(tǒng)計相結(jié)合的中國人名識別[J]. 中文信息學報, 2006,20(5): 44-50,57.
[9] Zhou Guodong, Su Jian. Named Entity Recognition using an HMM-based Chunk Tagger[C]//Proceedings of the 40thAnnual Meeting of the Association for Computational Linguistics. Philadelphia, USA, 2002:473-480.
[10] 賈寧,張全. 基于最大熵模型的中文姓名識別[J]. 計算機工程, 2007, 33(9): 31-33.
[11] 王志強. 基于條件隨機域的中文命名實體識別研究[D]. 南京: 南京理工大學, 2006.8
[12] Mao Xinnian, He Saike, Bao Sencheng, Dong Yuan and Wang Haila. Chinese Word Segmentation and Named Entity Recognition Based on Conditional Random Fields[C]//Proceedings of the Sixth SIGHAN Workshop on Chinese Language Processing, Hyderabad, India, 2008:90-93.
[13] 張躍,姚天順. 基于結(jié)合性自動識別中文姓名[J]. 小型微型計算機系統(tǒng), 1997, 18(10): 43-48.
[14] 張華平,劉群. 基于角色標注的中國人名自動識別研究[J]. 計算機學報, 2004, 27(1): 85-91.