Named Entity Recognition with Bidirectional LSTM-CNNs 论文阅读笔记

 

该论文是发表于2016年。还算是比较早的论文了。虽然现在有更好的模型。比如BERT横空出世,相信未来也会源源不断的大牛来提出更多新的模型。但是读读总还是会收获的。之前自己也用BERT来进行中文NER的识别,代码放到了 https://github.com/xuanzebi/BERT-CH-NER 欢迎Star啊哈哈。

论文网络模型图

 

 

论文解读

 

论文处理的是英文。是在CONLL2003 的数据集上针对NER任务提出的一项新模型。

主要是将字符级别的特征经过CNN和词级别的特征进行concat.之后经过双向LSTM进行NER预测。

这样能够更好的利用到前缀后缀之类的字符级特征。而且可以减少人工构造特征的工作。

 

自己在理解清字符级别的维度和词级别的维度如何concat上当时绕进去了,所以总结一下最后如何保持维度一致进行concat的。

seq_len = len(句子长度按词划分)   
​
word_emb = embedding(词) = 100维   词向量embedding
​
char_dim = 52个。 将字符扩展到每个词含有52个.不够的padding     
​
char_emb = embedding(词) = 30维    字符向量embedding

字符级别特征处理

字符特征经过embedding 后维度为 char_dim * char_emb 这样一个句子的字符级向量维度为: seq_len * char_dim * char_emb 之后经过pad的卷积 维度为 seq_len * char_dim * char_emb 之后经过最大池化 维度为 seq_len * 1 * char_emb 经过全连接 维度为 seq_len * char_emb

词级别特征处理

一个句子的词向量经过embedding维度为: seq_len * 100. 这样将字符级特征和词特征concat维度为 seq_len * 130.之后经过双向lstm预测NER类别。

其中还可以在字符级特征和词级别上特征加一些人工特征。比如将词可以分为6类。包括全是大写字母,全是小写字母,全是数字,部分数字等等。

其它

其中还将双向LSTM前向和后向经过softmax得到的分值相加来判断类别。

还有一点是,因为在词embedding时全部小写了,所以又造了一列特征来判断词的类别。如:全大写,全小写,部分大写,全数字,部分数字等。

论文还加入了词典模板匹配模块。

 

论文复现

参考如下代码

https://github.com/kamalkraj/Named-Entity-Recognition-with-Bidirectional-LSTM-CNNs

 

网络结构图如下。

其中作者是将句子长度一致的放到一个batch进行训练。

而且模型训练的时候没有显示loss,需要自己修改一下。其他就都简单易懂了。

 

最后说一下字符级别特征特点

仅针对英语

字符级模型放弃了词所具有的语义信息,也放弃了即插即用的预训练词向量生态系统。另一方面,字符级深度学习模型又有两个基本优势:它们能缓解我们在模型输入上遇到的词汇库问题,还能避免在模型输出上的计算瓶颈。

输入方面,它们能极大地提升我们的模型所能处理的词汇量,并且能弹性地处理拼写错误和罕见词问题。在输出方面,由于字符级模型的词汇库很小,所以计算成本更低。这样的性质使得在预算有限时也能使用某些训练技术(比如联合训练一个语言模型)并达到较快的训练速度。

详细请看如下文章。

 

https://zhuanlan.zhihu.com/p/60238490

 

收获

在处理文本的时候,人工特征还是很有必要的,之前看的几个比赛,还是需要提取一些手工特征的,比如一些词的共现等等特征。

而且字符级别的特征和词级别特征可以考虑多种方式concat一下。也许效果会更好。

 

 

最后有哪里写的不对的也希望大家批评指正~~

  • 1
    点赞
  • 11
    收藏
    觉得还不错? 一键收藏
  • 5
    评论
评论 5
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值