基于角色标注的中国人名自动识别研究文档格式.doc
《基于角色标注的中国人名自动识别研究文档格式.doc》由会员分享,可在线阅读,更多相关《基于角色标注的中国人名自动识别研究文档格式.doc(8页珍藏版)》请在冰点文库上搜索。
![基于角色标注的中国人名自动识别研究文档格式.doc](https://file1.bingdoc.com/fileroot1/2023-5/3/52c81496-9124-471f-b0c1-b7d53eee9eea/52c81496-9124-471f-b0c1-b7d53eee9eea1.gif)
(2)有名无姓:
“春花点点头”;
“杰,你好吗?
”(3)有姓无名:
“刘称赵已离开江西”;
(4)姓+前后缀刘总、张老、小李、邱某;
(5)港台已婚妇女:
范徐丽泰、彭张青。
2.人名内部相互成词,指的是姓与名、名与名之间本身就是一个已经被收录的词。
如:
[王国]维、[高峰]、[汪洋]、张[朝阳]。
根据我们对80,000条中国人名的统计,内部成词的比例高达8.49%。
3.人名与其上下文组合成词的情况包括人名的首部(姓或名的首字)与人名的上文成词和人名的尾部(姓或名的首字)与人名的下文成词。
例如:
“这里[有关]天培的壮烈”;
“费孝通向人大常委会提交书面报告”。
在人民日报1998年1月的语料库中,这种情况接近200例。
4.歧义理解的主要是由同源冲突[3]引起的:
“河北省刘庄”;
中的“刘庄”就是中国人名与地名的歧义,“周鹏和同学”存在人名“周鹏”和“周鹏和”的歧义[4]。
1.2现有解决方案及其不足
针对中国人名的自动识别问题,人们已经作过很多的探索,并提出了多种解决方案。
根据其使用的方法不同,这些方案大致可以分为三种:
规则方法[2,4,5]、统计方法[6]以及规则与统计相结合的方法[1,7,8]。
规则方法主要利用两种信息:
姓氏用字分类[5]和限制性成分[8]。
分析姓名用字,驱动对姓名的识别过程,并采集姓名前后相关的成分,对姓名的前后位置进行限制。
小规模测试的结果表明,其准确率可以高达97%[4]。
在缺乏特大规模熟语料库的时候,规则方法是唯一可行的方法。
统计方法主要是针对姓名语料库来训练某个字作为姓名组成部分的概率值,并用它们来计算某个候选字段作为姓名的概率,其中概率值大于一定阈值的字段为识别出的中国人名[6]。
规则与统计相结合的办法,可以通过概率计算减少规则方法的复杂性与盲目性,而且可以降低统计方法对语料库规模的要求。
目前的研究基本上都是采取规则与统计的方法,不同之处仅仅在于规则与统计的侧重不同而已。
现有解决方案存在着本身固有的一些不足:
首先,一般采取“单点(首或尾)激活”[4]的机制来触发人名的识别处理。
即扫描到姓氏用字、职衔、称呼等具有明显姓名特征的字段时,才将前后的几个字列为候选姓名字段进行人名的识别。
那些不具备明显特征的姓名往往会被丢失,如上文中提到的“有名无姓”的人名。
其次,姓名候选字段大都是选取切分后的单字碎片[1,2,4,6],也有研究者将少量的二字或多字词纳入候选字段的选取范围[4]。
在这种选取机制的作用下,人名内部成词以及人名与上下文成词的情况基本上是无法召回的。
根据上文提供的统计数据,由于这两种机制所引起的召回率损失将不小于10%。
最后,人名识别采取的大量规则往往代价昂贵而且难以扩展。
文献[4]中,研究者就是从10万条人名库、2亿字的真实语料库中将姓名用字分为了9类,并总结了21条识别规则。
无论是收集如此巨大的人名库、真实语料库,还是提炼规则,都是一个浩大的工程。
这无疑是非常费时、昂贵的。
如果增加新的人名形式,也必须增加新的规则,并对以前的规则重新修订,因此规则方法很难扩展。
规则可以保证很高的准确率,但是任何规则都不可能覆盖尽可能多的人名,对于规则之外的姓名就完全无能为力。
本文将提供一种可以避免上述不足的解决方案——基于角色标注的中国人名自动识别方法。
该方法主要采用隐马模型对分词结果进行人名构成角色的标注,然后根据各个不同的角色,进行简单的模式匹配并最终识别出人名。
某个字词的人名构成角色定义主要依据于其在人名构成中的不同作用,如姓、名、上文、下文等。
字词不同角色的概率以及各个角色之间的转移概率,完全从语料库训练过程中自动抽取。
该方法自动学习、自动识别,无需人工的直接干预,改变训练样本,就可以适应新的情况。
一次扫描,无需回溯,选取所有的可能字段作为候选姓名,识别处理不需激活。
经过大规模的真实语料库测试,我们取得让人满意的实际效果。
本文第二节阐述该方法的理论依据,然后给出具体的实现过程,最后提供人名识别的实验结果并进行分析。
2、基于角色标注的中国人名自动识别方法
2.1中国人名的构成角色
中国人名的内部构成与上下文比较集中,而且有一定的规律性。
在83,077条人名库中,姓氏用字仅有820个,其中王、张、李三大姓,就占了20%;
20,631个单名中,单名用字为1,489个;
双名的首字与末用字数均不到2000个。
人名的上下文种类也很有限。
上文一般是称呼、职衔以及一些连词、动词,如:
“总统”、“主任”、“打”、“向”等。
下文大多是像“说”、“表示”、“主席”之类的词。
我们将人名的内部组成、上下文等与人名识别相关的成分称为中国人名的构成角色(为行文方便,以下简称角色)。
我们利用角色表(见表1)对“馆/内/陈列/周/恩/来/和/邓/颖/超生/前/使用/过/的/物品/。
”进行角色标注,其结果为:
“馆/A内/A陈列/K周/B恩/C来/D和/M邓/B颖/C超生/V前/A使用/A过/A的/A物品/A。
/A”
编码
代码
意义
例子
B
Pf
姓氏
张华平先生
C
Pm
双名的首字
D
Pt
双名的末字
E
Ps
单名
张浩说:
“我是一个好人”
F
Ppf
前缀
老刘、小李
G
Plf
后缀
王总、刘老、肖氏、吴妈、叶帅
K
Pp
人名的上文
又来到于洪洋的家。
L
Pn
人名的下文
新华社记者黄文摄
M
Ppn
两个中国人名之间的成分
编剧邵钧林和稽道青说
U
人名的上文和姓成词
这里有关天培的壮烈
V
Pnw
人名的末字和下文成词
龚学平等领导,邓颖超生前
X
Pfm
姓与双名的首字成词
王国维、
Y
Pfs
姓与单名成词
高峰、汪洋
Z
Pmt
双名本身成词
张朝阳
A
Po
以上之外其他的角色
表1中国人名的构成角色表
2.2角色自动标注与中国人名识别
既然含中国人名的句子包含姓、名、上下文等构成角色,那么换一个角度说:
我们就可以通过对构成角色进行标注,通过对角色序列简单的模式匹配来实现中国人名的识别。
而中国人名构成角色的标注实质是一个简单的词性标注过程。
我们采用的是Viterbi算法[9]进行角色自动标注。
从所有可能的标注序列中优选出概率最大的标注作为最终标注结果。
其理论及推导如下:
我们假定W是分词后的Token序列(即未登录词识别前的分词结果),T是W某个可能的角色标注序列.其中T#为最终标注结果,即概率最大的角色序列。
则有:
W=(w1,w2,…,wm),
T=(t1,t2,…,tm),m>
0,
T#=argTmaxP(T|W)........................…...............................................................................E1
根据Bayes公式,有:
P(T|W)=P(T)P(W|T)/P(W)..................................................….E2
对于一个特定的Token序列来说,P(W)是一个常数,因此根据E1和E2我们可以得到
T#=argTmaxP(T)P(W|T)…......................................…......................…...........................E3
我们引入隐马尔科夫模型[10]来计算P(T)P(W|T)。
其中wi为观察值,角色ti为状态值。
则W是观察值序列,而T为隐藏在W后的状态值序列。
因此:
P(T)P(W|T)≈
∴T#=argTmax................….............…...................…..............….........E4
Û
T#=-argTmin.............…............................................E5
角色自动标注问题就转换为求解E5表达式最小化的问题。
利用Viterbi算法[9]就可以求解T#。
为了解决人名与其上下文组合成词的问题,在人名识别之前,我们要对角色U(人名的上文和姓成词)和V(人名的末字和下文成词)进行分裂处理。
相应地分裂为KB、DL或者EL。
最后,基于角色序列的人名识别就是一个简单的模式最大匹配问题。
我们使用到的人名识别模式集为:
{BBCD,BBE,BBZ,BCD,BEE,BE,BG,BXD,BZ,CD,EE,FB,Y,XD}。
只要符合其中一个模式,我们就人们对应的Token片段组成一个人名。
2.1节中的例句“馆/内/陈列/周/恩/来/和/邓/颖/超生/前/使用/过/的/物品/。
”对应的T#为:
“AAKBCD
MBCVAAAAAA”。
V分裂处理后,最终的角色序列为:
“AAKBCDMBCDLAAAAAA”。
模式最大匹配后,我们识别出的人名是:
“周恩来”和“邓颖超”。
2.3角色信息的自动抽取
p(wi|ti)和p(ti|ti-1)是E5中两个很关键的角色信息参数。
其中p(wi|ti)指的是角色为ti的Token集合中wi的概率;
p(ti|ti-1)表示的是角色ti-1到角色ti的转移概率。
在大规模语料库训练的前提下,我们可以得到:
p(wi|ti)≈C(wi,ti)/C(ti)….................….............…...................…..............….........E6
其中C(wi,ti):
wi作为角色ti出现的次数;
C(ti):
角色ti出现的次数。
p(ti|ti-1)≈C(ti-1,ti)/C(ti-1)................….............…...................…..............….......…E7
其中C(ti-1,ti):
角色ti-1下一个角色是ti的次数;
C(wi,ti),C(ti),C(ti-1,ti)可以通过对已经切分标注好的熟语料库进行学习训练,自动抽取得到。
我们训练用的语料库来自于1998年1、2月《人民日报》,共计14,806K字节的。
在统计训练之前,我们还必须对实际的语料库按照表1制定的角色表重新进行标注转换,因为实际的语料库是按照词性进行标注的。
语料库中的“政务司/n司长/n陈/nr方/nr安生/nr出任/v委员会/n主席/n”应当转换为:
“政务司/A司长/K陈/B方/B安/C生/D出任/L委员会/A主席/A”。
3、方法的具体实现
基于角色标注的中国人名自动识别主要包括三个过程:
角色信息的自动抽取;
角色标注和人名的最终识别。
角色标注实质上就是一个小型的词性标注过程,主要是从所有可能的角色标注中,尽快求取满足E5的标注序列。
Viterbi算法专门解决这类问题已经非常成熟。
在此不作介绍。
下面分别给出角色信息自动抽取和中国人名的识别的算法。
角色信息自动抽取流程算法:
(1)从语料库依次读入标注好的句子;
(2)将中国人名以外的片断一律重新标注为A。
(3)若人名前面的片断p和人名的首部f成为新词pf,将pf标注为U,否则将p标为K(若p原来标注的角色是A)或M(若p原来标注的角色是L)。
(4)若人名的尾部t和人名后面的片断n成为新词tn,将tn标注为V,否则将n标为L。
(5)根据本文1.1节中人名的5种类别,分别对姓、双名首字、双名末字、单名、前缀、后缀相应地标注为角色B、C、D、E、F、G。
内部成词的情况,相应地标注为X、Y、Z。
(6)在句子的角色序列中,将角色不是A的词wi存入词典,并统计wi作为ti的出现次数C(wi,ti)。
同时累计所有不同角色的出现次数C(ti)以及相邻角色的共现次数C(ti-1,ti)。
中国人名的识别流程:
(1)对句子进行分词(基于统计方法或者是最大匹配法),用Viterbi算法求出概率最大的角色序列T#。
(2)将角色为U的片断pf分裂为pKfB(若f为姓)、pKfC(若f为双名首字)或pKfE(若f为单名)。
(3)将角色为V的片断tn分裂为tDnL(若t为双名末字)或tEnL(若t为单名)。
(4)对分裂处理后的角色序列在姓名识别模式集中进行模式最大匹配,输出对应片段组成人名,同时记录它们在句子当中的位置。
(5)对识别出来的结果加入一些限制规则排除一些错误的中国人名。
如中国人名前后不能是“·
”(这种情况下往往是外国人的译名)。
4、实验结果与分析
我们分别作了针对大规模的真实语料库进行了封闭和开放测试,取得了十分不错的效果。
实验结果如表2所示:
类别
封闭测试语料1
封闭测试语料2
开放测试语料
来源
(均为《人民日报》)
98年1月
98年2月1日-20日
98年2月20日-28日
语料库大小(字节)
8,621K
6,185K
2,605K
实际人名数
13360
7224
2967
识别出的人名数
17505
10929
4259
正确识别的人名数
13079
7106
2739
准确率
74.72%
65.02
64.32%
召回率
97.90%
98.37%
92.32%
F值
84.75%
78.29%
75.81%
表2中国人名自动识别实验结果
其中:
准确率=正确识别的人名数/识别出的人名数*100%
召回率=正确识别的人名数/实际人名数*100%
F值=2×
准确率×
召回率/(准确率+召回率)
从表2中,我们可以看到:
基于角色标注方法识别人名的召回率在封闭测试的情况下能达到98%,开放测试的召回率也超过92%。
现在的一些解决方案仅为68.77%[1],最近一些方法小规模测试的召回率一般也很难达到90%[2,3,5,6]。
对人名识别来说,召回率比准确率更加重要,因为低召回率就意味着没有办法再作后续处理,而低准确率完全可以通过增加限制条件或者后续处理(如:
词性标注、句法分析等)等方法将错误的人名排除掉,从而提高最终的准确率。
目前我们采用的限制规则仅仅是淘汰部分外国人名,如果再增加一些有效的消除规则,准确率还有很大的上升空间。
另外,我们所作测试实验的特色还在于:
(1)完全真实的语料环境:
目前常用的测试手段是只提取含有中国人名的句子,然后进行识别,统计实际识别出的人名,并计算正确率与召回率。
这种测试方法的问题在于:
它回避了其他大量的不含中国人名的句子,而这种句子在真实语料环境中,超过90%。
他们很可能被错误的识别出人名来。
“吕梁的特点是贫困人口占全省的1/3左右。
”中的“吕梁”很可能被识别为人名。
我们的测试是完全真实的语料库环境,没有做任何的筛选。
采用传统的办法,我们对12,507个只含人名的句子重新进行识别测试实验,无论是封闭测试还是开放测试,准确率、召回率均超过92%以上。
因此传统的测试方法得出的准确率往往会比真实语料环境高出20%以上。
我们的测试实验可能更符合真实的语言环境。
(2)超大规模:
就我们目前掌握的资料,以前测试的人名规模均不足1000个[2,4]。
不及我们的1/20。
小规模的测试数据在统计意义上不足以说明问题。
我们的测试语料库高达16M字节,含人名超过23,000个。
应当说,我们的数据更具有统计上的意义。
5、结论
本文研究了中国人名的多种表现形式、交叉成词的各种情况。
并分析了目前解决方案中激活机制和候选姓名选取的本质缺陷。
针对实际问题与已有方法的不足,作者提出了一种基于角色标注的中国人名识别方法。
即采用Viterbi算法,利用中国人名构成角色表及其相关统计信息,对句子中的不同成分进行角色标注,对角色进行模式最大匹配,从而识别出中国人名。
中国人名构成角色指的是各个不同分词片断在人名识别过程中所扮演的不同角色,如:
姓、单名、上下文等。
某个词作为特定角色的概率以及角色之间的转移概率,全部从训练语料库中自动抽取,从而降低了人工总结规则的高成本与内在缺陷。
角色的标注过程就是选取角色序列概率最大的过程,避免了以前方法盲目触发的不足。
通过对大规模完全真实语料库的封闭与开放测试,该方法取得相当好的效果,证明了是行之有效的,完全能够满足实际的需求。
我们下一步的研究工作是将基于角色标注的方法推广到对中国地名、译名、缩略语等其他未登录词的识别。
致谢:
感谢北京大学计算语言所提供的2个月《人民日报》语料库!
参考文献
[1]季姮罗振声.基于反比概率模型和规则的中文姓名自动辨识系统.见:
黄昌宁张普.自然语言理解与机器翻译.北京:
清华大学出版社,2001.p.123-128.
[2]吕雅娟赵铁军等.基于分解与动态规划策略的汉语未登录词识别.中文信息学报,2001,Vol.15No.1.P.123-128.
[3]孙茂松等.中文姓名的自动辨识.中文信息学报,1994,No.2.
[4]罗智勇宋柔.现代汉语自动分词中专名的一体化、快速识别方法.见:
JiDongHong等.2001.国际中文电脑学术会议.新加坡:
2001.p.323-328.
[5]郑家恒刘开瑛.自动分词系统中姓氏人名的处理策略探讨.见:
陈力为.计算语言研究与应用.北京:
北京语言学院出版社:
1993.
[6]宋柔朱宏等.基于语料库和规则库的人名识别法.见:
[7]王省黄德根杨元生.基于统计和规则相结合的中文姓名识别.见:
黄昌宁董振东.计算语言学文集.北京:
清华大学出版社:
1999.
[8]陈小荷.现代汉语自动分析.北京:
北京语言文化大学出版社,2000.p.104-114.
[9]L.R.Rabiner(1989)ATutorialonHiddenMarkovModelsandSelectedApplicationsinSpeechRecognition.ProceedingsofIEEE77
(2):
pp.257-286.
[10]L.R.RabinerandB.H.Juang,(Jun.1986)AnIntroductiontoHiddenMarkovModels.IEEEASSPMag.,Pp.4-166.
AutomaticRecognitionofChinesePersonNameBasedonRoleTagging
AbstractThispaperpresentsauniversalapproachforChineseunknownwordsrecognitionusingHiddenMarkovModel(HMM).Weidentifyanunknownwordbasedonitslexicalcomponents,contextsandtheirmutualtransitiverelations.SuchlinguisticknowledgeisautomaticallylearnedintheprocessofHMMtrainingonacorpus.JustlikeaPOStagger,tokensproducedbysentencesegmentationaretaggedaccordingtotheirrolesintheformationofunknownwords.Afterthat,unknownwordsrecognitionprocessisperformedonthetagsequencewiththemaximumprobability.Remarkably,wecansuccessfullyresolveambiguitiesbroughtforthbyunknownwordstogetherwithsomespecialcontexts.Experimentsshowthatourmethodispracticable.Wehavegotexcellentprecisionandrecallingrates,especiallyforpersonnames,andotherusualtypesofunknownwords.Astotheproblemofdatasparsenesswe’vemet,wehavealsogivensomecountermeasures.
Keywords:
Unknownwordsrecognition;
Chinesepersonname;
Roletagging.
作者:
张华平:
男,1978年2月出生,江西波阳人,中国科学院计算技术研究所2000届硕士研究生,1999年获北方工业大学计算机专业学士学位。
研究方向:
自然语言处理与中文词