ner 评估指标_序列标注算法评估模块 seqeval 的使用

在NLP中,序列标注算法是常见的深度学习模型,但是,对于序列标注算法的评估,我们真的熟悉吗?

在本文中,笔者将会序列标注算法的模型效果评估方法和seqeval的使用。

序列标注算法的模型效果评估

在序列标注算法中,一般我们会形成如下的序列列表,如下:

['O', 'O', 'B-MISC', 'I-MISC', 'B-MISC', 'I-MISC', 'O', 'B-PER', 'I-PER']

一般序列标注算法的格式有BIOIOBESBMES等。其中,实体指的是从B开头标签开始的,同一类型(比如:PER/LOC/ORG)的,非O的连续标签序列。

常见的序列标注算法的模型效果评估指标有准确率(accuracy)、查准率(percision)、召回率(recall)、F1值等,计算的公式如下:

  • 准确率: accuracy = 预测对的元素个数/总的元素个数

  • 查准率:precision = 预测正确的实体个数 / 预测的实体总个数

  • 召回率:recall = 预测正确的实体个数 / 标注的实体总个数

  • F1值:F1 = 2 *准确率 * 召回率 / (准确率 + 召回率)

举个例子,我们有如下的真实序列y_true和预测序列y_pred,如下:

y_true = ['O', 'O', 'O', 'B-MISC', 'I-MISC', 'I-MISC', 'O', 'B-PER', 'I-PER']
y_pred = ['O', 'O', 'B-MISC', 'I-MISC', 'B-MISC', 'I-MISC', 'O', 'B-PER', 'I-PER']

列表中一个有9个元素,其中预测对的元素个数为6个,那么准确率为2/3。标注的实体总个数为2个,预测的实体总个数为3个,预测正确的实体个数为1个,那么precision=1/3, recall=1/2, F1=0.4。

seqeval的使用

一般我们的序列标注算法,是用conlleval.pl脚本实现,但这是用perl语言实现的。在Python中,也有相应的序列标注算法的模型效果评估的第三方模块,那就是seqeval,其官网网址为:https://pypi.org/project/seqeval/0.0.3/ 。

seqeval支持BIOIOBES标注模式,可用于命名实体识别,词性标注,语义角色标注等任务的评估。

官网文档中给出了两个例子,笔者修改如下:

例子1:

  • 1
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值