文献阅读:利用深度学习模型在生物医学文本的上下文关系中进行命名实体识别

  • 题目
  • 1 背景
  • 2 材料和方法
    • 2.1 GRAM-CNN方法
      • 2.1.1 嵌入方法
      • 2.1.2 GRAM-CNN
      • 2.1.3 CRF
    • 2.2 实施细节
    • 2.3 数据集
    • 2.4 评价标准
  • 3 结果
  • 4 讨论

题目

GRAM-CNN: a deep learning approach with local context for named entity recognition in biomedical text

1 背景

生物医学命名实体识别要比一般命名实体识别问题更复杂,原因为:
1、已经发现的实体数以万计,且数量还在不断增加;
2、同一个实体有许多不同的名字;
3、许多实体名字都很长;
4、生物医学文本中句子都很长。
目前存在的方法有基于词典的方法,基于规则的方法,机器学习的方法,深度学习的方法。机器学习中表现最好的是CRF(条件随机场),但它的性能很大程度上依赖于特征的选择,如正字法、形态学、基于语言学、连接词和基于词典的特征。
文章中说到目前已有的将LSTM运用到NER的方法考虑整个句子的信息,而对于一些句子中包含了和实体识别无关信息的情况,这种方法有些多余,不如利用CNN只考虑上下文几个词的信息。(但我认为考虑整个句子是由道理的,很多医学信息及其关系分布得都很分散,有时候跨句存在)
文章中提出的GRAM-CNN方法,在输入中加入了基于语言学的特征(POS tags词类),使用到了n-gram方法。

2 材料和方法

2.1 GRAM-CNN方法

1、得到词,词类标记集和字符嵌入结果。
2、将一个词的每个字母的字符嵌入结果和它对应的词嵌入结果以及词类嵌入结果聚合起来,得到一个连接向量。
3、将该连接向量输入到GRAM-CNN模型中,该模型有三个卷积核,尺寸分别为1,3,5,输出结果为每个词的局部特征。
4、上一步的输出作为CRF模型的输入,最终输出对应词的标签。
下图为该方法的整体框架。

2.1.1 嵌入方法

词嵌入的预训练模型来自2016年的一篇处理生物医学文本的文献,POS tag使用NLTK工具提取。

原文:During training,we fixed the word embeddings and trained POS tag embedding together with the whole system.(彷佛是词嵌入和词类标记一起训练)
词嵌入方法有一些缺陷,对于不在训练集词典中的词,将无法进行词嵌入表示。为了解决这个问题,文章加入了字符水平的嵌入方法。具体如下图所示,采用CNN结构。

2.1.2 GRAM-CNN

此图为一个示例结构,在该示例中,输入为10个单词,卷积核尺寸为3。为了得到每个单词的局部信息,文章采用和每个单词相关的特征图的信息进行计算(最大池化操作),例如和 w 3 w_3 w3相关的特征图为 f 1 , f 2 , f 3 f_1,f_2,f_3 f1,f2,f3,和 w 10 w_{10} w10相关的特征图为 f 8 f_8 f8
每个单词对应的GRAM-CNN结果再经过一个两层的全连接层,得到一个对应的label。

2.1.3 CRF

若一个句子包含n个单词,用 x x x={ x 1 , . . . , x n x_1,...,x_n x1,...,xn}表示该句子, y y y={ y 1 , . . . , y n y_1,...,y_n y1,...,yn}表示该句子的label。文章使用了CRF的一个变体,它被分解成单个标签的一元势和输出标签之间的每次转换的二元势,具体公式如下(这一部分不是很懂)。

2.2 实施细节

这一部分讲述了各个方法的参数选择和初始化的方法。
1、word embedding时,若某单词无对应的嵌入结果,则用‘UNK’代替;
2、Character embedding和word embedding参数用了dropout
layer;
3、character embedding维度是25,POS tag embedding维度是15;
4、优化器选择SGD,学习率为0.002,衰减率0.95。

2.3 数据集

the BioCreative II Gene Mention task (BC2)
the NCBI disease corpus (NCBI)
the JNLPBA corpus

各个数据集包含的命名实体类型、数据量以及训练集、测试集、验证集划分情况如下图所示。

2.4 评价标准

准确率、召回率、F1 score

3 结果



(这里不懂为什么有些方法只能用于某一个数据集?)

4 讨论

1、GRAM-CNN适用于由一个词或一组连续的词组成的实体的识别,并且对拼写错误也有很强的鲁棒性。但该方法不适用于考虑重叠或不连贯的实体的识别,也不考虑表中出现的实体的识别(因为其只考虑局部相关信息)。
2、该方法耗时较长,对于JNLPBA和BC2数据集,训练过程大概需要五天,对于NCBI数据集,训练过程大约1.5天。
3、该方法对于一些复杂的情况,比如包含连词和标点符号的实体,将无法掌控。

