Chinese NER Using Lattice LSTM

一个更加详细的版本:https://blog.csdn.net/Amy_mm/article/details/81975827


文章目录

目录

Chinese NER Using Lattice LSTM

论文和代码链接

文章主旨

简介

论文模型

一、基于字符的模型

二、基于词的模型

三、Lattice模型

CRF

吹逼时刻(实验效果)


Chinese NER Using Lattice LSTM


论文和代码链接

文章主旨

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

简介

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

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

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

Chinese NER Using Lattice LSTM

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

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

Chinese NER Using Lattice LSTM

论文模型

  • 本文到的主题结构采用的是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模型,Chinese NER Using Lattice LSTM这里指的是第一个字符的词向量化形式,Chinese NER Using Lattice LSTM指的就是LSTM中的门结构,Chinese NER Using Lattice LSTM代表的就是LSTM中的输出。
  • 注意,本文采用的是双向LSTM,Chinese NER Using Lattice LSTM,所以向量会有一个拼接的过程。就是每一个字符正向LSTM的结果和反向LSTM的结果拼接起来。
  • 最后的到的结果用来做序列标注。模型使用的是CRF模型。

Chinese NER Using Lattice LSTM

基于字符的gram模型

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

基于字符和分词结果模型

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

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

二、基于词的模型

基于词的模型,就是把字换成了词,如下图所示。Chinese NER Using Lattice LSTM代表的是每个词的词向量。

Chinese NER Using Lattice LSTM

后续还介绍了很多模型~ 暂时不一一介绍

三、Lattice模型

终于到了我们的主角

Chinese NER Using Lattice LSTM

下面解释一下这幅图:

Chinese NER Using Lattice LSTM

大家看上图,我们利用这个公式求出中间插入的南京市这个词的Chinese NER Using Lattice LSTM, 同样的是lstm的门机构,唯一缺少的就是输出门,因为这个结构不需要输出,只需要往后传递参数c就好了~

Chinese NER Using Lattice LSTM

看上图,输出之后,我们会求出作为南京市的一个输入门,就是把南京市的Chinese NER Using Lattice LSTM和下一个字“市”的输入Chinese NER Using Lattice LSTM结合起来。

Chinese NER Using Lattice LSTM

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

CRF

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

吹逼时刻(实验效果)

Chinese NER Using Lattice LSTM

Chinese NER Using Lattice LSTM

Chinese NER Using Lattice LSTM

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