个人的理解
基于统计的命名实体识别与基于字标注的中文分词在方法思想上是有很大相似之处的,都是给token不同的角色标注,统计相关的初始概率、转移概率和发射概率,最后利用Viterbi算法进行解码,求得最优标注序列。
不同之处在于,命名实体识别的角色标注是高度定制的。首先就根据人名、地名、机构名分为了三类标注集合,然后再根据是否有嵌套,并结合专家知识进行设计。而基于字标注的中文分词方法一般使用的是4-tag标注系统(B, M, E, S)。
角色标注的增多,很大程度上是与中文命名实体数量众多且构成规律复杂有关的。
中文命名实体的特点
中文命名实体大多数具有以下的特点:
各类命名实体的数量众多:根据对人民日报1998年1月的语料库(共计2,305,896字)进行的统计,共有人名19,965个,而这些人名大多属于未登录词。
命名实体的构成规律复杂:例如由于人名的构成规则各异,中文人名识别又可以细分为中国人名识别、日本人名识别和音译人名识别等;此外机构名的组成方式也最为复杂,机构名的种类繁多,各有独特的命名方式,用词也相当广泛,只有结尾用词相对集中。
嵌套情况复杂:一个命名实体经常和一些词组合成一个嵌套的命名实体,人名中嵌套着地名,地名中也经常嵌套着人名。嵌套的现象在机构名中最为明显,机构名不仅嵌套了大量的地名,而且还嵌套了相当数量的机构名。互相嵌套的现象大大制约了复杂命名实体的识别,也注定了各类命名实体的识别并不是孤立的,而是互相交织在一起的。
长度不确定:与其他类型的命名实体相比,长度和边界难以确定使得机构名更难识别。中国人名一般二至三字,最多不过四字,常用地名也多为二至四字。但是机构名长度变化范围极大,少到只有两个字的简称,多达几十字的全称。在实际语料中,由十个以上词构成的机构名占了相当一部分比例。
中文命名实体识别的方法
目前汉语命名实体识别的方法主要有两种,基于规则的方法和基于统计的方法。
基于规则的方法一般采用特征字(词)触发的方式来进行命名实体识别,比如用中国人名的姓氏用字来触发中国人名的识别,或利用机构名的结尾关键词相对集中的特点来触发机构名的识别。
基于统计的方法主要是通过对大规模语料库内的命名实体以及上下文进行统计分析,构建统计模型来进行命名实体的识别,解决方案有隐马尔可夫模型、最大熵模型、基于Agent的方法和基于类的三元语言模型等。
基于角色标注的命名实体识别
前面说过,基于统计的命名实体识别与基于字标注的中文分词方法很相似,这里所使用的方法就是基于角色标注的命名实体识别方法。
基于角色标注的命名实体识别的基本思想是,根据各类命名实体的构成和用词特点各自制定一套角色标记集,采取Viterbi算法对切分结果进行角色标注(类似于一个简单的词性标注过程),在角色序列的基础上进行简单的模式识别,最终实现中文命名实体的自动识别。
识别过程中,只需要某个词作为特定角色的概率以及角色之间的转移概率。该方法的实用性还在于,这些角色信息只要对真实语料库稍加改动,就可以得到。各类命名实体角色标记集的选取不仅需要根据其自身特点,结合专家知识科学地设定,而且还要通过不断地实验,对角色集进行调整。
总的来说,就是对于不用类型的命名实体,如人名、地名和机构名,都需要高度定制的角色集,不同类型命名实体之间的角色集通用性较差。下面给出几个角色集的示例。
表1 人名识别角色简表
角色 | 意义 | 示例 |
---|---|---|
A | 人名的上文 | 又/来到/于/洪洋/的/家 |
B | 人名的下文 | 新华社/记者/黄/文/摄 |
C | 中国人名的姓 | 张/华/平/先生:欧阳/修 |
D | 双名的首字 | 张/华/平/先生 |
E | 双名的末字 | 张/华/平/先生 |
F | 单名 | 张/浩 |
I | 姓与双名的首字成词 | 记者/盛世/良 |
J | 姓与单名成词 | 著名/学者/何方/同志 |
K | 双名本身成词 | 新华社/记者/兰/红光/摄 |
X | 连接词 | 邵/均/林/和/稽/道/青 |
Z | 其它非人名成分 |
表2 地名识别角色简表
角色 | 意义 | 示例 |
---|---|---|
A | 地名的上文 | 我/来到/中/关/园 |
B | 地名的下文 | 刘家村/和/下岸村/相邻 |
C | 中国地名的首部 | 石/河/子/乡 |
D | 中国地名的中部 | 石/河/子/乡 |
F | 中国地名的末部 | 石/河/子/乡 |
G | 中国地名的后缀 | 海/淀区 |
X | 连接词 | 刘家村/和/下岸村/相邻 |
Z | 其它非地名成分 |
基于层叠隐马尔可夫模型的命名实体识别方法
核心思想:多层HMM,前一层的输出作为后一层的输入。
整个命名实体识别的层叠隐马尔可夫模型由三级互相联系的隐马尔可夫模型构成,自底向上分别为人名识别HMM、地名识别HMM和机构名识别HMM。层级越高,命名实体的识别难度越大。
第一层的人名识别HMM负责将粗分词文本中人名识别出来;第二层的地名识别HMM将第一层处理过后的结果当做输入,识别出其中的地名;最后,机构名识别HMM以第二层的结果作为输入,识别出其中的机构名。
为什么采用这样的层叠方式呢?因为人名的识别较为简单,规律较为可循,嵌套的情况也较少,因此第一层识别人名,之后识别地名。另外,由于机构名最为复杂,嵌套情况最多,实际情况中很可能出现人名地名嵌套在其中的情况,故最后识别机构名。
这三层HMM以如下两种方式相互关联,形成一种紧密的耦合关系:
- 每一层HMM都采用N-Best策略,将产生的最好的若干个结果送到词图中供高层模型使用;
- 低层的HMM通过词语的生成式模型为高层HMM的参数估计提供支持。
参考资料
- 孙镇, 王惠临. 命名实体识别研究进展综述[J]. 现代图书情报技术, 2010(06):42-47.PDF
- 俞鸿魁, 张华平, 刘群,等. 基于层叠隐马尔可夫模型的中文命名实体识别[J]. 通信学报, 2006, 27(02):87-94.PDF
- 实战HMM-Viterbi角色标注中国人名识别
- 实战HMM-Viterbi角色标注地名识别
- 层叠HMM-Viterbi角色标注模型下的机构名识别