所谓序列标注:
就是有一个线性序列:X = x_1 , x_2, x_3,......,x_n
给每一个元素打上标签:Y = y_1, y_2, y_3,......, y_n
序列标注任务
1.分词
[B, M, E, S]
B: 代表开始字符
M:代表中间字符
E:代表结束字符
S:代表单字词
例如:我们爱自然语言处理
这句话所得到的的标注序列为:
BESBMMMME
我们 --> BE
爱 --> S
自然语言处理 --> BMMMME
2.词性标注
首先分词,然后对词语打标签
3.命名实体识别
识别文本中出现的实体,比如,地址,人名,机构等特殊实体
[BA, MA, EA, BO, MO, EO, BP, MP, EP, O]
BA:地址首字符
MA:地址中间字符
EA:地址尾字符
BO:机构首字符
MO:机构中间字符
EO:机构尾字符
BP:人名首字符
MP:人名中间字符
EP:人名尾字符
O:不是实体
注意:关键词提取,新词发现, 任务型对话中的词槽提取都可以看作是命名实体识别任务。
baseline
1.匹配
匹配就是在文本中搜索匹配实体的关键词
2.规则
对于一些有规律的实体,可以针对相对的规则,比如前缀后缀或者其他规则,来抽取
3.统计
利用统计学,来找出文献中的一些隐含的规律
前两者是一种专家系统的策略,后者需要大量的统计样本
序列标注任务的难点:
1.难以用规则概括任务中的所有细节;
2.序列元素与标签之间关系的不确定性(例如:工作可以是动词,也可以是名词)
3.标签与标签之前存在一定的关联
4.计算量大
5.数据要求高
基于概率图的模型
1.HMM
隐马尔科夫模型
(最好参看李航的统计学习方法来总结)
2.MEMM
这里需要后期补充学习,最大熵模型MaxEnt,以及最大熵Markov模型
3.CRF
相对于后两种,CRF这种现在最流行的就是Bi-LSTM+CRF
以上三种方法,后期做一个学习补充
基于深度学习的方法
一般工业界现在都是基于Bi-LSTM+CRF,或加上CNN
参考目录
【1】NLP从入门到实践.胡盼盼(比较适合于面试整理--自然语言处理面试)
【2】大佬的博客(1) 序列标注问题概述(介绍的中文分词,命名实体识别以及CRF和LSTM(以及几种baseline)在序列标注上的优劣)