NER综述 | 命名实体识别的过去和现在

共 16370字,需浏览 33分钟

 ·

2021-11-14 03:22

点击上方“程序员大白”,选择“星标”公众号

重磅干货,第一时间送达

转载 | PaperWeekly

作者 | 周志洋

单位 | 腾讯算法工程师

方向 | 对话机器人


命名实体识别(NER, Named Entity Recognition),是指识别文本中具有特定意义的实体,主要包括人名、地名、机构名、专有名词等。


本文将以 BERT 作为时间节点,详细介绍 NER 历史使用过的一些方法,以及在 BERT 出现之后的一些方法。


01 NER—过去篇


本节将从以下方面展开:



1.1 评价指标


使用实体级别的精确率、召回率、F1。


1.2 基于词典和规则的方法


利用词典,通过词典的先验信息,匹配出句子中的潜在实体,通过一些规则进行筛选。

或者利用句式模板,抽取实体,例如模板“播放歌曲${song}”,就可以将query=“播放歌曲七里香”中的 song= 七里香抽取出来。

正向最大匹配 & 反向最大匹配 & 双向最大匹配。


原理比较简单,直接看代码:
https://github.com/InsaneLife/MyPicture/blob/master/NER/ner_rule.py

正向最大匹配:从前往后依次匹配子句是否是词语,以最长的优先。

后向最大匹配:从后往前依次匹配子句是否是词语,以最长的优先。

双向最大匹配原则:

  • 覆盖 token 最多的匹配。

  • 句子包含实体和切分后的片段,这种片段+实体个数最少的。


1.3 基于机器学习的方法


CRF,原理可以参考:Conditional Random Fields: Probabilistic Models for Segmenting and Labeling Sequence Data


在随机变量 X 取值为 x 的条件下,随机变量 Y 取值为 y 的条件概率为:


其中 是特征函数(如上图), 对应权值,是规范化因子。

来(chao)自李航的统计学习方法


1.4 引入深度学习语义编码器


1.4.1 BI-LSTM + CRF


Bidirectional LSTM-CRF Models for Sequence Tagging [2]


BI-LSTM-CRF 模型可以有效地利用过去和未来的输入特征。借助 CRF 层, 它还可以使用句子级别的标记信息。BI-LSTM-CRF 模型在 POS(词性标注),chunking(语义组块标注)和 NER(命名实体识别)数据集上取得了当时的 SOTA 效果。同时 BI-LSTM-CRF 模型是健壮的,相比之前模型对词嵌入依赖更小。

文中对比了 5 种模型:LSTM、BI-LSTM、CRF、LSTM-CRF、BI-LSTM-CRF,LSTM:通过输入门,遗忘门和输出门实现记忆单元,能够有效利用上文的输入特征。BI-LSTM:可以获取时间步的上下文输入特征。CRF:使用功能句子级标签信息,精度高。




比较经典的模型,BERT 之前很长一段时间的范式,小数据集仍然可以使用。


1.4.2 stack-LSTM & char-embedding


Neural Architectures for Named Entity Recognition [3]


stack-LSTM :stack-LSTM 直接构建多词的命名实体。Stack-LSTM 在 LSTM 中加入一个栈指针。模型包含 chunking 和 NER(命名实体识别)。

1. 堆栈包含三个:output(输出栈/已完成的部分),stack(暂存栈/临时部分),buffer(尚未处理的单词栈)。

2. 三种操作(action):
  • SHIFT:将一个单词从 buffer 中移动到 stack 中;

  • OUT:将一个单词从 buffer 中移动到 output 中;

  • REDUCE:将 stack 中的单词全部弹出,组成一个块,用标签 y 对其进行标记, 并将其 push 到 output 中。


3. 模型训练中获取每一步的 action 的条件概率分布,标签是真实每一步  action 的概率分布。预测时候,同坐预测每一步 action 概率,用概率最大 action 来执行 action 操作。

4. 在 REDUCE 操作输出 chunking 块之后,通过 lstm 对其编码输出 chunk 的向量表达,然后预测其标签。

举例见图示:


stack-LSTM 来源于:Transition-based dependency parsing with stack long-short-term memory [4]


同时使用初始化的 char-embedding,对于每一个词语,通过 BI-LSTM 将字符编码作为输入,输出词语的字符级别表达,然后 concat 词向量输入到 BI-LSTM + CRF。

