NLP(四十)利用seqeval模块获取序列实体识别结果
在文章NLP(二十三)序列标注算法评估模块seqeval的使用中,笔者首次介绍了seqeval
模块,它可以帮助我们很好地完成序列标注算法的模型效果评估,并且能在Keras模型训练过程中引入。
其实,在seqeval
模块中还有一个get_entities
函数,它能帮助我们迅速地从一个标注序列中获取完整实体,支持常规的BIO、BMESO等标注方式。让我们来看下该函数的源代码:
1 |
|
该函数的输入为标注序列,输出结果为实体列表,包含实体类型、实体开始下标和结束下标。
我们以文章NLP入门(六)pyltp的介绍与使用中的命名实体识别程序为例,同时采用自己提取标注序列中的实体识别信息和使用seqeval模块提取标注序列中的实体识别信息两种方式,实现代码如下:
1 |
|
输出结果如下:
1 |
|
我们再尝试两个句子,识别结果如下:
1 |
|
1 |
|
从上我们可以发现:
使用seqeval的实现方式与自己的实现方式效果一致;
seqeval的实现方式更加简洁高效,从代码上看,seqeval只需3-4行代码,而自己实现需20-30行代码。
本文介绍了如何使用seqeval模块快速地从标注序列中提取实体识别结果,这是我们在做命名实体识别任务时经常会碰到的问题,使用seqeval能够提升我们的工作效果,使代码更加简洁优雅。
本次分享到此结束,感谢大家阅读~
2021年3月5日于上海杨浦
欢迎关注我的知识星球“自然语言处理奇幻之旅”,笔者正在努力构建自己的技术社区。
NLP(四十)利用seqeval模块获取序列实体识别结果
https://percent4.github.io/NLP(四十)利用seqeval模块获取序列实体识别结果/