序列标注模型结果评估模块seqeval学习使用

      诸如词性标注、命名实体识别等NLP任务都是属于序列标注类型的任务的,本质属于分类任务,对于序列标注类型的模型的结果评估也有对应的模块实现,这里主要是简单进行使用说明。

    模块名叫 seqeval,GitHub地址在这里

     seqeval模块支持的标注格式如下所示:

IOB1
IOB2
IOE1
IOE2
IOBES

    提供的评估指标方法如下所示:

metricsdescription
accuracy_score(y_true, y_pred)Compute the accuracy.
precision_score(y_true, y_pred)Compute the precision.
recall_score(y_true, y_pred)Compute the recall.
f1_score(y_true, y_pred)Compute the F1 score, also known as balanced F-score or F-measure.
classification_report(y_true, y_pred, digits=2)Build a text report showing the main classification metrics. digits is number of digits for formatting output floating point values. Default value is 2.

       可以看到跟分类模型几乎是完全一样的,主要还是:准确率、精确率、召回率、F1值和一个分类评估报告功能。

       安装方式很简单,可以直接使用pip进行安装,具体的安装命令如下:

安装CPU版本
pip install seqeval[cpu]
安装GPU版本
pip install seqeval[gpu]

    官网也给了简单的实例:

from seqeval.metrics import accuracy_score
from seqeval.metrics import classification_report
from seqeval.metrics import f1_score
y_true = [['O', 'O', 'O', 'B-MISC', 'I-MISC', 'I-MISC', 'O'], ['B-PER', 'I-PER', 'O']]
y_pred = [['O', 'O', 'B-MISC', 'I-MISC', 'I-MISC', 'I-MISC', 'O'], ['B-PER', 'I-PER', 'O']]
f1_score(y_true, y_pred)
accuracy_score(y_true, y_pred)
classification_report(y_true, y_pred)

    我们执行结果如下:

     也可以作为回调函数的形式与Keras结合使用,简单的实例如下所示:

labels = ['O', 'B-MISC', 'I-MISC', 'B-ORG', 'I-ORG', 'B-PER', 'B-LOC', 'I-PER', 'I-LOC', 'sO']
id2label = dict(zip(range(len(labels)), labels))
callbacks = [F1Metrics(id2label)]
model.fit(X_train, y_train, validation_data=(X_test, y_test), epochs=epochs,
          batch_size=batch_size, verbose=1, callbacks=callbacks)

      更多详细的内容可以到官方仓库前去学习使用。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

Together_CZ

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值