1.4.3 CNN + BI-LSTM + CRF


End-to-end Sequence Labeling via Bi-directional LSTM- CNNs-CRF [5]


通过 CNN 获取字符级的词表示。CNN 是一个非常有效的方式去抽取词的形态信息(例如词的前缀和后缀)进行编码的方法,如图。


然后将 CNN 的字符级编码向量和词级别向量 concat,输入到 BI-LSTM + CRF 网络中,后面和上一个方法类似。整体网络结构:


1.4.4 IDCNN


2017 Fast and Accurate Entity Recognition with Iterated Dilated Convolutions [6]


针对 Bi-LSTM 解码速度较慢的问题,本文提出 ID-CNNs 网络来代替 Bi-LSTM,在保证和 Bi-LSTM-CRF 相当的正确率,且带来了 14-20 倍的提速。句子级别的解码提速 8 倍相比于 Bi- LSTM-CRF。

CNN 缺点:CNN 的上下文信息取决于窗口的大小,虽然不断地增加 CNN 卷积层最终也可以达到使每个 token 获取到整个输入句子作为上下文信息,但是其输出的分辨表现力太差。

于是出现了扩张卷积(or 空洞卷积):对于扩张卷积,有效输入宽度可以随着深度呈指数增长,在每层不会有分辨率损失,并且可以估计一定数量的参数。


1.4.5 胶囊网络


Joint Slot Filling and Intent Detection via Capsule Neural Networks [7]

Git: https://github.com/czhang99/Capsule-NLU


NLU 中两个重要的任务,Intent detection 和 slot filling,当前的无论 pipline 或者联合训练的方法,没有显示地对字、槽位、意图三者之间的层次关系建模。

本文提出将胶囊网络和 dynamic routing-by-agreement 应用于 slot filling 和 intent detection 联合任务。

1. 使用层次话的胶囊网络来封装字、槽位、意图之间的层次关系。

2. 提出 rerouting 的动态路由方案建模 slot filling。

网络分为 WordCaps、SlotCaps、IntentCaps。胶囊网络原理参考:Dynamic Routing Between Capsules [8]

WordCaps:对于输入 ,输入 BI-LSTM 编码成为 T 个胶囊向量 ,和普通 BI-LSTM 并无区别:


SlotCaps:这里有 k 个 slotCaps,对应 k 个 ner的标签。作者利用第 t 个 wordCap 对于第k个 slotCap 的动态路由权重 作为第 t 个字的 ner 预测标签的概率。初始向量:

通过动态路由算法,更新权重:


输出胶囊向量:


最终 slot filling 的损失为:


IntentCaps:输入是 slotCaps 的输出胶囊向量,第 k 个 slotCap 对第 l 个 intentCap 的表达向量:


同样通过动态路由算法获得输出胶囊向量,向量的模作为属于 l 类的概率:


损失使用了 max-margin Loss:


Re-Routing:为了将 Intent 的信息提供给 NER 使用,提出了 Re-Routing 机制,它和动态路由机制很像,唯一改动在于权重更新中同时使用了 ,其中 是 norm 值最大的胶囊向量。


1.4.6 Transformer


BERT: Pre-training of Deep Bidirectional Transformers for Language Understanding [10]


直说吧,就是 BERT,bert 之前万年 bilstm+crf,bert 之后,基本没它什么事儿了,bert 原理不多赘述,应用在 NER 任务上也很简单,直接看图,每个 token 的输出直接分类即可:


1.5 语义特征


1.5.1 char-embedding


Neural Architectures for Named Entity Recognition [9]


将英文字符拆解为字母,将词语的每个字母作为一个序列编码,编码器可以使用 rnn,cnn 等。


1.5.2 Attending to Characters in Neural Sequence Labeling Models


Attending to Characters in Neural Sequence Labeling Models [12]


使用了单词或字符级别 embedding 组合,并在两种 embedding 之间使用 attention 机制“灵活地选取信息”,而之前模型是直接将两种 embedding concat。


直接看公式,z 是一个动态权重:


并交叉熵上增加额外的 loss:


非 OOV 单词希望 m 和 x 越相似越好。

