文本分词、词性标注和命名实体识别是自然语言处理领域的基本任务,其准确性直接影响到后续任务的效果。尽管在研究生期间我曾参与相关项目,但对命名实体识别的理解始终停留在表面。最近,我决定重新深入学习这项技术,通过实践来系统地掌握命名实体识别的相关知识与应用。
在现代应用中,深度学习几乎渗透到所有任务中,许多子任务的发展历程相似。最初,研究和应用主要集中在机器学习领域,但随着深度学习模型的不断进步,命名实体识别等序列标注任务也开始广泛采用这些方法。早期就有基于LSTM和CRF的深度学习实体识别研究,但由于与我之前的工作方向不符,我未能深入关注。如今,我正好在学习命名实体识别,之前已经基于机器学习实现了简单的NER,接下来将基于深度学习模型实现该任务。
命名实体识别属于序列标注任务,实际上更接近于分类任务,NER的目标是在文本中识别预定义的实体类型。
作为序列标注问题,NER的数据标注方式也遵循相应的标准,主要有BIO和BIOES两种标注方式。这里我们直接介绍BIOES,理解了BIOES后,BIO的概念也能自然掌握。
BIOES各个标记的含义如下:
B:Begin,表示开始;I:InteRMediate,表示中间;E:End,表示结尾;S:Single,表示单个字符;O:OtheR,表示其他,用于标记无关字符。
例如,对于以下句子:
姚明去哈尔滨工业大学体育馆打球了
其标注结果为:
姚明 去 哈尔滨工业大学 体育馆 打球 了 B-PER E-PER O B-ORG I-ORG I-ORG I-ORG I-ORG I-ORG E-ORG B-LOC I-LOC E-LOC O O O
简单回顾到此,接下来进入实践部分,首先是数据集。数据集来源于网络,下面是样例数据:

tRAIn_data部分的样例数据如下:
当 O ϣ O 望 O 工 O 程 O 救 O 助 O 的 O 百 O 万 O 儿 O ͯ O 成 O 长 O 起 O
