一些关于人名识别的想法和实现

现在已经没什么人研究实体识别了,我偏想要都试验一下,别人提出来的若干方法。模仿之后再创新,这样才能找到最适合自己的方法。

概述

目前对于人名识别的方法,和分词类似,主要基于规则和统计模型,或两者并用。

基于规则的识别方法,主要的问题是识别人名的边界。通常是识别到具有明显特征的词,如姓氏,职位等之后,取前后几个词进行识别。然后再应用上一些限制规则在识别人名。

大多数基于统计模型的方法,主要是解决一个序列标注问题,识别的准确率,在于标注的标记是否精巧,如果仅仅只标注:是人名和非人名两种标记,想必不会有什么好结果。这方面中科院《基于角色标注的中国人名自动识别研究》中提出的角色标注,显然得到较好的试验结果。

另外的一些综合的方法,首先使用基于规则的方法来识别边界,然后再使用一些统计信息(包括条件概率和互信息等)来识别人名。

人名识别在分词系统中的位置

分词系统的设计和实现方式很多,总的来讲有几种,

  1. 基于词典和词频信息的粗分,然后再进行词法分析和人名识别
  2. 基于词典、词频信息进行粗分,然后进行人名识别,之后进行词法分析
  3. 基于统计模型的分类器进行分词,人名识别和分词可以在同一个模型中

人名识别既可以在粗分之后应用,也可以和分词一起完成。也就是说如果基于粗分结果再进行人名识别,那么各种人名识别的方法都可以使用。但是要在分词的同时完成人名识别,则只能和分词使用同一个模型。

人名识别的一些问题

经过测试,如果使用基于规则的方法,或者规则和统计信息相结合的方法,最容易出错的,就是人名的边界识别问题,例如:

  • 张三买 教授 的 东西
  • 王菲返

以上仅是识别错误,何其相对的有人名和上下文组合成词的,例如:

  • 这里 有关 天培 的 壮烈 事迹
  • 费孝 通向 人大常委会 提交 书面 报告
  • 这 几 天王 老 没 在

这上面正好是几个范例,一些句子中,要尽可能识别出人名中不对的部分,另外是要识别出因为错误切分的句子中的人名。

实际情况还有(冒犯一下夏菲返先生)在缺乏上下文判断的情况下,即使是人,下面一句话无论怎么分都是对的:

  • 夏菲返回到驻地了。

应用基于规则的方法识别,这些都是近乎矛盾的问题,当然并不是这些问题在基于统计模型的方法里面就不存在。


###目前使用的一些特征 ####常用统计信息 目前在进行人名识别的应用中,普遍使用的一些特征有:

  • 人名内聚度,其实就是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

Published

04 October 2013

Tags