char-embedding 学习的是所有词语之间更通用的表示,而 word-embedding 学习的是特特定词语信息。对于频繁出现的单词,可以直接学习出单词表示,二者也会更相似。


1.5.3 Radical-Level Features(中文部首)


Character-Based LSTM-CRF with Radical-LevelFeatures for Chinese Named Entity Recognition [13]


也是一种 char embedding 方法,将每个中文字拆分为各个部首,例如“朝”会被拆分为字符:十、日、十、月。后面结构都类似。

1.5.4 n-gram prefixes and suffixes


Named Entity Recognition with Character-Level Models [14]


提取每个词语的前缀和后缀作为词语的特征,例如:“aspirin” 提取出 3-gram 的前后缀:{"asp", "rin"}.

包含两个参数:n、T。n 表示 n-gram size,T 是阈值,表示该后缀或者前缀至少在语料库中出现过 T 次。

1.6 多任务联合学习


1.6.1 联合分词学习


Improving Named Entity Recognition for Chinese Social Mediawith Word Segmentation Representation Learning [15]


将中文分词和 NER 任务联合起来。使用预测的分割标签作为特征作为 NER 的输入之一,为 NER 系统提供更丰富的边界信息。


分词语料目前是很丰富的。如果目标域数据量比较小,不妨用分词的语料作为源域,来预训练一个底层编码器,然后再在目标域数据上联合分词任务 fine-tuning。

1.6.2 联合意图学习


slot-gated


Slot-Gated Modeling for Joint Slot Filling and Intent Prediction [16]


slot-gated 这篇文章提出了 slot-gate 将槽位和意图的关系建模,同时使用了 attention 方法,所以介绍这篇文章直接一起介绍 attention,之前 attention 相关的就不介绍了。


底层特征:使用 BiLSTM 结构,输入:,输出:

attention:

slot filling attention 权重计算:


,和 一致。 计算的是 和当前输入向量 之间的关系。作者 TensorFlow 源码 用的卷积实现,而 用的线性映射 _linear()。T 是 attention 维度,一般和输入向量一致。

slot:


Intent Prediction:其输入时 BiLSTM 的最后一个单元的输出 以及其对应的 context 向量,c 的计算方式和 slot filling 的一致,相当于其 i=T。



Attention 具体细节见:Attention-Based Recurrent Neural Network Models for Joint Intent Detection and Slot Filling [19],博客:
https://blog.csdn.net/shine19930820/article/details/109756345?spm=1001.2014.3001.5501

slot-Gate

利用意图上下文向量来建模槽意图关系,以提高槽填充性能。如图 3:


槽位的 context 向量和意图的 context 向量组合通过门结构(其中 v 和 W 都是可训练的):


,d 是输入向量 h 的维度。
,获得 的权重。
论文源码使用的是:

用 g 作为预测 的权重向量:



Stack-Propagation


A Stack-Propagation Framework with Token-level Intent Detection for Spoken Language Understanding [18]
Git: https://github.com/%20LeePleased/StackPropagation-SLU


首先什么是 Stack-Propagation 呢,如下图所示:


它是区别于多任务,不同的任务通过 stack(级联?)的方式一起学习优化。


然后本文将意图任务的输出 stack 输入给 NER 任务,具体做法:

  • Token intent(意图阶段):假设每个 token 都会有一个意图的概率分布(标签是句子的意图,通过大量数据训练,就能够学到每个 token 的意图分布,对于每个意图的‘偏好’),最终句子的意图预测通过将每个 token 的意图预测结果投票决定。
  • Slot Filling:输入包含下面三部分:,其中 是上一阶段 token intent 的预测结果的 intent id,然后经过一个意图向量矩阵,转化为意图向量,输入给实体预测模块,解码器就是一层 lstm+softmax。




1.6.3 BERT for Joint Intent Classification and Slot Filling


BERT for Joint Intent Classification and Slot Filling [19]


原理如图,底层编码器使用了 BERT,token 的输出向量接 softmax 预测序列标签,cls 向量预测意图。


bert 之后,似乎之前的一些优化都变成了奇技淫巧,那么就没有新的方法了吗?bert 之前实体识别都是以序列标注(sequence labeling)来识别,没有其他的解码方式吗?关于 NER 的现在,且往下看。


02 NER—现在篇

本节将从以下方面展开:



2.1 解码框架(Framework)

