The Design Of Chinese Name Recognition Supporting tagline
一些关于人名识别的想法和实现
现在已经没什么人研究实体识别了,我偏想要都试验一下,别人提出来的若干方法。模仿之后再创新,这样才能找到最适合自己的方法。
概述
目前对于人名识别的方法,和分词类似,主要基于规则和统计模型,或两者并用。
基于规则的识别方法,主要的问题是识别人名的边界。通常是识别到具有明显特征的词,如姓氏,职位等之后,取前后几个词进行识别。然后再应用上一些限制规则在识别人名。
大多数基于统计模型的方法,主要是解决一个序列标注问题,识别的准确率,在于标注的标记是否精巧,如果仅仅只标注:是人名和非人名两种标记,想必不会有什么好结果。这方面中科院《基于角色标注的中国人名自动识别研究》中提出的角色标注,显然得到较好的试验结果。
另外的一些综合的方法,首先使用基于规则的方法来识别边界,然后再使用一些统计信息(包括条件概率和互信息等)来识别人名。
人名识别在分词系统中的位置
分词系统的设计和实现方式很多,总的来讲有几种,
- 基于词典和词频信息的粗分,然后再进行词法分析和人名识别
- 基于词典、词频信息进行粗分,然后进行人名识别,之后进行词法分析
- 基于统计模型的分类器进行分词,人名识别和分词可以在同一个模型中
人名识别既可以在粗分之后应用,也可以和分词一起完成。也就是说如果基于粗分结果再进行人名识别,那么各种人名识别的方法都可以使用。但是要在分词的同时完成人名识别,则只能和分词使用同一个模型。
人名识别的一些问题
经过测试,如果使用基于规则的方法,或者规则和统计信息相结合的方法,最容易出错的,就是人名的边界识别问题,例如:
- 张三买 教授 的 东西
- 王菲返 港
以上仅是识别错误,何其相对的有人名和上下文组合成词的,例如:
- 这里 有关 天培 的 壮烈 事迹
- 费孝 通向 人大常委会 提交 书面 报告
- 这 几 天王 老 没 在
这上面正好是几个范例,一些句子中,要尽可能识别出人名中不对的部分,另外是要识别出因为错误切分的句子中的人名。
实际情况还有(冒犯一下夏菲返先生)在缺乏上下文判断的情况下,即使是人,下面一句话无论怎么分都是对的:
- 夏菲返回到驻地了。
应用基于规则的方法识别,这些都是近乎矛盾的问题,当然并不是这些问题在基于统计模型的方法里面就不存在。
###目前使用的一些特征 ####常用统计信息 目前在进行人名识别的应用中,普遍使用的一些特征有:
-
人名内聚度,其实就是P(W1,W2|Name)。已知是人名,其姓和名为W1W2的概率。
- 有人觉得这样就可以了,这就是朴素贝叶斯分类了,想想也对,就是不够准而已
- 人名的区分度,其实就是P(Name|W1)。例如冯这个字,只要出现基本都是人名,而王字就不同,天王中的王就不是人名。
-
边界模板,也即在人名的上下文出现过的词。例如"记者.*报道"。
- 这样记录模板可能会消耗性能,如果分为人名的左右两个边界倒是方便很多,也有人将人名的左右边界以互信息的形式作为两个特征来处理。
-
人名的互信息I(XY)或共现概率P(XY)。这是因为人的名字中,每个字一起出现的概率极低。
- 经过实验,使用互信息并不理想,因为字的频率有高低,互信息无法代表人名的共现概率,有时明明这个名字从未出现过,但是它的互信息并不低。
-
下图的分布显示互信息并不合适用于分类,它们相关性太高。
基于统计模型
如果使用统计模型,比较容易解释的是隐马尔可夫模型HMM,中科院基于角色标注的人名识别也是应用HMM进行识别。其角色表如下:
| 编码 | 意义 | 例子 |
|---|---|---|
| B | 姓氏 | (张)华平先生 ;(欧阳)修 |
| C | 双名的首字 | 张(华)平先生 |
| D | 双名的末字 | 张华(平)先生 |
| E | 单名 | 张(浩)说“: 我是一个好人” |
| F | 前缀 | (老) 刘 、(小) 李 |
| G | 后缀 | 王(总) 、刘(老) 、肖(氏) 、吴(妈) 、叶(帅) |
| K | 人名的上文 | 又(来到)于洪洋的家. |
| L | 人名的下文 | 新华社记者黄文(摄) |
| M | 两个中国人名之间的成分 | 编剧邵钧林(和)稽道青说 |
| U | 人名的上文与姓氏成词 | 现任主席(为何)鲁丽. |
| V | 人名的末字与下文成词 | 龚学(平等)领导 |
| X | 姓与双名的首字成词 | (王国)维 、 |
| Y | 姓与单名成词 | (高峰) 、(汪洋) |
| Z | 双名本身成词 | 张(朝阳) |
| A | 其它无关词 | (全军)(和)(武警)(官兵)(深切)(缅怀)邓小平 |
思考HMM的五元组(Pi, Tran, Emis, Observes, States),如何识别出这些种种角色?在于训练语料中是否曾经标注过某词为何种角色!
例如:如果“平等”在训练语料中不曾被标记为V,则“平等”将不可能被识别为V。但是真实情况是还有很多词可以与人名组合成词,所以此方法在真实文本库中的表现依赖语料库的规模。
###基于神经网络的人名判别系统的实验设计 目前我们想到了很多特征,也提到了在那个阶段进行人名识别。
我暂时选择在粗分以及词法分析之后,使用神经网络作为分类器,融合多个特征进行分类。
实验方案和结果之后再慢慢写成博客。
To Be Continue…
blog comments powered by Disqus