●通拉嘎,劉 凱,李佳正(1.泉州師范學院圖書館,福建 泉州 36000;.中國科學院計算技術研究所,北京 100080)
基于最大熵的蒙古文人名識別系統(tǒng)的設計與實現(xiàn)
●通拉嘎1,2,劉凱2,李佳正2
(1.泉州師范學院圖書館,福建泉州362000;2.中國科學院計算技術研究所,北京100080)
[關鍵詞]信息處理;蒙古文人名識別;最大熵
[摘要]最大熵模型能充分利用上下文,靈活取用多個特征。使用最大熵模型進行蒙古文人名識別,分析蒙古文人名結構及上下文環(huán)境,根據語言特點設計特征模板,建立粗選特征集;建立人名知識庫,提取精選特征集,訓練最大熵模型;實驗結果證明,本系統(tǒng)能有效識別蒙古文人名,開放測試的正確率達到94.56%,召回率達到85.15%,F(xiàn)值達到89.61%,識別效果較為理想。
蒙古文詞法分析是蒙古文信息處理的一項基礎研究課題,是短語、句法、語義、篇章處理的基礎環(huán)節(jié)。命名實體識別是文本信息處理的基本問題,[1]是蒙古文詞法分析的關鍵問題之一,提升命名實體的識別性能,必將提高詞法分析系統(tǒng)的整體性能。命名實體包括實體(人名、地名、組織機構)及時間表達式、數(shù)字表達式。[2]
蒙古文屬于阿爾泰語系拼音文字,為黏著語言類型,[3]故而蒙古文人名識別更加注重運用形態(tài)特征及上下文信息。為了解決蒙古文人名自動識別的瓶頸問題,我們擬引入最大熵方法,它是一個機器學習模型,具有通用、易于移植、可多次使用等特點,能夠有效利用上下文環(huán)境,可以較好地包容各種約束信息,在自然語言處理方面應用廣泛。
人名識別系統(tǒng)主要包括2個功能模塊,即模型訓練及人名識別(見圖)。基于最大熵模型的蒙古文人名識別系統(tǒng)實現(xiàn)的環(huán)境主要為Windows 7平臺,以Microsoft Visual Studio 2010為開發(fā)工具,使用C++編程語言編寫核心代碼。我們使用的訓練語料庫為內蒙古大學蒙古文拉丁文本,以“/Nt1”對人名進行標注,并在此基礎上,依次進行特征提取、特征選擇以及迭代訓練,得到該集合上的判別模型。人名識別模塊的主要功能是使用訓練好的最大熵模型對語料進行標注,并計算正確率和召回率。
圖 系統(tǒng)流程
以是否有歧義為劃分標準的話,蒙古文人名可以分為兼類人名及非兼類人名兩種。識別非兼類人名時,我們直接使用最大熵模型計算人名的出現(xiàn)概率;判斷兼類人名時,我們首先以兼類人名詞典進行初步的篩選確認,然后以兼類詞搭配詞判斷兼類詞的位置,最后以最大熵模型計算人名的出現(xiàn)概率。
2.1模型訓練模塊
在對相關文本進行標注前,我們需要在訓練語料庫上進行模型訓練,并依次進行特征提取、特征選擇及迭代訓練,使模型與訓練樣本一致,而對于訓練集中沒有出現(xiàn)的情況,模型則賦予均勻的分布。
2.1.1特征的抽取
最大熵模型的關鍵在于如何針對特定的任務為模型選取特征集合,[4]我們提取的特征為基本特征及語
言學特征。蒙古語是一種典型的粘著語,所以,我們在未進行詞法分析的語料上抽取特征時,應考慮詞干和詞綴的相應信息,以減少粘著語的特性對特征的影響?;诿晒盼奶攸c及上下文環(huán)境,我們制定了人名的特征模板及標注特征取值,進行基本特征集的抽取?;咎卣鬟x取的最大優(yōu)勢是不依賴于任何語法和語義知識,這對其它的命名實體識別也同樣適用。語言學特征提取則依賴于人工提供的知識規(guī)則,并按照不同的規(guī)則類型生成對應的特征。知識規(guī)則即語言學資源,包括詞典和規(guī)則庫等。
表1 人名特征模板
表2 人名的標注特征取值
2.1.2特征選擇
提取語言學特征及基本特征后,需要循環(huán)匹配特征模板,形成粗選特征集。不過,該特征集是在語料庫偏小狀況下形成的,特征價值、時空開銷都是需要考慮的問題。為了進一步提取蒙古文人名特征,我們在對人名及其上下文環(huán)境進行分析的基礎上,依托語料庫,建立了普通人名知識庫及兼類人名知識庫,并以最大熵的統(tǒng)計模型,對人名知識庫中的各類特征進行選擇實驗,從中提取了更為有效的人名特征,為進一步的人名識別工作做好準備。
表3 人名知識庫及數(shù)據統(tǒng)計
我們擬在最大熵模型中使用的精選特征集共有14個,地名詞典、蒙古族蒙古姓氏詞典、著名人物詞典、地名后綴詞典、機構名后綴詞典、漢語姓氏映射表、漢語人名映射表、有距離邊界詞典、左邊界詞詞典、右邊界詞詞典、梵藏滿人名詞典、兼類人名詞典、蒙古人名詞典,兼類搭配詞典。雖然最大熵可以不用設定規(guī)則的優(yōu)先集來避免沖突,不過,我們還不清楚哪些特征是有效的,哪些特征有副作用。為驗證特征集中各個特征的效果,我們設計了以下方案。
(1)令特征集=簡單上下文特征集,在該特征集的基礎上訓練最大熵模型,然后測試。
(2)在原始的簡單上下文特征集的基礎上,逐次加入某一項新特征,在新特征集的基礎上訓練最大熵模型,然后進行測試,參考開放測試的結果,如果某特征集導致正確率和召回率都下降,說明該特征是無效特征,予以去除;如果正確率和召回率都有一定特征,表明該特征的有效性,則保留該特征。重復這些步驟,直至每個特征集都實驗過(特征選擇實驗結果,請參見《圖書館理論與實踐》2015年第2期第112頁表3)。
(3)漢語人名在語料庫中出現(xiàn)較多,但其形式與蒙古人名又有較大區(qū)別,漢語姓氏與人名拉丁映射表能覆蓋大多數(shù)人名,因而,我們直接選取“漢語姓氏映射表”、“漢語人名映射表”為最大熵的特征,而無需經過實驗步驟的驗證。
之所以建立地名詞典、地名后綴詞典、機構名后綴詞典,是因為人名與地名兼類的現(xiàn)象在蒙古文中出現(xiàn)較多,語料庫中地名、機構名、機構名后綴對人名有一定的指稱作用,我們希望以此排除與人名的兼類現(xiàn)象。[5,6]但是,限于語料庫規(guī)模,能滿足這些特征的語境還是較少,而且地名、地名后綴、機構名后綴有時與人名的距離過遠,運用這些特征后正確率和召回率都有一定程度下降。經過上述實驗,我們去除了機構名后綴詞典、地名后綴詞典、地名詞典等3個特征,保留了11個特征集作為最大熵統(tǒng)計模型的特征集,從而形成了適應最大熵的精選特征集。
2.1.3參數(shù)估計
在獲取特征集合的基礎上,我們使用東北大學張樂提供的最大熵工具包來訓練模型,[7]根據最大熵工具包的使用說明書規(guī)定特征文件的格式,組織好特征文件。
參數(shù)估計的作用是用最大熵原理對每個特征進行參數(shù)估值,使每個參數(shù)與一個特征相對應,以此建立所求模型。在生成train.txt文件后,我們將其送至最大熵工具包。經過maxent程序處理,使用默認的L-BFGS算法進行參數(shù)估計后,我們得到了train.feat,test.feat,model.txt等三個文件。這里,train.feat,test.
feat等兩個文件記錄了每個詞是否為人名的判別結果和特征,model.txt記錄了每個特征對應的參數(shù)值。
經過模型訓練后,我們得到了一個特征集合,每個特征對應一個參數(shù)α。特征的參數(shù)表示特征參數(shù)的重要程度或可信度,α可正可負。
2.2人名識別模塊
用最大熵工具包對特征集進行參數(shù)估計后,每一個特征都有了一個與之對應的參數(shù),這意味著生成了我們需要的最大熵模型。在此基礎上,可以對文本進行標注,也即本文所闡述的“識別”,我們將此過程稱之為“解碼”,解碼過程可視作是一個標注問題。
本文的人名識別過程如下:
a讀入一個句子,即給定的輸入系列W={W1,W2,……,Wn};
b依據訓練得到的特征函數(shù)集f1(a,b)及其參數(shù)αt,求解行動序列A={a1,a2…,an},其中,ai的值域為類集或標注集C∈{B,M,E,O,S},bi為輸入序列中每一個元素Wi的上下文環(huán)境信息;
c最終選出在候選標記序列空間內具有最大概率的標注結果序列。
為驗證蒙古文人名自動識別模型的有效性,我們首先選擇訓練語料和測試語料,然后通過封閉測試和開放測試分析蒙古文人名識別模型的效果。
3.1實驗數(shù)據
訓練及測試所用的句子共為8343句,共含11583個人名(見表4)。“語料分布”中,“內大”指的是內蒙古大學26萬語料庫中提取的2570個人名句,“自建”指的是從中國蒙古語新聞網、人民網(蒙古文版)、蒙古文化網等9個網站人工抓取的5千人名句。網站選取的原則為統(tǒng)一的蒙科立編碼,句子選取原則為人名句,盡量為兼類人名句。從上述網站上抓取人名句,以蒙科立轉拉丁的編碼轉換工具3轉換為蒙古文拉丁格式,并著重對人名及上下文兩詞進行校對,標注出人名位置。封閉測試集是訓練集的子集,開放測試集與訓練集不存在包含與被包含關系。
表4 訓練集、測試集數(shù)據統(tǒng)計
3.2實驗結果
輸入格式設定為內蒙古大學語料庫蒙古文拉丁形式,文字需以空格分開,盡量輸入完整的句子。在顯示的主界面輸入待分析的句子,單擊“NameRec”按鈕,啟動對句子的分析,就會出現(xiàn)識別結果。顯示系統(tǒng)以中括號表示人名及其邊界。
從測試結果可以看出,系統(tǒng)能有效識別蒙、漢、梵藏、外國人名,對有名無姓,有姓無名、人名簡稱、帝名、筆名等不常見的人名也有較好的識別效果。不過,系統(tǒng)對較為特殊的蒙古文人名,如仿疊人名、雙姓人名、三字以上人名識別效果不佳;由于缺乏詞性信息并受語料庫、知識庫規(guī)模限制,兼類人名的識別有一些問題。最終,系統(tǒng)實驗的結果為封閉測試的正確率96.52%,召回率87.25%,F(xiàn)值91.65%;開放測試的結果正確率94.56%,召回率85.15%,F(xiàn) 值89.61%,識別效果較為理想。
[參考文獻]
[1]潘正高.基于規(guī)則和統(tǒng)計相結合的中文命名實體識別研究[J].情報科學,2012,30(5):708.
[2]李佳正,等.維吾爾語種漢族人名的識別及翻譯[J].中文信息學報,2011,25(4):82.
[3]清格爾泰.現(xiàn)代蒙古語語法[M].呼和浩特:內蒙古人民出版社,1980:2-8.
[4]桑海巖,等.基于最大熵的哈薩克語詞性標注模型[J].計算機工程與應用,2013,49(11):127.
[5]皇甫晶,王凌云.基于規(guī)則的紀傳體古代漢語文獻姓名識別[J].圖書情報工作,2013,57(3):123.
[6]那順烏日圖,等.蒙古文人名自動識別研究[C]//語言計算與基于內容的文本處理——全國第七屆計算語言學聯(lián)合學術會議論文集.哈爾濱:2003:125.
[7]Zhang Le.Maximum Entropy Modeling Toolkit for Python and C++[EB/OL].[2004-12-29].http://www. docin.com/p-13535384.html.
[收稿日期]2014-09-11 [責任編輯]李海燕
[作者簡介]通拉嘎(1976-),女,內蒙古科右中旗人,中央民族大學少數(shù)民族語言文學學院博士,泉州師范學院圖書館館員,中國社科院閩南文化研究基地成員,研究方向:計算語言學、應用語言學及情報學;劉凱(1987-),男,博士,研究方向:自然語言處理;李佳正(1988-),女,碩士,研究方向:自然語言處理。
[基金項目]本文系國家自然科學基金重點項目“跨語言社會輿情分析基礎理論與關鍵技術”(項目編號:61331013)的研究成果之一。
[文章編號]1005-8214(2015)05-0096-03
[文獻標志碼]A
[中圖分類號]G254.29