nlp第八节——序列标注任务
一、介绍
序列标注任务是基于文本中的每个时间步做分类,得到每个时间步的标签
对于输入:X1X2X3X4….Xn
预测输出:Y1Y2Y3Y4……Yn
应用场景:
分词,词性标注,句法分析,命名实体识别(NER)等
二、命名实体识别
BA:地址左边界 MA:地址内部 EA:地址右边界
BO:机构左边界 MO:机构内部 EO:机构右边界
BP:人名左边界 MP:人名内部 EP:人名右边界
O:无关字
深度学习:
基于神经网络,将每个token向量化,预测分类标签
crf:
crf是基于分类后的概率分布训练出一个转移概率矩阵的,维度是label nums×label nums
crf的loss定义为:
经过crf场后会得到一个转移概率矩阵,所以我们还需要一个解码过程:
beamsearch:
在每个结点x上只保留下一列节点中到x概率最大的beamsize个结点的路径,复杂度为n(层数)×beamsize×D
维特比解码:
在每个结点x上只保留前一列节点中到他概率最大的那条路经(转移概率乘前面那个结点上的概率),复杂度为n(层数)×D×D
NER的评价指标:
序列标注准确率 ≠ 实体挖掘准确率
因为可能出现前三个字预测正确,但是最后一个字预测错误,这样正确率高,但是实体挖掘准确率不高。实体需要完整命中才能算正确。
准确率(accuracy):预测的准确率。TP(true positive)+TN(true negative)/TP+TN+FP(false positive)+FN(false negative)
召回率(recall):在正样本中召回正样本的比例。TP/TP+FN
precision:TP/TP+NP
F1值:
macroF1:对所有类别的F1值取平均
microF1:将所有样本的召回率、准确率一起计算,最后带入算F1值
两种计算方式的区别在于样本是否均衡。
句子级别的序列标注:
将每句话进行向量化,之后仅需进行序列标注