【NLP实战系列】Tensorflow命名实体识别实战
实战是学习一门技术最好的方式,也是深入了解一门技术唯一的方式。因此,NLP专栏计划推出一个实战专栏,让有兴趣的同学在看文章之余也可以自己动手试一试。 本篇介绍自然语言处理中一种非常重要的任务:命名实体识别。因为最常见的是Bilstm+CRF模型进行实体识别,本文介绍介绍另外一种有效的模型,Dilated-CNN+CRF模型,但是两种模型的代码都会给出。 作者&编辑 | 小Dream哥 1 命名实体识别任务介绍 笔者在这篇文章中,曾经系统的介绍过命名实体识别任务的相关 概念 和 语料 标注方式 ,不了解的同学可以先阅读这篇文章: 【NLP-NER】什么是命名实体识别? 关于Bilstm和Dilated-CNN两个模型 理论 方面的内容,笔者在这篇文章中做了详细的介绍,不了解的同学可以先阅读这篇文章: 【NLP-NER】命名实体识别中最常用的两种深度学习模型 话不多说,既然是实战篇,我们就赶紧开始吧。 2 数据预处理 1) 查看数据格式 先了解一下数据格式,方便后面进行处理。如下图所示,语料为标准的BIO标注方式, 每个字和标记之间用空格隔开,语料之间用一个空行隔开 。 2)读取训练数据 def load_sentences(path, lower, zeros): """ 加载训练,测试,验证数据的函数 """ sentences = [] sentence = [] num = 0