这里归类的解码器似乎也不太合适,但是也找不到好的了。

sequence labeling(序列标注)将实体识别任务转化为序列中每个 token 的分类任务,例如 softmax、crf 等。相比于 sequence labeling 的解码方式,最近也有很多新的解码方式。

2.1.1 span

SpanNER: Named EntityRe-/Recognition as Span Prediction [20]
Coarse-to-Fine Pre-training for Named Entity Recognition [21]
本质是预测实体的开始和结束节点,即对于每个 token 都会预测它是不是某个实体的开始和结束,对于多实体类型,有两种方式:
1. 对于每个 token,会预测 start 和 end,对于 start,是一个多分类 (N+1) 任务,N 是实体个数:
2. 对于每一个类别,都预测对应的 start 和 end。



这种方式的优点是,可以解决实体嵌套问题。但是也有一个缺点,就是预测实体的 start 和 end 是独立的(理论上应该联合 start 和 end 一起考虑是否是一个实体),解码阶段容易解码出非实体,例如:


token“林”预测为 start,“伟”预测为 end,那么“林丹对阵李宗伟”也可以解码为一个实体。
所以,span 更适合去做实体召回,或者句子中只有一个实体(这种情况应该很少),所以阅读理解任务一般会使用功能 span 作为解码。
损失函数:



2.1.2 MRC(阅读理解)


A Unified MRC Framework for Named Entity Recognition [22]
这个方法很有意思,当我们要识别一句话中的实体的时候,其实可以通过问题和答案的方式。解码阶段还是可以使用 crf 或者 span。例如:
问题:句子中描述的人物是?;句子:林丹在伦敦夺冠;答案:林丹;



个人主观意见认为不实用,原因如下:
  • 对于不同的实体,需要去构建问题模板,而问题模板怎么构建呢?人工构建的话,那么人构建问题的好坏将直接影响实体识别。
  • 增加了计算量,原来输入是句子的长度,现在是问题+句子的长度。
  • span 的问题,它也会有(当然 span 的优点它也有),或者解码器使用 crf。


2.1.3 片段排列+分类


Span-Level Model for Relation Extraction [23]
Instance-Based Learning of Span Representations [24]
其实 span 还是属于 token 界别的分类任务,而片段排列+分类的方式,是直接对于所有可能的片段,输入是 span-level 的特征,输出的是实体的类别。片段排列会将所有可能的 token 组合作为输入进行分类,例如:



span-leval 特征一般包含:
  • 片段的编码,pooling 或者 start 和 end 向量的拼接,一般比较倾向于后者。
  • 片段的长度,然后通过 embedding 矩阵转为向量。
  • 句子特征,例如 cls 向量。
模型的话,参考这个模型,其中的 a,b 阶段是实体识别:



SpERT:Span-based Joint Entity and Relation Extraction with Transformer Pre-training [25]
缺点:
  • 对于长度为 N 的句子,如果不限制长度的话,会有 N(N+1)/2,长文本的话,片段会非常多,计算量大,而且负样本巨多,正样本极少。

  • 如果限制候选片段长度的话,那么长度又不灵活。

其实刚刚讲到 span 合适用来做候选召回,那么 span 的预测结果再用分类的方式进行识别,也不失为一种方式。

2.2 融合知识

2.2.1 隐式融合
这部分主要指通过预训练模型中融入知识,一种是通过在目标域的数据上进行 adaptive pretrain [26],例如是对话语料,那么使用对话语料进行适配 pretrain(预训练)。
另一种是在预训练阶段引入实体、词语实体信息,这部分论文也比较同质化,例如 nezha/ernie/bert-wwm,以 ernie 为例,将知识信息融入到训练任务中,ERNIE 提出一种知识掩盖策略取代 bert 的 mask,包含实体层面和短语级别的掩盖,见下图:



Basic-Level Masking: 和 bert 一样,随机选取 token 做 mask。
Phrase-Level Masking: 会将语法中的短语做 mask,例如:a series of|such as 等。
Entity-Level Masking: 会将一些实体整个 mask,主要实体包含人物、地点、组织、产品名等。
训练预料包括中文维基百科,百度百科,百度新闻(最新的实体信息),百度贴吧。


2.2.2 显示融合

这部分显示融合主要指通过在模型数据层面引入知识。


