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

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

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

IOB1
IOB2
IOE1
IOE2
IOBES

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

metrics description
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)

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

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

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

    在NLP中,序列标注算法是常见的深度学习模型,但是,对于序列标注算法的评估,我们真的熟悉吗? 在本文中,笔者将会序列标注算法的模型效果评估方法和seqeval的使用. 序列标注算法的模型效果评估 在序 ...

  2. fastNLP工具包, 快速实现序列标注模型

    向AI转型的程序员都关注了这个号???????????? 人工智能大数据与深度学习  公众号:datayx fastNLP是一款轻量级的自然语言处理(NLP)工具包,目标是快速实现NLP任务以及构建复 ...

  3. 使用PaddleFluid和TensorFlow训练序列标注模型

    专栏介绍:Paddle Fluid 是用来让用户像 PyTorch 和 Tensorflow Eager Execution 一样执行程序.在这些系统中,不再有模型这个概念,应用也不再包含一个用于描述 ...

  4. 深度学习baseline模型_深度学习模型在序列标注任务中的应用

    作者 丨e成科技NLP部门自然语言理解小组 王奕磊 背景 序列标注任务是中文自然语言处理(NLP)领域在句子层面中的主要任务,在给定的文本序列上预测序列中需要作出标注的标签.常见的子任务有命名实体识别 ...

  5. 【NLP】蓦然回首:谈谈学习模型的评估系列文章(一)

    统计角度窥视模型概念 作者:白宁超 2016年7月18日17:18:43 摘要:写本文的初衷源于基于HMM模型序列标注的一个实验,实验完成之后,迫切想知道采用的序列标注模型的好坏,有哪些指标可以度量. ...

  6. 新手探索NLP(八)——序列标注

    转载自知乎https://zhuanlan.zhihu.com/p/50184092 NLP中的序列标注问题(隐马尔可夫HMM与条件随机场CRF) Introduction 序列标注问题(sequen ...

  7. 文本分类和序列标注“深度”实践

    ©PaperWeekly 原创 · 作者|周晓江 研究方向|文本分类.文本聚类 本文的主要目的是推广 UNF 代码库,该代码库由笔者在实际工作中做文本分类和序列标注的相关经验抽象而来,欢迎 fork ...

  8. 论文翻译:《Phosvardeep:使用序列信息对磷酸变化的深度学习预测》

    Title:PhosVarDeep: deep-learning based prediction of phospho-variants using sequence information 期刊: ...

  9. 使用RNN解决NLP中序列标注问题的通用优化思路

    /* 版权声明:可以任意转载,转载时请标明文章原始出处和作者信息 .*/ author: 张俊林 (想更系统地学习深度学习知识?请参考:深度学习枕边书) 序列标注问题应该说是自然语言处理中最常见的问题 ...

  10. HanLP《自然语言处理入门》笔记--5.感知机模型与序列标注

    笔记转载于GitHub项目:https://github.com/NLP-LOVE/Introduction-NLP 5. 感知机分类与序列标注 第4章我们利用隐马尔可夫模型实现了第一个基于序列标注的 ...

最新文章

  1. tcp retransmission 出现的原因_为什么 TCP 会被 UDP 取代?
  2. Ant Design Vue 表格内编辑(附完整源码及效果图)
  3. js最简单的几个特效_高阶函数不会用?教你JS中最实用的几个高阶函数用法
  4. 公共的service接口
  5. JVM - 再聊GC垃圾收集算法及垃圾收集器
  6. 【数据结构与算法】之深入解析“恢复二叉搜索树”的求解思路与算法示例
  7. mysql打开sql语句日志
  8. 在WisOne平台上学习TypeScript
  9. Angular应用里使用HTTP服务的一个具体例子
  10. RDLC报表其余空白页问题
  11. pthon_函数式编程与面向对象编程的比较
  12. 超越Excel、python的数据可视化报表,月薪3W的人都在用
  13. 3.深入分布式缓存:从原理到实践 --- 动手写缓存
  14. 从宠物浴液做一个O2​O项目的设想
  15. java二级考试大纲_计算机二级Java考试内容大纲
  16. 克莱姆法则(Cramer's Rule)
  17. 黑苹果安装记录(史上最简单的安装教程——小白福利)
  18. 100道练习理解SQL语法
  19. win10 tensorrtx yolov5使用方法
  20. Oracle之数据对象(同义词、序列、视图、表空间、索引)

热门文章

  1. Power BI连接至Amazon Redshift
  2. [AppScan深入浅出]修复漏洞:会话标识未更新
  3. 线程执行者(八)执行者周期性地运行一个任务
  4. zabbix创建ITEM,运算语法
  5. 算法篇---java算法应用
  6. 单机使用tungsten 同步mysql数据到mongodb
  7. 分析一个文本文件中各个单词出现的频率,把频率最高的10个词打印出来
  8. 在主函数中输入10个等长的字符串。用另一函数对他们排序
  9. 【shell基础】条件测试
  10. 自定义头文件之二------hlib.h(慢慢更新)