统一的NER识别模型-Unified NER

论文:Unified Named Entity Recognition as Word-Word Relation Classification

地址:https://arxiv.org/abs/2112.10070

截止到20220308为止的sota

1. 提出两个概念

提出了两个新的概念,将连续、嵌套、不连续实体的识别进行了统一,可用一个模型更好的完成以上三种实体的识别:

NNW:下一个相邻词/字,表示两个字之间的关系

实体中的相邻词

THW-*:头尾token,头尾产生联系,表示出不连续实体的头尾关系,并且和类型*关联。

边界及类型指示作用。

2. 模型架构

1. Encoder Layer: 使用BERT和LSTM提供上下文表示;

2. Encoder Layer之后有两个分支:

  •  一个是虚线部分的Biaffine网络,即双仿射注意力机制(可以参看文章1),其是为了解决嵌套实体、多头选择的问题
  • 二就是实线所示的部分,也即本文提出的方法:其首先经过一个conditional layer normalization层得到Word Embedding,与另外两个Distance Embedding和Region Embedding进行concatenation操作后,过MLP层,然后进行卷积操作。三个Embedding矩阵作者是类比BERT的三种Embedding输入,其中region Embedding 的构建就是基于本文提出的两个概念出发,distance embedding表示句子字词之间的相对距离。

3. 将双仿射网络的输出和卷积的输出进行element-wise 相加,也即对应位置相加,输出后做交叉熵计算loss

整个网络代码也非常清晰:

self.bert = AutoModel.from_pretrained(config.bert_name, cache_dir="./cache/", output_hidden_states=True)
self.dis_embs = nn.Embedding(20, config.dist_emb_size)
self.reg_embs = nn.Embedding(3, config.type_emb_size)
self.encoder = nn.LSTM(lstm_input_size, config.lstm_hid_size // 2, num_layers=1, batch_first=True, bidirectional=True)
self.convLayer = ConvolutionLayer(conv_input_size, config.conv_hid_size, config.dilation, config.conv_dropout)
self.dropout = nn.Dropout(config.emb_dropout)
self.predictor = CoPredictor(config.label_num, config.lstm_hid_size, config.biaffine_size, config.conv_hid_size * len(config.dilation), config.ffnn_hid_size,config.out_dropout)

3. 实验结果

英文sota:

中文sota: 

代码:

https://github.com/ljynlp/W2NER

1. 实体识别之Biaffine双仿射注意力机制 - 知乎

  • 0
    点赞
  • 4
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值