Trie树匹配结果作为特征

这部分比较简单,即将句子通过规则匹配到的词语信息作为先验输入,如果对于垂域的 NER 可以使用此方式。
匹配方式参考上一节中的词典匹配的方法。


融合分词信息(multi-grained: fine-grained and coarse-grained)

multi-grained 翻译应该是多粒度,但是个人认为主要是融入了分词的信息,因为 bert 就是使用字。

中文可以使用词语和字为粒度作为 bert 输入,各有优劣,那么有没有可能融合两种输入方式呢?


前期融合:

LICHEE [27]:前期即输入 embedding 层面融合,使用 max-pooling 融合两种粒度(词和字粒度)embedding:


TNER [28]:改进了 Transformer 的 encdoer,更好地建模 character 级别的和词语级别的特征。通过引入方向感知、距离感知和 un-scaled 的 attention,改造后的 Transformer encoder 也能够对 NER 任务显著提升。
文章比较有意思是分析了 Transformer 的注意力机制,发现其在方向性、相对位置、稀疏性方面不太适合 NER 任务。



embedding 中加入了 word embedding 和 character embedding,character embedding 经过 Transformer encoder 之后,提取 n-gram 以及一些非连续的字符特征。
计算 self-attention 包含了相对位置信息,但是是没有方向的,并且在经过 W 矩阵映射之后,相对位置信息这一特性也会消失。所以提出计算 attention 权值时,将词向量与位置向量分开计算:
去掉了 attention 计算中的 scaled,即不除以,认为效果更好。
FLAT [29]:将 Lattice 结构和 Transformer 相结合,解决中文会因为分词引入额外的误差,并且能够利用并行化,提升推理速度。如下图,通过词典匹配到的潜在词语 (Lattice),然后见词语追加到末尾,然后通过 start 和 end 位置编码将其和原始句子中的 token 关联起来。

另外也修改了 attention 的相对位置编码(加入了方向、相对距离)和 attention 计算方式(加入了距离的特征),和 TNER 类似,后续也有一篇 Lattice bert,内容几乎一样。


中期融合


ZEN: Pre-training Chinese Text Encoder Enhanced by N-gram Representations [30]
即在 encoder 某些层中融入词语和字的输出。在 char 的中间层添加 N-gram 的 embedding 输入。

这种 n-gram 加入到 char 的输出上,可能会找出信息泄露,例如 mlm 预测粤的时候,由于融入了“港澳”、“粤港澳”、“粤港澳大湾区”,可能会对预测粤的时候泄露答案。聪明的小伙伴会说那我直接 mask 全词啊,那这里如果 mask 掉“粤港澳大湾区”,其实会找出 mask 大部分句子,模型很难学。另一种就是修改 attention 的可见矩阵。
后期融合:
Ambert [31]:字和词语各自经过一个共享的 encoder,然后将粗细粒度的输出融合,看输出不适合 ner 任务,更适合分类任务。


融合知识图谱信息


K-BERT: Enabling Language Representation with Knowledge Graph [32]
知识图谱包含实体、实体类型、实体和实体的关系(边),怎么把这些信息融入到输入中呢?K-BERT 使用方式很直接,如下图:


例如句子中,cook 在图谱中是 apple 的 ceo,那么直接将其插入到句子中,那不就扰乱了句子顺序吗,并且对于其他 token 是引入了额外的信息干扰。因此它提出了两种方法解决这个问题。
  • 位置编码,原始句子的位置保持不变,序列就不变,同时对于插入的“CEO”、"Apple"和“cook”的位置是连续,确保图谱知识插入的位置。
  • 同时对于后面的 token,“CEO”、"Apple属于噪声,因此利用可见矩阵机制,使得“CEO”、"Apple"对于后面的 token 不可见,对于 [CLS] 也不可见。


2.3 标注缺失

首先对于 NER 标注,由于标注数据昂贵,所以会通过远程监督进行标注,由于远监督词典会造成高准确低召回,会引起大量未标注问题?
另外即使标注,存在实体标注缺失是很正常的现象,除了去纠正数据(代价过高)之外,有么有其他的方式呢?


2.3.1 AutoNER


Learning Named Entity Tagger using Domain-Specific Dictionary [33]

