汪青青
摘要:先秦人名和現(xiàn)代人名的構(gòu)成方式和上下史語境有很大不同。本文以先秦文獻(xiàn)《春秋左傳》為突破口,對書中的人名進(jìn)行了統(tǒng)計分析,挖掘其內(nèi)部特征及分布特征。并且利用CRF模型對先秦人名的識別進(jìn)行了初步的嘗試。在開放測試中,該方法取得了92.48%的準(zhǔn)確率。
關(guān)鍵詞:先秦人名特征識別crf型
命名實(shí)體識別是自然語言處理的重要內(nèi)容。但目前這方面的研究主要集中在現(xiàn)代文獻(xiàn)領(lǐng)域,古籍中命名實(shí)體的識別是古典文獻(xiàn)信息化進(jìn)程中的關(guān)鍵所在,是一個值得探索研究的問題。
人名在先秦文獻(xiàn)中占據(jù)很大的比例。據(jù)我們對《春秋左傳》27萬多字的語料統(tǒng)計:其中人名一共出現(xiàn)12900多次,人名總字?jǐn)?shù)為28400多個字,占全書總字?jǐn)?shù)的10.41%。因此,是否能正確識別人名直接影響著自動分詞的精度。此外,先秦人名識別還是解決先秦人名異名同指和同名異指的基礎(chǔ),也是構(gòu)建先秦人名知識庫的基礎(chǔ)。
一、先秦人名的特點(diǎn)
先秦人名和現(xiàn)代人名的構(gòu)成方式及其上下文語境和現(xiàn)在有很大的差別。因此,我們首先要充分挖掘先秦人名的內(nèi)部特征和分布特征。
(一)內(nèi)部特征
1、構(gòu)成成分多樣
現(xiàn)代人名一般只有“姓氏”和“名字”兩種構(gòu)成成分,而先秦漢語中,情況要復(fù)雜得多。其構(gòu)成成分有:姓、氏、名、字、謚號、爵位、職官、尊,親稱和“氏”字等。
A、“姓”和“氏”
今天我們一說到姓和氏,大家都覺得是一回事。但在先秦時代,姓和氏是有嚴(yán)格區(qū)別的。先秦姓氏分而為二,男子稱氏,女子稱姓。姓是用來別婚姻的,氏是為了明貴賤的。姓者,統(tǒng)其祖考之所自出,比較穩(wěn)定;氏者,別其子孫之所自分,會隨著封邑、官職的改變而改變(如:衛(wèi)鞅、公孫鞅、商鞅),因此有時一個人會有幾個氏或者父子兩代不同氏。
在先秦文獻(xiàn)中,姓的數(shù)量很少,據(jù)統(tǒng)計先秦的古姓的數(shù)量大約三十多種。《左傳》中一共出現(xiàn)了二十幾種;而氏的數(shù)量比姓多得多,在《左傳》中共有657個氏,主要是以國(如:晉重)、以邑(如:隨會,范會)、以官(如:中行桓子)、以字(包括名,如:國參)為氏,這四種命氏發(fā)式產(chǎn)生的氏名473個,占70%以上。
B、“名”和“字”
先秦人既有名,又有字。名是幼時起的,供長輩呼喚。男子到了二十歲成人,要舉行冠禮;女子十五歲許嫁時,舉行笄禮,也要取字。供朋友呼喚。古人尊對卑稱名。卑自稱也稱名:對平輩或尊輩則稱字。當(dāng)名和字連稱時要先字后名。如:孟明(字)視(名)。
先秦時人名以單字為主。當(dāng)時凡有文化教養(yǎng)的人,都以取雙字名為恥,幾乎形成全社會清一色的單字名。如孔丘(孔子)、莊周(莊子)等都是單字名。貴族男子的字一般由“行次(伯艋、仲、叔、季)+字+父庸(二字古通用,男子的美稱)”三部分組成。例如:伯(排行)禽(字)父(男子的美稱)其中,行次和“父/甫”是可以省略的。男子取字還常在前面加“子”(“子”是對男人的尊稱)。例如:冉求,字“子有”。先秦貴族女子也有字,一般由“行次+姓+字+母,女”四部分構(gòu)成。例如:孟(排行)妊(姓)車(字)母(女性)。其中,行次和“母,女”也可以省略。有時甚至可以單稱“某母”或“某女”。
C、“爵位”和“謚號”
爵位,又稱封爵、世爵,是古代皇族、貴族的封號,用以表示身份等級與權(quán)利的高低。先秦時”爵位”大致分為公、侯、伯、子、男五級。謚號是皇帝、王或有一定社會地位的人死了后,朝廷或后人按其生前有無功績,評定褒貶給予的稱號。謚號一般是固定的一些字,這些字被賦予特定的涵義。謚號大致可以分為三類:A,表揚(yáng)的,例如:莊、文、武、景、烈、昭、明、睿、康、穆等;B,批評的,例如:厲、靈、煬等;c,同情的。哀、懷、愍、悼等。上古謚號多用一個字。也有用兩三個字的。例如:趙孝成王。
2、內(nèi)部結(jié)構(gòu)復(fù)雜
現(xiàn)代中國姓名結(jié)構(gòu)簡單,即:姓氏+名。但在先秦,姓名的結(jié)構(gòu)復(fù)雜多樣,而且女子的人名結(jié)構(gòu)和男子的人名結(jié)構(gòu)也不相同。
A、女子人名結(jié)構(gòu)
婦女姓名主要涉及到以下幾種成分:姓、氏、字、名、謚號、尊,親稱和“氏/婦”字,這幾種成分除了姓以外,其它幾種姓名構(gòu)成成分視具體情況決定取舍。先秦女子稱姓方式主要有以下幾種:
A、氏+姓,如:“許(夫氏)姬(姓)”。
B、字+姓,如:“孟姜”。
c、謚+姓,如:懷(夫謚)贏(姓)。
D、姓+“氏”字,如:“姜氏”。
這幾種形式在先秦文獻(xiàn)中出現(xiàn)頻率較高,除此之外,先秦女子還有單稱姓、名+姓、“婦”字+姓、特殊稱謂+姓、尊/親稱+姓、氏+字+姓、氏+謚+姓、氏+姓+名、姓十字+姓+名等多種形式,但這些形式出現(xiàn)的頻率很低。
B、男子人名結(jié)構(gòu)
男子的姓氏制度與女子的姓氏制度是大相徑庭的。男子是絕對不稱姓的,這一點(diǎn)與女子必須稱姓的原則剛好相反。男子姓名主要有以下幾種構(gòu)成成分:氏、字、名、排行、謚號、尊,親稱、爵位和職官等。男子稱氏的方式主要有以下幾種:
A、氏+字,名,例如:南(氏)季(字)。
B、氏+爵位,例如:齊(氏)侯(爵位)。
c、氏+謚號+爵位,例如:鄭(氏)莊(謚號)公(爵位)。
D、氏+字+名,當(dāng)氏和名同時相稱時,一般字放在名的前面。祭(氏)仲(字)足(名)。
以上幾種稱氏方式是男子稱氏最常用的形式。除了這些,還有一些其它稱氏方式。如:“單稱氏”、“氏+職官”、“氏+親稱”、“氏+謚號+-Sz”、“職官+氏+字”、“氏+爵位+名”。
3、人名用字
A、在前315的左傳訓(xùn)練語料中,一共出現(xiàn)漢字2929個,其中可以作為人名用字的有1021個。由此可見人名用字范圍廣、分布松散。
B、有些人名用字兼類的比例雖然大。但有的是很有規(guī)律的。例如:“公”在語料中出現(xiàn)了1630次。作為非人名用字的749次,其中以單字名詞出現(xiàn)的就有546次,還有42次是在名詞“公子”中出現(xiàn)。
C、人名用字雖多。其中有幾類人名構(gòu)成成分作為人名用字的頻率較高:如:部分爵位、姓和字中的“排行”等,具體情況如下表
4、人名長度
我們對《春秋左傳》前面315的語料中出現(xiàn)的七萬多次人名的長度進(jìn)行了統(tǒng)計,具體情況如下表:
這里的出現(xiàn)頻率是指在真實(shí)文本中某種長度人名的出現(xiàn)次數(shù)和所有人名出現(xiàn)次數(shù)之比。由上表可知,在先秦時期,雙字人名和三字人名占絕對的優(yōu)勢。
(二)分布特征
1、上下文限制性成分
在語料中出現(xiàn)的人名限制性成分,主要有:
A、指界動詞:日、言、謂、說、葬、聞、生、卒、帥、出奔等。
B、成串人名之間用頓號、“及”和“與”等連詞連接。
2、句法成分
先秦人名在文中充當(dāng)主語和賓語占絕對的優(yōu)勢。如:“鄭伯克段于鄢”,其中,“鄭伯”充當(dāng)句子的主語,“段”充當(dāng)句子的賓語。
二、基于CRF的人名識別方法
(一)先秦人名標(biāo)注規(guī)范
A、先秦人名整體作為一個分詞單位,標(biāo)注為“nr”。
B、國名和人名連用時,有的是以國為氏(如:魯莊公中的“魯”),有的還存在爭議(如:“宋向榮”中的“宋”),這種情況我們一律視為人名的氏來處理,但如果國名單獨(dú)出現(xiàn),則標(biāo)為“ns”。
C、官名和人名連用時,同樣有的是以官為氏(如:右宰丑),還有的也存在分歧,我們也一律視其為以官為氏。但如果官職名單獨(dú)出現(xiàn),則是普通名詞。
D、“年號”和“××年”中的年號是一種紀(jì)年法,其中的年號雖形同人名,但不是人名(如:“昭公四年春”中的“昭公”),而是時間詞的一部分。
E、某些稱謂帶有普通名詞性質(zhì),如果單獨(dú)出現(xiàn),如:“公”、“王”、“太子”、“公子”、“公繇”等,有些雖然在一定上下文專指某個人,但我們把其標(biāo)注為名詞。
(二)語料的預(yù)處理
A、對原始語料《春秋左傳》的文本進(jìn)行校對,然后人工分詞并標(biāo)注詞性。
B、將語料的前315作為訓(xùn)練語料,后2/5作為測試語料。
C、將標(biāo)注文本轉(zhuǎn)化為cRF格式文本。
(三)CRF模型簡介
條件隨機(jī)場模型(Conditional Random Fields。CRF)是由Lafferty在2001年提出的一種典型的判別式模型。它在觀測序列的基礎(chǔ)上對目標(biāo)序列進(jìn)行建模,重點(diǎn)解決序列化標(biāo)注的問題。條件隨機(jī)場模型既具有判別式模型的優(yōu)點(diǎn),又具有產(chǎn)生式模型考慮到上下文標(biāo)記間的轉(zhuǎn)移概率,以序列化形式進(jìn)行全局參數(shù)優(yōu)化和解碼的特點(diǎn),解決了其他判別式模型難以避免的標(biāo)記偏置問題。
本文的實(shí)驗使用了條件隨機(jī)場模型,采用了TakuKu,do編寫的工具包“CRF++-0.51”進(jìn)行訓(xùn)練和測試。本文是以單字作為基本模型符號,設(shè)計了兩種特征集進(jìn)行了實(shí)驗。
(四)特征模板和標(biāo)記集的選擇
1、特征模板
我們選用了6個一元特征模板,即:C-1,C0,C1,C*1 CO,COC1,C-1 C1。
2、標(biāo)記集
實(shí)驗1:我們選用了五詞位標(biāo)記集,即單字人名(Ⅲ_s),人名首字(nr_B),人名中間字(nr_I),人名尾字(nr_E)以及非人名用字(O)。具體標(biāo)注例子如下:實(shí)驗2:利于了詞性和詞位信息。具體標(biāo)注例子如下:
(五)規(guī)則后處理
我們還利用了一些規(guī)則對識別的結(jié)果進(jìn)行后處理,如果識別出來的人名是以下幾種情況中的一種。則排除該人名:A,識別出的人名是“公”、“王”、“子”、“太子”“公子”和“公孫”等名詞。B,識別出的人名是“軍尉”、“司馬”、“司空”、“輿尉”、“候奄”和“亞旅”等官職名。C,識別出的人名“×公”在“x公xx年”的結(jié)構(gòu)中。D,識別出的人名長度大于六。
(六)實(shí)驗結(jié)果及分析
根據(jù)測試集和訓(xùn)練集的不同關(guān)系,可以將評測分為封閉測試和開放測試。測試的結(jié)果采取了常用的3個評測指標(biāo),即準(zhǔn)確率(P)、召回率(R)和綜合指標(biāo)(F)來評測人名識別的結(jié)果。
具體的實(shí)驗結(jié)果如下表:
(表4實(shí)驗結(jié)果)
從上面的兩個實(shí)驗對比可以看出:在這兩個實(shí)驗的封閉測試中都取得了很好的效果。但在開放測試中效果有明顯的差別:在實(shí)驗1中,只利用簡單特征就達(dá)到了較高的正確率,但召回率較低;在實(shí)驗2中,利用了詞性特征,有效地提高了召回率,但隨著特征數(shù)量的增加,也產(chǎn)生了一些“噪聲”特征數(shù)據(jù),影響模型的訓(xùn)練和識別速度與正確率。
三、結(jié)論和將來的工作
本文的研究對先秦人名自動識別進(jìn)行了嘗試。取得了一定的效果。我們未來的主要研究工作是進(jìn)一步擴(kuò)大語料的規(guī)模,我們準(zhǔn)備對25種先秦傳世文獻(xiàn)進(jìn)行處理@。從中充分挖掘先秦人名的特征,提高人名識別的正確率和召回率。同時,我們進(jìn)行人名的識別不僅僅是為了給人名加上標(biāo)記而已,而是為了研究異名同指和同名異指服務(wù),從而為自動構(gòu)建人名知識庫奠定基礎(chǔ)。
注釋:
①http://crfpp.sourceforge.net/.
②陳小荷,先秦文獻(xiàn)的信息處理芻議,中文信息學(xué)會會議上的發(fā)言,2008,11,23
參考文獻(xiàn):
[1][晉]杜預(yù),春秋左傳集解,上海古籍出版社,1977
[2]陳絮,商周姓氏制度研究,商務(wù)印書館,2007
[3]劉開瑛,中文文本自動分詞和標(biāo)注,商務(wù)印書館,2000
[4]楊伯峻,春秋左傳注,中華書局,1981
[5]張淑一,先秦姓氏制度考索,福建人民出版社,2008
[6]孫茂松,黃昌寧,高海燕,方捷,中文人名的自動辨識,中文信息學(xué)報,1995,(02)
[7]嚴(yán)軍,《左傳》姓氏相關(guān)問題的探索,浙江學(xué)刊,1994,(04)
基金項目:南京師范大學(xué)211工程三期重點(diǎn)學(xué)科建設(shè)項目“語言科技創(chuàng)新及工作平臺建設(shè)”子課題。