Chinese NER Using Lattice LSTM

该博客介绍了如何使用Lattice LSTM模型进行中文命名实体识别(NER)。论文提出了一种结合字符和分词信息的方法,解决了基于字符的模型丢失词序列信息的问题,以及基于分词的模型易受分词错误影响的挑战。通过Lattice LSTM,模型能够自动从上下文中选择有用词汇,提高NER的效果。实验结果显示,Lattice LSTM在中文NER任务上表现出色。
摘要由CSDN通过智能技术生成

Chinese NER Using Lattice LSTM

标签(空格分隔): 自然语言处理


论文链接

文章主旨

  • 本文提出了一种新的NER模型,利用到了语言序列中所有的单个字符和词库中的所有的分词结果。

简介

  • 英文的NER效果最好的模型来自于LSTM-CRF模型。

  • 中文的NER结果依赖于中文分词结果,因为NER的边界就是中文分词的边界。有一个中文NER的办法就是先分词,然后进行NER,但是这样的话,分词的错误会传递到NER的结果。这在开放领域会更加严重,因为跨域分词依然会比较困难。有人研究过基于字符的中文NER方法会比基于分词结果的要好。

  • 但是基于字符的中文NER方法又失去了部分词序列提供的信息,为了解决这个问题,这篇论文提出了将所有可能分词信息和字符信息混在一起做NER的方法如:figure 1

image_1cu5qjdpt1jmoono13rn146916i39.png-97.9kB

  • 在图中,我们可以利用长江大桥、长江、大桥来对有可能识别到的人名“江大桥”进行消歧

  • 如下图所示,Lattice-LSTM可以将所有的字符信息和分词信息涵盖,然后模型会从上下文自动的找到有用的词汇。
    image_1cu5r00dv1re1k9f1vcqs7f9jn3m.png-148.6kB

论文模型

  • 本文到的主题结构采用的是LSTM-CRF.
  • 一个完整的句子s,s可以表示成s = c1,c2,c3,…,cm,这里c表示句子中的每一个字符
  • s也可以表示成s = w1,w2,w3,…,wn,这里的w表示句子的每一个分词结果
  • t(i,k)表示第i个分词结果的第k个字符,如:“南京市 长江大桥”中有两个分词结果,南京市和长江大桥,其中对该句话,t(1,2)表示第一个分词的第二个词,也就是南京市中的“市”这个字。注意这里不是作为第一个字符的,是1作为第一个字符。
  • 标注方法用的传统的BIOES方法

基于字符的模型

纯粹给予字符模型

  • 首先做一个基于字符的模型,如下如所示,简而言之,下图就是一个LSTM模型, x 1 c x_1^c x1c字啊这里指的是第一个字符的词向量化形式, c 1 c c_1^c c1c指的就是LSTM中的门结构, h 1 c h_1^c h1c代表的就是LSTM中的输出。
  • 注意,本文采用的是双向LSTM,image_1cu5sibccr471mci1j851cg11umk4g.png-9.3kB,所以向量会有一个拼接的过程。就是每一个字符正向LSTM的结果和反向LSTM的结果拼接起来。
  • 最后的到的结果用来做序列标注。模型使用的是CRF模型。

image_1cu5u4f691vdv18u91okq1rd814nl5d.png-15.7kB

基于字符的gram模型

  • 这里和上面没什么区别,就是在算每个字的向量的时候,加入了这个字和其后面一个字作为词的词向量。
    如:算“南”这个字的向量的时候,会把“南”的词向量和“南京”的词向量一起拼接起来作为“南这个字的输入”,具体论文:https://pan.baidu.com/s/18sImkW9YPgbL1_j4YMWZww

基于字符和分词结果模型

  • 与上面类似,只不过是没有机械的用到下一个字符,而是用到了以这个字符开头的分词结果。不多介绍

上面说到的模型最后都会使用CRF模型来做序列标注。

基于词的模型

基于词的模型,就是把字换成了词,如下图所示。 x 1 w x_1^w x1w代表的是每个词的词向量。
image_1cu5u58vl4891n3a1v58q1sbh5q.png-16.4kB
后续还介绍了很多模型~ 暂时不一一介绍

Lattice模型

终于到了我们的主角

image_1cu5upqe41embd5m17cnleg1qlq67.png-18.6kB

下面解释一下这幅图:

image_1cu8gnffidia1tbh1cfa1u3v1tvh9.png-8kB

大家看上图,我们利用这个公式求出中间插入的南京市这个词的 c b , e w c_{b,e}^w cb,ew, 同样的是lstm的门机构,唯一缺少的就是输出门,因为这个结构不需要输出,只需要往后传递参数c就好了~

image_1cu8gs1sm1328jqluouc5m6k1m.png-3kB
看上图,输出之后,我们会求出作为南京市的一个输入门,就是把南京市的 c b , e w c_{b,e}^w cb,ew和下一个字“市”的输入 x e c x_e^c xec结合起来。

image_1cu8gsb7812frpnghs31ro911fn13.png-3.9kB

看上图,我们利用这个公式计算“市”这个词的细胞更新状态,就是更新c,其实这个很简单,就是这个"市"这个字会有很多的输入,把他们都按照权重加起来就好了。
疑问其实到这里发现,为啥没有遗忘门呢,很奇怪?望高手解答。

CRF

后面就是一套典型的CRF,不再多说。

吹逼时刻(实验效果)

image_1cu8hbusr1jqm1rbl11dt1b7ohqq20.png-27.8kB

image_1cu8hd7ujsbo155rrvvjtnk52d.png-31.3kB

image_1cu8hubmk3gtjr1dlr1rblvnp2q.png-24.3kB

看这里,句子如果不是很长,可以优先考虑基于词的,当然作者的lattice更厉害了

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值