基于卷积注意力神经网络的命名实体识别(CAN-NER)

2024-03-06 10:32

本文主要是介绍基于卷积注意力神经网络的命名实体识别(CAN-NER),希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!

CAN-NER: Convolutional Attention Network for Chinese Named Entity Recognition(NAACL-HLT 2019)

论文要点

该论文提出过去基于词向量和词典中的几个问题:

  1. 模型结果会受词向量和词典覆盖好坏的影响【迁移问题】
  2. 会存在OOV的问题,而命名实体大多为OOV
  3. 词向量会极大增大模型大小【Embeddings Size一直是大头】,使得Finetune训练更难
  4. 没有足够大量的标注数据难以学习好词向量
  5. 大词典会占用大内存和耗时用于特征计算【额,这个应该影响很小】
  6. 词典太大时,难以清除词典中的脏数据【确实很多是noise word】
  7. 词向量和词典训练后难以更新【这个关键】

模型框架

 

  • Convolutional Attention Layer
  1. 目的在于encode char和潜在词【encode the sequence of input characters and implicitly group meaning- related characters in the local context】
  2. 每个字符x=[char ; BMES;pos]组成
  3. 感觉文章表述的Conv Attention就是一个窗口大小为kernel size的Local的Self-Attention而已:

          attention权值由输入emb计算

           得到权值后对emb进行加权求和,就是这一层的输出了

             然后这里说有多个kenel,结果算完后进行sum-pool,但感觉也就是一个multi-head

  • BiGRU-CRF with Global Attention
  1. 卷积层后的输出作为BiGRU的输入
  2. BiGRU输出后加一层最经典的Attention层【在机器翻译Attention那篇经典文章的】
  3. 然后拼接BiGRU输出和Attention输出,经线性变换后输入CRF

模型效果

 

模型优缺点

  1. 文章没有使用word emb,而是直接使用分词边界BMES作为char的特征输入到模型中,确实有一定的作用,不过,这样模型是要基于分词的,这又与基于词典的模型不同
  2. 感觉这里的Attention只是为了强行套上去的,尤其是最后一层BiGRU还要加Attention,实验也没说明这个作用体现在哪?
  3. 而在效果上,其实这个模型对比Lattice-LSTM提升很小

这篇关于基于卷积注意力神经网络的命名实体识别(CAN-NER)的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!



http://www.chinasem.cn/article/779771

相关文章

Python基于微信OCR引擎实现高效图片文字识别

《Python基于微信OCR引擎实现高效图片文字识别》这篇文章主要为大家详细介绍了一款基于微信OCR引擎的图片文字识别桌面应用开发全过程,可以实现从图片拖拽识别到文字提取,感兴趣的小伙伴可以跟随小编一... 目录一、项目概述1.1 开发背景1.2 技术选型1.3 核心优势二、功能详解2.1 核心功能模块2.

Python验证码识别方式(使用pytesseract库)

《Python验证码识别方式(使用pytesseract库)》:本文主要介绍Python验证码识别方式(使用pytesseract库),具有很好的参考价值,希望对大家有所帮助,如有错误或未考虑完全... 目录1、安装Tesseract-OCR2、在python中使用3、本地图片识别4、结合playwrigh

浅谈Redis Key 命名规范文档

《浅谈RedisKey命名规范文档》本文介绍了Redis键名命名规范,包括命名格式、具体规范、数据类型扩展命名、时间敏感型键名、规范总结以及实际应用示例,感兴趣的可以了解一下... 目录1. 命名格式格式模板:示例:2. 具体规范2.1 小写命名2.2 使用冒号分隔层级2.3 标识符命名3. 数据类型扩展命

使用Python和PaddleOCR实现图文识别的代码和步骤

《使用Python和PaddleOCR实现图文识别的代码和步骤》在当今数字化时代,图文识别技术的应用越来越广泛,如文档数字化、信息提取等,PaddleOCR是百度开源的一款强大的OCR工具包,它集成了... 目录一、引言二、环境准备2.1 安装 python2.2 安装 PaddlePaddle2.3 安装

Java中的工具类命名方法

《Java中的工具类命名方法》:本文主要介绍Java中的工具类究竟如何命名,本文给大家介绍的非常详细,对大家的学习或工作具有一定的参考借鉴价值,需要的朋友参考下吧... 目录Java中的工具类究竟如何命名?先来几个例子几种命名方式的比较到底如何命名 ?总结Java中的工具类究竟如何命名?先来几个例子JD

MySQL新增字段后Java实体未更新的潜在问题与解决方案

《MySQL新增字段后Java实体未更新的潜在问题与解决方案》在Java+MySQL的开发中,我们通常使用ORM框架来映射数据库表与Java对象,但有时候,数据库表结构变更(如新增字段)后,开发人员可... 目录引言1. 问题背景:数据库与 Java 实体不同步1.1 常见场景1.2 示例代码2. 不同操作

使用PyTorch实现手写数字识别功能

《使用PyTorch实现手写数字识别功能》在人工智能的世界里,计算机视觉是最具魅力的领域之一,通过PyTorch这一强大的深度学习框架,我们将在经典的MNIST数据集上,见证一个神经网络从零开始学会识... 目录当计算机学会“看”数字搭建开发环境MNIST数据集解析1. 认识手写数字数据库2. 数据预处理的

Pytorch微调BERT实现命名实体识别

《Pytorch微调BERT实现命名实体识别》命名实体识别(NER)是自然语言处理(NLP)中的一项关键任务,它涉及识别和分类文本中的关键实体,BERT是一种强大的语言表示模型,在各种NLP任务中显著... 目录环境准备加载预训练BERT模型准备数据集标记与对齐微调 BERT最后总结环境准备在继续之前,确

Linux命名管道方式

《Linux命名管道方式》:本文主要介绍Linux命名管道方式,具有很好的参考价值,希望对大家有所帮助,如有错误或未考虑完全的地方,望不吝赐教... 目录一、命名管道1、与匿名管道的关系2、工作原理3、系统调用接口4、实现两个进程间通信二、可变参数列表总结一、命名管道1、与匿名管道的关系命名管道由mkf

讯飞webapi语音识别接口调用示例代码(python)

《讯飞webapi语音识别接口调用示例代码(python)》:本文主要介绍如何使用Python3调用讯飞WebAPI语音识别接口,重点解决了在处理语音识别结果时判断是否为最后一帧的问题,通过运行代... 目录前言一、环境二、引入库三、代码实例四、运行结果五、总结前言基于python3 讯飞webAPI语音