NeuroNER:一个基于神经网络的简单易用的命名实体识别程序

cherry0 2018-10-18

EMNLP 2017 System Demonstrations

NeuroNER:一个基于神经网络的简单易用的命名实体识别程序

NeuroNER: an easy-to-use program for named-entity recognition based on neural networks

麻省理工学院

MIT

【摘要】命名实体识别(NER)旨在识别一篇文本中的感兴趣实体。近期研究表明,人工神经网络ANN的性能显著优于现有的NER系统性能。然而,对于非专业用户而言,使用ANN仍具有一定的挑战性。在这篇论文中,我们提出了NeuroNER,一个基于人工神经网络的简单易用的命名实体识别工具。用户可以使用一个基于web的图形界面(BRAT)来标注实体,然后,这些标注可用于训练ANN,ANN又反过来可以用于预测新文本中实体的位置和类别。NeuroNER使得这个标注训练预测流程变得平滑,且可为任何人所用。

NeuroNER:一个基于神经网络的简单易用的命名实体识别程序

1 引言

命名实体识别(NER)旨在识别文本中的感兴趣实体,如位置、组织和时间表达式。识别的实体可被用于各类下游应用,如病人病例去标注和信息提取系统。它们还可以被用作其他自然语言处理任务的机器学习系统特征。

早期的NER系统依赖于人工制定的规则。基于规则的系统开发非常耗时,且难以将其转移到新型文本或实体当中。为了解决这些问题,研究人员开发了多种基于机器学习的NER算法,他们使用了各类学习方法,如:全监督学习,半监督学习,无监督学习和主动学习。NeuroNER是一个基于全监督学习的算法,也备受研究与瞩目。(Nadeau and Sekine, 2007)

关于NER的全监督方法包括:支持向量机(SVM)、最大熵模型、决策树、以及诸如隐含马尔可夫模型的连续标签方法和马尔可夫最大熵模型、条件随机场(CRFs)。与基于规则的系统类似,这些方法是基于人工选择的特征,这对于开发而言是耗时且具有挑战性的,同时它难以被运用到新的数据集中。

近期,人工神经网络(ANN)已被证明其性能优于其他的NER监督算法。(Collobert et al., 2011; Lample et al., 2016; Lee et al., 2016; Labeau et al., 2015; Dernoncourt et al., 2016) ANN的有效可以归因于它们直接从训练集中结合模型参数学习有效特征,而非依赖于基于特定数据集开发的人工特征。然而,ANN对于非专业用户而言仍具有一定的挑战性。

贡献:NeuroNER通过聚焦易用性,使得最先进的基于ANN的命名实体识别可为任何人所用。为了使用户可以对新的或现存的语料库标注进行创建和修改,NeuroNER结合了基于web的标注程序BRAT。NeuroNER使得这个标注训练预测流程更加流畅且为任何人可用,同时还利用了人工神经网络的最先进的预测能力。NeuroNER是开源和在线免费的【NeuroNER可以在https://github.com/Franck-Dernoncourt/NeuroNER上获得】。

NeuroNER:一个基于神经网络的简单易用的命名实体识别程序

2 相关工作

现有的面向非专家的公开可用的NER系统不适用于ANN。例如:斯坦福NER,ABNER,MITRE识别洗涤工具包(MIST),BANNER和基于CRFs的NERsuite。GAPSCORE使用SVM,阿帕奇Ctakes和Gate’s ANNIE大多数使用规则。NeuroNER是第一个面向非专家的基于ANN的NER系统,由于ANN具有与模型参数联合学习有效特征的能力,所以NeuroNER更容易被推广到新的语料库。

此外,在大多数情况下,NER系统会假定用户已经有了一个特定数据格式的标注语料库。因此,用户通常需要将语料库进行格式变换,以使得标注工具和语料库能成功连接,但是这个过程非常耗时,且容易发生错误。此外,如果用户想要手动改进NER系统预测的标注(例如:用户想使用NER系统来加速人工注释),他们必须进行额外的数据转换。NeuroNER通过整合BRAT(一个应用广泛且易于使用的标注工具)对此过程进行了简化。

NeuroNER:一个基于神经网络的简单易用的命名实体识别程序

3 系统描述

NeuroNER包含了两个主要组成部分:一个NER引擎和一个带有BRAT的接口。NeuroNER还提供了用于训练的实时监测工具,以及可以加载到NER引擎的预训练模型,以防用户无法访问标注的训练集。图1 展示了整个系统概述。

NeuroNER:一个基于神经网络的简单易用的命名实体识别程序

NeuroNER:一个基于神经网络的简单易用的命名实体识别程序

NeuroNER:一个基于神经网络的简单易用的命名实体识别程序

图1 NeuroNER系统概述。在NeuroNER引擎中,训练集用于训练ANN的参数,验证集用于决定何时停止训练。用户可以通过学习曲线和Tensor实时监测训练过程。为了评估ANN训练,这些标签将被用于测试集,可以通过将预测标签和gold标签进行比较来计算和绘制性能指标。如果同时提供测试集,训练集和验证集,评估则可以同步进行。或者可以在训练后或使用预训练模型后单独进行。最后,NeuroNER引擎可以标注部署集,例如所有没有gold标签的新文本。

3.1 NER引擎

NER引擎输入了三组带有gold标签的数据:训练集、验证集和测试集。另外,它还可以作为部署集的输入,部署集是指任何不带有用户希望标注的gold标签的新文本。组成每组数据的文件应与标注工具BRAT或CoNLL-2003 NER共享任务数据集(Tjong Kim Sang和De Meulder,2003)使用的格式相同,并组织在相应的文件夹中。

