摘 要:本文基于统计和规则提出一种中文识别方法。利用统计信息得到候选中文姓名,而后利用姓名前后的指界词、称谓词等相关信息从候选中文姓名中进行筛选,完成识别。实验表明该方法的正确率和召回率比较高,并且由于中文姓名在未登录词中占有很大比例,本文方法可以帮助进一步提高汉语自动分词的识别效果。
关键词:汉语自动分词;未登录词识别;中文姓名识别;统计和规则
1 引言
随着信息技术的飞速发展,中文信息处理技术已经渗透到计算机应用的各个领域。自动分词是中文信息处理技术的基础,其中未登录词的识别一直是自动分词的研究难点,越来越多的研究者致力于提高未登录词的识别效率。
中文姓名在未登录词中占有很大比例,所以中文姓名识别的正确率与召回率已经成为影响整体自动分词正确率与召回率的一个重要因素。本文基于统计和规则提出一种中文姓名识别方法,实验表明该方法的正确率和召回率都较高,可以帮助进一步提高自动分词的识别效果。
2 相关研究
到目前为止,已有的中文姓名识别方法主要分为三类:基于规则的方法,基于统计的方法,基于规则和统计的方法。
基于统计的方法[2][3][5]主要依靠一个或多个具有代表性的训练语料库,通过统计一些频率信息来识别中文姓名。如姓名前置词、姓氏用字、名字用字、姓名尾置词等出现的频率信息。这种方法用纯数学的方法,比较简单,但缺点是研究所使用的语料库都是人为地选取的,一般规模比较小,很难保证它能体现实际中文姓名分布的一般规律。另外纯粹利用统计算法,不能完全体现中文姓名的构成规律。
基于规则[4][6]的方法主要依靠中文姓名的结构和特征,考虑了中文姓名的上下文信息来识别中文姓名。该方法主要是利用两种信息:姓氏用字分类和限制性成分。分析过程中,当扫描到具有明显特征的姓氏用字时,开始触发姓名的识别过程。并采集姓名前后的指界词、称谓词等相关信息,对姓名的前后位置进行限制。在缺乏大规模熟语料库的时候,规则似乎是唯一可行的方法。这种方法减少了对语料库的依赖,但缺点是中文姓名的识别规则会或多或少的存在遗漏,而且这些规则是人为设计的,很难针对所有语料库都适用。
基于规则和统计相结合的方法[1][7][8]结合了两者的优点,一方面通过概率计算来减少方法的复杂性与盲目性,另一方面通过规则的使用降低对语料库规模的要求。目前的研究大多采取规则与统计相结合的方法,只是规则与统计的侧重不同。
3 中文姓名识别
中文姓名的识别过程分为两步。基于统计的方法先获得候选姓名,通过数学运算可以在比较短的时间内从大量信息中提取出可能的候选姓名。而后利用规则从候选姓名中筛选。规则比起数学运算要慢了很多,但精确程度要高。因而先使用统计后使用规则的步骤可以兼顾时间效率和识别效果。
3.1 候选姓名
中文姓名长度一般为2-4字,姓氏有复姓,名字一般为1、2个字。但有很大的随意性,比如在很多语句中会出现有姓无名(“刘”),有名无姓(“小强”),称谓(“厂长”)等情况取代了姓名全称。为了解决这些情况的识别,本文使用如下公式计算候选姓名概率。
设中文姓名Name = XM,X是姓氏包括复氏,M为句中动词前非修饰部分,长度一般为1-2字,但不做具体限制。于是候选姓名概率:
p(Name)=α×p(X)+β×pm(M)+γ×pc(M),α+β+γ=1,其中p(X)表示姓氏概率,pm(M)表示M是作为名字的概率,pc(M):示M是作为称谓的概率:
p(X) = ,
pm(M) =λ×+
μ× ,
pc(M) =
λ是单字名的概率,μ是双字名的概率。这两个参数可以通过统计信息得到。该候选姓名概率很好的解决了有姓无名,有名无姓不好区分的问题,同时考虑了这些可能,主要满足其中一种情况,概率值都很得到很好的体现。对于“李明院长”,因为充分利用了称谓一定会更容易识别。α、β、γ分别代表p(X), pm(M)和pc(M)对整体候选姓名概率评估的权值。他们的取值可以通过训练而来,一般姓氏对整体评估的权值α比重相对会占得大一些。
作为判断候选姓名的依据,一定要有一个概率阈值,这个阈值往往通过训练得到,大于此概率阈值的便可作为候选姓名进入到规则筛选。
3.2 规则筛选
姓名不是孤立存在的,而是作为句子的一部分出现的,那么利用姓名所在位置的前后相关信息可以帮助进一步确定姓名,即在候选姓名的基础上进行筛选。
一个简单的句子只由主谓宾三部分组成。姓名往往做句子的主语和宾语。句子中总会出现动词,用于指示主语的行为,或宾语被施与的行为等。主语在动词前,宾语在动词后,减去修饰成分他们的位置几乎是紧邻的,知道动词的位置也就能辨别出主语和宾语的所在位置。因而利用好动词,可以对姓名的识别起到很好的提示作用。
还有一些特殊的动词,不必考虑他的位置,只是单独从词性上就可以立刻判定姓名。因为这些动词是人类特有的。这种判断可以解决昵称很难被识别的情况。而不必考虑姓名在句子中的位置也可以大大缩短计算时间。
另外,标点符号在阅读中不发音,但却有着文字一般的作用。比如“、”与汉语里的“和”意思相关,有并列的关系。例如:“李红、王明、李娟都是好孩子。”中出现的姓名就有并列关系。
并列关系还可以体现在一个连词上,如“还是”,你是找李刚还是李强。前后也存在并列。因而可以扩展到所有具有并列关系的连接词上。
针对上述所列的汉语结构特点,特对候选姓名用以下规则进行筛选。
筛选规则1:减去句中修饰成分,候选姓名前后的动词是口字旁或言字旁的,则可以识别为姓名。因为语言是人类特有的。
筛选规则2:候选姓名紧挨动词,位于动词之前或之后的,则可以识别为姓名。
筛选规则3:对于由标点符号“、”分隔的候选姓名,如果有一个候选姓名被前面的两条规则确定,则与他有并列关系的所有候选姓名都被识别为中文姓名。
筛选规则4:对于由具有并列关系的连词连接的候选姓名,如果有一个候选姓名被前面的规则确定,则与他有并列关系的所有候选姓名都被识别为中文姓名。
4 实验
为了验证本文基于统计和规则对中文姓名识别的效果,进行了如下实验。语料是来自于网页上获取的2005年人民日报。之所以选取人民日报,是因为上面有大量的姓名和可以帮助识别的称谓信息
。并且新闻稿经常被作为识别的材料,此实验的测试结果可以直接用于实际的新闻稿识别应用中。经过基本处理后,把人民日报的1月-10月的语料用作训练,11月和12月的语料用作测试。系统的词典中不含有待识别的中文姓名,所以通过本实验识别出的中文姓名只是识别算法和规则的单纯结果,排除了准备信息的干扰因素。测试语料与训练语料都是语料库中的真实文本,没有抽出只含有姓名的句子,该实验环境更符合真实的语言环境,测试结果更具有说服力。
评测中文姓名识别好坏普遍采取的指标为正确率(P)、召回率(R)和F值。其中,正确率P = (识别正确的姓名总数/系统判定的姓名总数)×100%;召回率R = (识别正确的姓名总数/实际姓名总数)×100%;F= ×100%。
测试结果为P = 90.3%,R= 88.2%,F=89.2%。实验表明本文基于统计和规则对中文姓名识别的效果比较好。可以成为进一步提高自动分词的基础。
5 总结与展望
本文基于统计和规则提出一种中文识别方法,实验表明该方法的正确率和召回率都很高,可以帮助进一步提高自动分词的识别效果。下面考虑继续提高中文姓名的识别效果,比如还有一些动词,如提手旁和足字旁往往也代表了人类的活动。但不是人类特有的,但可以在计算候选姓名概率的时候考虑这些动词的作用,预计会进一步提高中文姓名的识别效果。
参考文献
.中文信息学报,1999:14(3).