美文网首页
命名实体泛读系列(一)—— Named Entity Recog

命名实体泛读系列(一)—— Named Entity Recog

作者: DataArk | 来源:发表于2019-08-10 15:34 被阅读0次

    一、写在前面的话

    命名实体识别(NER)是许多自然语言处理任务的基本组成部分。该领域现有的监督方法往往需要大量的标记数据,而这通常非常昂贵且耗时。在这篇论文中,作者探索了仅使用未标记数据和收集的与数据集相关的实体字典的半监督的命名实体方法。文中将任务定义为一个正未标记(PU, Positive-Unlabeled)学习问题(简单理解就是存在一定的正标签但数据集未进行标记的任务),并据此提出了一种新的PU学习算法来执行该任务。该论文证明了该算法可以像有完全标记的数据一样,无约束地、一致地估计任务损失。该方法的一个关键创新在于它不要求词典标记句子中的每个实体,甚至不要求词典覆盖实体,大大降低了对词典质量的要求,是非常有意义的命名实体算法。

    二、论文模型

    该模型首先使用最大匹配算法进行数据标注(这里直接对词进行正负类的标定,而不是BIO等形式),再通过拼接字符级别词嵌入、词级别词嵌入和人工设计的特征,构建BiLSTM模型并对文本的词进行预测,最后使用AdaSampling的方法进行词典扩充。

    1. 数据标注

    由于词典并能包含一句话中的所有实体,故作者使用二分类对每个词进行标记,通过最大匹配算法使得实体单词被标记为正类,非实体单词被标记为负类。

    2. 模型构建

    作者主要使用三种词向量:

    • 字符级别词向量

    • 正常的词向量,使用的是GloVe的词嵌入方法

    • 人工特征向量(这是一个0|1向量,即满足任一条件即置为1):allCaps(是否全部为大写)、upperInitial(首字母大写)、lowercase(是否为小写)、mixedCaps和noinfo。

    将三种词向量拼接输入BiLSTM中:

    最后经过sigmoid函数进行分类:

    3. 损失函数

    其中

    作者在文中对PU学习这一特殊任务做了推导,推出了无偏损失函数,具体过程可以参考作者github给出的更详细的推导补充

    4. 标签推理和词典扩充

    经过训练的PU分类器可以用来进行标签预测。因为每个实体类型有着不同的分类器,所以同一个实体单词可能被分类为不同的正类。所以作者选取概率最大的正类作为该单词的类别,同时其他类型分类器的预测归零。解决正类冲突之后,作者使用最大匹配的原则对连续实体单词进行分类,得到最终的实体单词标签预测,并且使用AdaSampling对词典进行扩充。此方法为不断迭代PU学习算法,并把每一次标注出的结果加入到字典中,直到字典的大小不在变化。

    三、实验结果

    作者选取了几个基线模型,分别是直接用词典预测(Matching),使用完全标注数据,BIOES和神经网络模型进行预测(BiLSTM),使用交叉熵作为损失函数的PU模型(uPU),没有使用非负约束并且实行字典扩大的PU模型(buPU),仅仅没使用字典扩大的PU模型(bnPU),和完整PU模型(adaPU)。除此之外还对比了斯坦福NER的基于最大熵的马尔可夫模型方法(MEMM),斯坦福条件随机场方法(CRF)还有基于神经网络的模型(BiLSTM+CRF)。具体结果如下:

    可以看出,作者在文中提出的损失函数对PU学习有相当大的帮助,同时也证明论文提出的算法能在有限的词典的基础上做到相当不错的结果,哪怕与监督算法相比也并没有逊色太多。

    该论文算法相当具有实践价值,在实际做命名实体任务时,我们经常会遇到有一定的词典,但是没有专门标注的数据集这一棘手的问题。该论文的算法为我们在遇到这种问题时提供了一个有效的方案。

    参考

    1. https://blog.csdn.net/a609640147/article/details/91048682

    相关文章

      网友评论

          本文标题:命名实体泛读系列(一)—— Named Entity Recog

          本文链接:https://www.haomeiwen.com/subject/gejrjctx.html