文献阅读:深度学习模型利用生物医学文本上下文关系进行命名实体识别相关推荐

  1. 【深度学习】Transfomer在文本处理上的应用(风格识别)

    [深度学习]Transfomer在文本处理上的应用(风格识别) 文章目录 1 Transformers简介 2 数据预处理 3 作家风格识别 4 实验内容4.1 介绍数据集4.2 数据集预处理4.3 ...

  2. 读文献—基于深度学习模型的APT检测

    我爱读文献 A novel approach for APT attack detection based on combined deep learning model Do Xuan, C., D ...

  3. 【文本数据挖掘】中文命名实体识别:HMM模型+BiLSTM_CRF模型(Pytorch)【调研与实验分析】

    1️⃣本篇博文是[文本数据挖掘]大作业-中文命名实体识别-调研与实验分析 2️⃣在之前的自然语言课程中也完成过一次命名实体识别的实验 [一起入门NLP]中科院自然语言处理作业三:用BiLSTM+CRF ...

  4. 【文本分类】常见文本分类深度学习模型汇总

    在深度学习被广泛用于NLP之前,文本分类任务的常见pipeline为: (1)人工/半自动特征抽取:包括one-hot编码.count features.TF-IDF.词性/句法信息等等 (2)分类器 ...

  5. 机器学习_深度学习毕设题目汇总——文本分类

    下面是该类的一些题目:| 题目 | |–| |基于主题特征的多标签文本分类方法研究| |融合全局和局部特征的文本分类方法研究| |BiGRU-CapsNet文本分类模型研究| |基于Attentio ...

  6. 怎么装python的keras库_matlab调用keras深度学习模型(环境搭建)

    matlab没有直接调用tensorflow模型的接口,但是有调用keras模型的接口,而keras又是tensorflow的高级封装版本,所以就研究一下这个--可以将model-based方法和le ...

  7. 基于深度学习的命名实体识别研究综述——论文研读

    基于深度学习的命名实体识别研究综述 摘要: 0引言 1基于深度学习的命名实体识别方法 1.1基于卷积神经网络的命名实体识别方法 1.2基于循环神经网络的命名实体识别方法 1.3基于Transforme ...

  8. NLP-文本处理:基本技术【命名实体识别、分词、拼写纠错、停用词、词性标注】、文本序列化、文本向量化、文本语料的数据分析、文本特征处理(Ngram特征添加、文本长度规范)、数据增强

    分词(tokenization):英文通过空格或者标点符号,就可以将词分开:而中文的分词会涉及很多问题(未登录词问题.分词歧义问题.分词不一致问题),所以会有各种不同分词的算法. 清洗:我们需要对文本 ...

  9. 知识图谱 基于CRF的命名实体识别模型

    基于CRF的命名实体识别模型 条件随机场 CRF ​ 条件随机场 CRF 是在已知一组输入随机变量条件的情况下,输出另一组随机变量的条件概率分布模型:其前提是假设输出随机变量构成马尔可夫随机场:条件随 ...

最新文章

  1. 线程同步monitor
  2. 六行代码安装 GPU版本的TensorFlow
  3. SUID SGID LINUX 权限安全设置
  4. 学渣笔记之矩阵的导数与迹
  5. php入门代码 基础慕课,php基础入门
  6. mysql references关键字_mysql关键字有哪些?
  7. Python知识点-hashlib模块
  8. pycharm中同时注释多行代码
  9. Python人脸识别之——创建csv文件 create_csv.py 代码 Python3.7
  10. java对音频文件的频谱分析
  11. 破解校园网“一人一号” 高校学子必备秘籍
  12. springboot做梦网云科技短信业务
  13. 检验入参合法性有哪些_参数检验和非参数检验是什么意思
  14. 【C语言打印三角形】
  15. Android Banner图片轮播第三方框架
  16. Java解析XML报文内容及标签属性
  17. 美国各州人口数据分析
  18. 网站收录查询-批量网站收录查询软件
  19. HyperLPR车牌识别库代码分析(12)
  20. 搞机吧 | 刷rec、线刷、卡刷教程

热门文章

  1. 改进YOLO系列 | YOLOv5/v7 更换骨干网络之 MobileNeXt
  2. c语言的整数和数学的整数有什么区别,自然数和整数的区别
  3. 【STC8A8K64S4A12开发板】—4x4矩阵按键检测
  4. 计算机组成对应到人体的部分,计算机组成原理复习 (期末重点考点总结)
  5. SQL挂起,sql2000安装挂起,SQL2000安装挂起问题,sql
  6. Github入门指南
  7. 《软件测试》[(美)Ron Patton]第十二章阅读总结
  8. zookeeper源码编译的坑
  9. 【机器学习】GBDT
  10. 服务器 存储项目合同,海曙区规划与地理信息中心服务器及存储设备采购项目的合同公告...