NER引擎的ANN包含三层:

  • 字符增强令牌嵌入层
  • 标签预测层
  • 标签序列优化层

字符增强嵌入层将每一个令牌映射到一个向量表示。然后,将对应于令牌序列的向量表示序列输入到标签预测层。标签预测层再输出包含每个相应令牌的每个标签的概率向量序列。最后,基于上一层的概率向量序列,标签序列优化层再输出最可能的预测标签序列。所有的层都是同时学习的,模型结构细节详见(Dernoncourt et al., 2016)

人工神经网络ANN以及训练过程中有几个超参数,如:字符嵌入维度,基于字符的令牌嵌入LSTM维度,令牌嵌入维度和丢弃(Droupout)率。所有的超参数可以指定在一个可读的配置文件中,这样用户就无需去钻研代码了。表1显示了一个配置文件的部分节选。

NeuroNER:一个基于神经网络的简单易用的命名实体识别程序

表1 配置文件的节选部分是在定义ANN和训练过程。用户只需更改dataset_folder参数。其他参数拥有合理的默认值,用户可以选择性进行调整。

3.2 实时监测训练

由于训练一个ANN可能会花费数个小时,甚至数据集很大时会花费数天。基于监测目的,NeuroNER为用户提供了训练期间的实时反馈。反馈是通过两种方式给出:NeuroNER的生成图和TensorBoard。

:NeuroNER生成了数个显示每个时期训练进度和结果的曲线图。曲线包括:随着时间变化的整体F1测度,每个类的正确预测数和错误预测数的可视化混淆矩阵,以及显示了每个类的F1测度,准确度和召回率的分类报告。

TensorBoard:由于NeuroNER是基于TensorFlow的,它利用了TensorBoard的功能。TensorBoard是一套用于检查和理解TensorFlow运行的web应用程序和图像,它允许实时查看被训练的ANN性能。此外,由于它是基于网站的,这些性能还可以与很方便地与其他用户进行远程共享。最后,由于TensorBoard产生的图像是交互性的,用户还可以进一步了解ANN的性能。

3.3 预训练模型

由于时间限制和一些不可用gold标签,一些用户可能不喜欢训练任何ANN模型。例如:如果用户想要标记受保护的健康信息,他们可能无法访问已标记的可标识数据集。为了解决这种需求,NeuroNER提供了一个预先训练模型的数据集,鼓励用户上传自己的训练模型。NeuroNER还带有数个预先训练的令牌嵌入,如word2vec,GloVe。NeuroNER可以在配置文件中指定这些嵌入,而后就可以轻松加载了。

3.4 标注

NeuroNER旨在与免费提供的基于web的标注工具BRAT平滑整合,以使得非专业用户也可以创建或改善标注。特别的,NER解决了两个主要用例:

  • 从头开始创建新的标注,例如:如果目标是标注一个没有可用gold标签的数据集。
  • 改善一个已标记的数据集标注:标注可能已经由另一个人或前一次的NeuroNER完成。

在后一个用例中,用户可以通过在手动改进标注和使用新的标注运行NeuroNER引擎之间迭代,来交互使用NeuroNER以获得更加准确的标注。

NeuroNER可以作为BART格式的输入数据集,并输出BRAT格式的预测值,这样就可以轻松地从标注直接开始训练和可视化分析预测。我们选择BRAT是由于以下两个原因:一是它简单易用,二是它可以被部署为一个允许众包的web应用程序,这样,用户就可以通过诸如亚马逊土耳其机器人(AMT)和矢车菊的众包市场来快速收集到大量标注。

NeuroNER的一大限制是它不允许有重复的BRAT格式的标注。然而,NeuroNER并不仅限于命名实体识别:它还可以用于任意序列标签,比如词性标签和分块。

3.5 系统需求

NeuroNER可以运行在Linux,Mac OS X和Windows上。需要配置Python3.5,Tensor Flow1.0,机器学习算法库和BRAT。提供安装脚本是为了让安装更加简洁明了。如果条件允许的话,可以配备GPU,GPU的数目和CPU的线程数都应当在配置文件中指定。

3.6 性能

为了分析NeuroNER的预测性能,我们使用了两种公开且免费的数据集以进行命名实体识别:分别是CoNLL 2003和i2b2 2014。 CoNLL 2003是一个广泛研究的数据集,具有四种常用的实体类型:个人,组织,位置和各种各样的名字。这里,我们使用了英版的。

i2b2 2014数据集(Stubbs et al., 2015) 是作为2014 i2b2 / UTHealth共享任务Track 1的一部分发布的。它是用于去身份识别的最大的公开数据集,去身份识别也是一种命名实体识别形式,其中实体是诸如患者姓名和电话号码的受保护的患者健康信息。

表1将NeuroNER和CoNLL2003以及i2b2 2014的系统状态进行了比较。尽管NeuroNER的超参数未针对这些数据集进行优化(使用默认超参数),但其性能却与这些最先进的系统不相上下。

NeuroNER:一个基于神经网络的简单易用的命名实体识别程序

4 总结

在这篇文章中,我们提出了NeuroNER,一个基于人工神经网络ANN的命名实体识别(NER)工具,它可为非专业人员所用,且能产生最先进的结果。为了满足许多用户想要创建或改善标注的需求,NeuroNER还与基于web的标注工具BRAT进行了顺利整合。

后台回复“链接”获取最新论文下载链接

相关推荐