命名实体识别 NER
文章目录
搭建NER分类器
- 定义实体种类
- 准备训练数据
- 训练NER
评估NER分类器
精确率/召回率
F1-score
NER方法
- 基于规则(比如正则)
- 投票模型(Majority Voting)
- 利用分类模型
- 非时序模型:逻辑回归,SVM …
- 时序模型:HMM,CRF,LSTM-CRF
基于规则的方法(Rule-based Approach)
投票模型(Majority Voting)
简述:统计每一个单词的实体类型,记录针对于每一个单词,概率最大的实体类型。
该模型不需要训练,只需进行统计即可。
比如,我们想输入一句话中每个单词(这里以 phone 为例)的实体类型。
- 遍历语料库中所有的句子。
- 如果这个句子包含phone单词,那么记录下 它的实体类型 比如:count[’ B-tos '] ++.
- 当语料库中所有的句子都遍历了一遍后,那么phone最终的实体类型就是 数组count[ ]中值最大的一个(假设 类型‘B-tos’最大)。
该模型最大的缺点是,以后输出的所有单词的实体类型都固定了。比如这里的phone 以后就永远是 ‘B-tos’.
该模型优点是, 简单。而且效果不会特别差。一般作为基准模型。
基于分类模型-----非时序模型:逻辑回归,SVM …
该方法最只要的一步就是:特征工程
特征工程
在自然语言中常见的特征有:
这里以 “ The professor Colin proposed model for NER in 1999” 中的Colin为例
-
Bag-of-word features
- 当前词:Colin
- 前后词:professor, proposed
- 前前,后后词: the,model
- Bi-gram: professor Colin, Colin Propused
- Tri-gram: …
-
词性----features
- 当前词:名词
- 前后词:名词,动词
- 前前后后词:冠词,名词
-
前缀和后缀
- 当前词:Co, in
- 前后词: pr, or, pr, ed
- 前前后后词:… …
-
当前词的特性
- 词长
- 含有多少个大写字母
- 是否大写开头
- 是否包含 " - "
- 前面词是否包含大写
- 是否包含数字
Feature Encoding
常见的特征种类:离散型(Categoral),连续型(Continue),Ordinal Feature
-
离散型(Categoral feature)
-
连续型(Continue)
比如身高:178,180
A:将连续性数据 直接缩放到 (0, 1)之间
B:将连续性数据 缩放到 高斯分布N(0, 1)之间
C: 连续型 数据 离散化 -
Ordinal Feature
比如像 成绩排名:A,B,C,D,E. 就是一个 Ordinal Feature。总共虽然只有5类,但是类别之间是有大小区别的。比如这里 A - B == B - C.
而离散型(Categoral feature) 的类之间是没有区别的,比如男,女.
处理Ordinal Feature的方法:
- 直接当成 连续型特征
- 进行one -hot
- List item