Better Modeling of Incomplete Anotations for Named Entity Recognition [34]

当使用词典进行实体的远监督标注时,由于词典有限,一般会造成标注数据中实体高准确,低召回(未标注)的问题。为了解决数据中的未标注问题,提出了 AutoNER with “Tie or Break”的方法。


具体算法如图,其中:
1. Tie:对于两个相邻的 token,如果他们是属于同一个实体,那么他们之间是 Tie。
2. Unknow:两个相邻的 token 其中一个属于未知类型的高置信实体,挖掘高置信实体使用 AutoPhrase [35]。
3. Break:不属于以上情况,即非同一实体。
4. 两个 Break 之间的 tokens 作为实体,需要去识别对应的类别。
5. 计算损失的时候,对于 Unknow 不计算损失(主要是为了缓解漏标(false negative)问题)。
解决的问题:
即使远监督将边界标注错误,但是实体内部的多数 tie 还是正确的。
个人理解出发点:1. 提出 tie or break 是为了解决边界标注错误问题,Unknow不计算损失缓解漏标(false negative)问题。
但是有个问题,文中提到了 false negative 的样本来自于 high-quality phrase,但是这些 high-quality phrase 是基于统计,所以对于一些低频覆盖不太好。
另外一篇论文也是类似的思想:Training Named Entity Tagger from Imperfect Annotations [36],它每次迭代包含两步:
1. 错误识别:通过交叉训练识别训练数据集中可能的标签错误。
2. 权重重置:降低含有错误标注的句子的权重。


2.3.2 PU learning


Distantly Supervised Named Entity Recognition using Positive-Unlabeled Learning [37]
主要解决词典漏标或者标注不连续问题,降低对于词典构造的要求。Unbiased positive-unlabeled learning 正是解决未标记样本中存在正例和负例的情况,作者定义为:


 是负例,未标注样本属于是正例 ,解决未标注问题就是怎么不用负样本去预估 
为什么不用负样本,因为负样本可能保证未标注正样本。
作者将其转化为:

所以我直接去学正样本就好了嘛,没毛病。这里大概就能猜到作者会用类似 out of domian 的方法了。
但是我感觉哪里不对,你这只学已标注正样本,未标注的正样本没学呢。
果然,对于正样本每个标签,构造不同的二分类器,只学是不是属于正样本。
我不是杠,但是未标注的实体仍然会影响二分类啊。


2.3.3 负采样


Empirical Analysis of Unlabeled Entity Problem in Named Entity Recognition [38]
未标注会造成两类问题:1)降低正样本量。2)将未标注视为负样本。1 可以通过 adaptive pretrain 缓解,而 2 后果却更严重,会对于模型造成误导,怎么消除这种误导呢,那就是负采样。
本文 ner 框架使用了前面介绍的片段排列分类的框架,即每个片段都会有一个实体类型进行分类,也更适合负采样。
负采样:即对于所有非实体的片段组合使用下采样,因为非实体的片段组合中有可能存在正样本,所以负采样一定程度能够缓解未标注问题。注意是缓解不是解决。损失函数如下:


其中前面部分是正样本,后面部分是负样本损失,就是采样的负样本集合。方法很质朴,我觉得比 pu learning 有效。作者还证明了通过负采样,不将未标注实体作为负样本的概率大于 (1-2/(n-5)),缓解未标注问题。


2.4 预训练语言模型

这个主要是 bert 相关的优化。对于下游任务,包括 NER 也有提升,就不展开了,见图:‍


