NER知识点总结
NER发展
命名实体指的是文本中具有特定意义或者指代性强的实体,通常包括人名、地名、组织机构名、日期时间、专有名词等,命名实体识别就是从一段自然语言处理文本中找出实体,并标注出其位置以及类型。其发展主要经历了从早期基于词典和规则的方法,到传统机器学习的方法,如HMM、最大熵高模型、SVM、CRF,CRF是目前主流模型,到深度学习方法,如NN/CNN-CRF、RNN-CRF,在到近期的基于attention-based、基于迁移学习和半监督学习的方法。为了解决文本中嵌套实体识别,通常采用引入知识和基于阅读理解的方法。
学术上NER所涉及的命名实体一般包含3大类(实体类,时间类,数字类)和7小类(人名、地名、组织机构名、时间、日期、货币、百分比)。
命名实体识别知识在有限的文本类型和实体类别中取得了不错的效果,与其他信息检索领域相比,命名实体预测预料较小,容易产生过拟合;命名实体识别更侧重高召回率,但是在信息检索领域,高准确率更重要;通用的识别多种类型的命名实体的系统性能很差。
基于字典和规则的方法
基于规则的方法
利用手工编写的规则,将文本与规则进行匹配来识别出命名实体。利用到词性、句法信息,在构建规则的过程中往往需要大量的语言学知识,不同语言的识别规则不尽相同,而且需要谨慎处理规则之间的冲突问题;此外,构建规则的过程费时费力、可移植性不好。
基于模板的方法
特征模板是由人工定义的一些二值特征函数,试图挖掘命名实体内部以及上下文的构成特点。对于句子中的给定位置来说,提特征的位置是一个窗口,即上下文位置。而且,不同的特征模板之间可以进行组合来形成一个新的特征模板。
CRF
CRF简介
基于机器学习的方法中,NER被当成是序列标注的问题。与分类方法相比,序列标注问题中当前的预测标签不仅与当前的输入特征相关,还与之前的预测标签相关,即预测标签序列之间是有强相互特征依赖关系的。
在传统机器学习中,条件随机场CRF的目标函数不仅考虑输入的特征状态函数,而且还包含了标签转移特征函数。在训练时可以使用SGD学习模型参数。在已知模型时,给输入序列求预测输出序列即求使目标函数最大化的最优序列,是一个动态规划问题,可以使用维特比算法进行解码。CRF的优点在于其为每一个位置进行标注的过程中可以利用丰富的内部及上下文特征信息。
常用的特征主要有字符级别的n-gram特征,词级别的n-gram特征,前缀,capitalization,symbols,词干,词性,词性,句法解析,上下文文本,引入外部知识,字典信息,其他NER工具中信息。
CRF简介:条件随机场是指在给定随机变量X条件下,输出随机变量Y的条件概率分布模型,其形式为参数化的对数线性模型,条件随机场的最大特点是假设输出变量之间的联合概率分布构成概率无向图模型,即马尔可夫随机场。条件随机场是判别模型。
条件随机场的目标函数不仅考虑输入的状态特征函数,还包含了转移特征函数。在训练时可以使用SGD学习模型参数,损失函数为对数似然函数。在已知模型时,求使目标函数最大化的最优序列,是一个动态规划问题,可以使用为维特比算法进行解码。CRF的优点在于其为每一个位置进行标注的过程中可以利用丰富的内部及上下文特征信息。
HMM模型
定义:隐马尔可夫模型是关于时序的概率模型,描述由一个隐藏的马尔可夫链随机生成不可观测的状态随机序列,再由各个状态生成一个状态而产生观测随机序列的过程。隐藏的马尔可夫链随机生成的状态的序列,成为状态序列;每个状态生成一个观测,而由此产生的观测的随机序列,称为观测序列。
**三要素:**隐马尔可夫模型由初始概率向量 π \pi π,状态转移概率矩阵 A A A以及观测概率矩阵 B B B确定。隐马尔可夫模型 λ \lambda λ可以用三元符号表示,即 λ = ( A , B , π ) \lambda = (A,B,\pi) λ=(A,B,π), A A A, B B B, π \pi π称为隐马尔可夫模型的三要素。隐马尔可夫模型做了两个个假设:
- 齐次马尔可夫性假设,即假设隐藏的马尔可夫链在任意时刻t的状态只依赖于其前一时刻的状态,与其他时刻的状态即观测无关,也与时刻t无关
- 观测独立性假设,即假设任意时刻的观测只依赖于该时刻的马尔可夫链的状态,与其他观测和状态无关。
3个基本问题:
- 概率计算问题:给定模型 λ = ( A , B , π ) \lambda = (A,B,\pi) λ=(A,B,π) 和观测序列 O = ( o 1 , o 2 , . . . o T ) O=(o_1,o_2,...o_T) O=(o1,o2,...oT),计算在模型 λ \lambda λ下观测序列 O O O出现的概率 P ( O ∣ λ ) P(O|\lambda) P(O∣λ)
- 学习问题:已知观测序列 O = ( o 1 , o 2 , . . . , o T ) O=(o_1,o_2,...,o_T) O=(o1,o2,...,oT),估计模型 λ = ( A , B , π ) \lambda = (A,B,\