参考文献
[1] Conditional Random Fields: Probabilistic Models for Segmenting and Labeling Sequence Data
[2] Bidirectional LSTM-CRF Models for Sequence Tagging:https://arxiv.org/abs/1508.01991v1
[3] Neural Architectures for Named Entity Recognition:https://arxiv.org/abs/1603.01360
[4] Transition-based dependency parsing with stack long-short-term memory:http://www.oalib.com/paper/4074644
[5] End-to-end Sequence Labeling via Bi-directional LSTM- CNNs-CRF:https://www.aclweb.org/anthology/P16-1101.pdf
[6] Fast and Accurate Entity Recognition with Iterated Dilated Convolutions:https://arxiv.org/abs/1702.02098
[7] Joint Slot Filling and Intent Detection via Capsule Neural Networks:https://arxiv.org/abs/1812.09471
[8] Dynamic Routing Between Capsules:http://papers.nips.cc/paper/6975-dynamic-routing-between-capsules.pdf
[9] Neural Architectures for Named Entity Recognition:https://arxiv.org/abs/1603.01360
[10] BERT: Pre-training of Deep Bidirectional Transformers for Language Understanding:https://arxiv.org/abs/1810.04805
[11] Neural Architectures for Named Entity Recognition:https://arxiv.org/abs/1603.01360
[12] Attending to Characters in Neural Sequence Labeling Models:https://arxiv.org/abs/1611.04361
[13] Character-Based LSTM-CRF with Radical-LevelFeatures for Chinese Named Entity Recognition:http://www.nlpr.ia.ac.cn/cip/ZongPublications/2016/13董传海Character-Based%20LSTM-CRF%20with%20Radical-Level%20Features%20for%20Chinese%20Named%20Entity%20Recognition.pdf
[14] Named Entity Recognition with Character-Level Models:https://nlp.stanford.edu/manning/papers/conll-ner.pdf
[15] Improving Named Entity Recognition for Chinese Social Mediawith Word Segmentation Representation Learning:https://www.aclweb.org/anthology/P16-2025
[16] Slot-Gated Modeling for Joint Slot Filling and Intent Prediction:https://aclanthology.org/N18-2118
[17] Attention-Based Recurrent Neural Network Models for Joint Intent Detection and Slot Filling:https://blog.csdn.net/shine19930820/article/details/83052232
[18] A Stack-Propagation Framework with Token-level Intent Detection for Spoken Language Understanding:https://www.aclweb.org/anthology/D19-1214/
[19] BERT for Joint Intent Classification and Slot Filling:https://arxiv.org/abs/1902.10909
[20] SpanNER: Named EntityRe-/Recognition as Span Prediction (https://arxiv.org/pdf/2106.00641v1.pdf)
[21] Coarse-to-Fine Pre-training for Named Entity Recognition (https://aclanthology.org/2020.emnlp-main.514.pdf)
[22] A Unified MRC Framework for Named Entity Recognition (https://arxiv.org/pdf/1910.11476v6.pdf)
[23] Span-Level Model for Relation Extraction (https://aclanthology.org/P19-1525.pdf)
[24] Instance-Based Learning of Span Representations (https://aclanthology.org/2020.acl-main.575)
[25] SpERT:Span-based Joint Entity and Relation Extraction with Transformer Pre-training (https://arxiv.org/abs/1909.07755)
[26] https://medium.com/jasonwu0731/pre-finetuning-domain-adaptive-pre-training-of-language-models-db8fa9747668
[27] https://arxiv.org/pdf/2108.00801.pdf
[28] https://arxiv.org/pdf/1911.04474.pdf
[29] https://arxiv.org/pdf/2004.11795.pdf
[30] ZEN: Pre-training Chinese Text Encoder Enhanced by N-gram Representations (https://arxiv.org/abs/1911.00720)
[31] https://arxiv.org/pdf/2008.11869.pdf
[32] K-BERT: Enabling Language Representation with Knowledge Graph (https://arxiv.org/pdf/1909.07606.pdf)
[33] Learning Named Entity Tagger using Domain-Specific Dictionary (https://arxiv.org/abs/1809.03599)
[34] Better Modeling of Incomplete Annotations for Named Entity Recognition (https://aclanthology.org/N19-1079.pdf)
[35] https://arxiv.org/abs/1702.04457
[36] Training Named Entity Tagger from Imperfect Annotations (https://arxiv.org/abs/1909.01441)
[37] Distantly Supervised Named Entity Recognition using Positive-Unlabeled Learning (https://arxiv.org/abs/1906.01378)
[38] Empirical Analysis of Unlabeled Entity Problem in Named Entity Recognition (https://arxiv.org/pdf/2012.05426)



13个你一定要知道的PyTorch特性

解读:为什么要做特征归一化/标准化?

一文搞懂 PyTorch 内部机制

张一鸣:每个逆袭的年轻人,都具备的底层能力




西[]


浏览 106
点赞
评论
收藏
分享

手机扫一扫分享

分享
举报
评论
图片
表情
推荐
点赞
评论
收藏
分享

手机扫一扫分享

分享
举报