1. 前言

在NLP中有几个经典的序列标注问题,词性标注(POS),chunking和命名实体识别(NER)。序列标注器的输出可用于另外的应用程序。例如,可以利用在用户搜索查询上训练的命名实体识别器来识别关键词,从而触发某些产品广告。另一个例子是搜索引擎可以使用这种标签信息来查找相关的网页。

2. BI-LSTM-CRF原理

在本文中,我们提出了各种基于长短期记忆(LSTM)的序列标注模型。这些模型包括LSTM网络,双向LSTM网络(BI-LSTM),带条件随机场的LSTM(LSTM-CRF)和具有CRF的双向LSTM(BI-LSTM-CRF)。

论文的工作是将BI-LSTM-CRF模型应用于NLP基准序列标注记数据集。实验表明,由于双向LSTM组件,BI-LSTM-CRF模型可以有效地使用过去和未来输入特征。

BI-LSTM-CRF模型可以在POS、chunking、NER数据集达到SOTA的水平。并且,与先前的结果相比,它更具有鲁棒性和对word embbding的依赖性较小。

3. BI-LSTM-CRF模型

BI-LSTM-CRF的结构是由word embedding、双向LSTM层、CRF层构成。

  1. word embedding:使用 unigram,bi-gram,tri-gram的特征,使用了50维的词向量。
  2. BI-LSTM层,是充分提取词过去和未来的特征,这种特征能够提升标签的准确度。
  3. CRF层是连接LSTM输出的线性表示,CRF层具有状态转移矩阵作为参数。

BI-LSTM-CRF的算法过程:

3.1 Feature Trick

我们可以将拼写和上下文特征都看作单词的特征。也就是说,神经网络的输入包括单词,拼写和上下文特征。论文指出,我们发现加入拼写能够加速训练,并且它们得到非常相似的标注准确性。

如下图所示:

4. 总结

序列标注是基础性的NLP研究课题,是许多NLP任务的基础。比如搜索引擎使用命名实体识别查询语句中的产品类实体,继而推荐广告。经典的序列标注有HMM、MEMMs和CRFs三种,其中CRFs的效果最好,可以解决HMM和MEMMs的标签偏置(label bias)问题。后来词向量的研究兴起,Collobert(Collobert et al.201) 的C&W词向量也在序列标注一展身手。Collobert 用的是卷积神经网络+CRF。LSTM在语音识别等领域已经有了成功的应用,引文若干。在之后的实验中对比了这些模型和自己模型(BI-LSTM-CRF, state of the art)的结果。

BI-LSTM-CRF在序列标注中的应用的更多相关文章

  1. LSTM+CRF进行序列标注

    为什么使用LSTM+CRF进行序列标注 直接使用LSTM进行序列标注时只考虑了输入序列的信息,即单词信息,没有考虑输出信息,即标签信息,这样无法对标签信息进行建模,所以在LSTM的基础上引入一个标签转 ...

  2. TensorFlow教程——Bi-LSTM+CRF进行序列标注(代码浅析)

    https://blog.csdn.net/guolindonggld/article/details/79044574 Bi-LSTM 使用TensorFlow构建Bi-LSTM时经常是下面的代码: ...

  3. Bi-LSTM+CRF在文本序列标注中的应用

    传统 CRF 中的输入 X 向量一般是 word 的 one-hot 形式,前面提到这种形式的输入损失了很多词语的语义信息.有了词嵌入方法之后,词向量形式的词表征一般效果比 one-hot 表示的特征 ...

  4. ALBERT+BiLSTM+CRF实现序列标注

    一.模型框架图 二.分层介绍 1)ALBERT层 albert是以单个汉字作为输入的(本次配置最大为128个,短句做padding),两边分别加上开始标识CLS和结束标识SEP,输出的是每个输入wor ...

  5. TensorFlow (RNN)深度学习 双向LSTM(BiLSTM)+CRF 实现 sequence labeling 序列标注问题 源码下载

    http://blog.csdn.net/scotfield_msn/article/details/60339415 在TensorFlow (RNN)深度学习下 双向LSTM(BiLSTM)+CR ...

  6. 序列标注(BiLSTM-CRF/Lattice LSTM)

    前言 在三大特征提取器中,我们已经接触了LSTM/CNN/Transormer三种特征提取器,这一节我们将介绍如何使用BiLSTM实现序列标注中的命名实体识别任务,以及Lattice-LSTM的模型原 ...

  7. 基于CRF序列标注的中文依存句法分析器的Java实现

    这是一个基于CRF的中文依存句法分析器,内部CRF模型的特征函数采用 双数组Trie树(DoubleArrayTrie)储存,解码采用特化的维特比后向算法.相较于<最大熵依存句法分析器的实现&g ...

  8. 用CRF++开源工具做文本序列标注教程

    本文只介绍如何快速的使用CRF++做序列标注,对其中的原理和训练测试参数不做介绍. 官网地址:CRF++: Yet Another CRF toolkit 主要完成如下功能: 输入 -> &qu ...

  9. 【中文分词系列】 4. 基于双向LSTM的seq2seq字标注

    http://spaces.ac.cn/archives/3924/ 关于字标注法 上一篇文章谈到了分词的字标注法.要注意字标注法是很有潜力的,要不然它也不会在公开测试中取得最优的成绩了.在我看来,字 ...

随机推荐

  1. mysql基本语句集合

    一.概述 1.删除字段 alter table {table_name} drop column {column_name}; 2.添加字段 alter table {table_name} Add ...

  2. Snip for Mac(桌面截图工具)安装

    1.软件简介    Snip 一款用于桌面截图的工具. 2.资源列表 链接 提取密码 系统要求 软件语言 Snip for Mac v2.0 (5771) fgab macOS 10.6.8 及以上 ...

  3. openkm安装过程

    # java -jar /software/OKMInstaller.jar Running in Linux: 0.9.1-CE (build: 445bef5) Linux distro: rhe ...

  4. SharePoint下在Feature中动态Register/Remove HttpModule

    在SharePoint开发时,你会遇到这样一个问题,Global.asax去哪儿?怎样添加一个Global.asax?怎样在Application_Start这个事件处理程序里设置初始化?似乎在Vis ...

  5. 一个简单的增强型PHP curl函数

    啥都不说,先上代码 <?PHP /* * @author 小伍 */ echo "<pre>"; $proxy = array('url'=>'http:/ ...

  6. 查看mysql状态的常用命令

    在mysql客户端输入"show status"之后将会看到如下输出: 如果想要查看某个具体的值,可以使用如下命令: show status LIKE "%具体变量%&q ...

  7. django 用户管理系列:1 user

    :first-child{margin-top:0!important}.markdown-body>:last-child{margin-bottom:0!important}.markdow ...

  8. MySQL中NULL与空字符串

    一些刚刚接触MySQL的孩子,经常会错误的认为NULL与空字符串’  ’是相同的.这看似是一件不重要的事情,但是在MySQL中,这两者是完全不同的.NULL是指没有值,而”则表示值是存在的,只不过是个 ...

  9. 利用Regsvr32绕过Applocker的限制策略

    Metasploit Metasploit框架有一个特定的有效载荷,可用于通过Regsvr32实用程序实现自动化绕过AppLocker exploit/windows/misc/regsvr32_ap ...

  10. 呃,如何使 .NET 程序,在 64位 系统 中,以 32位 模式运行。

    其实最简单的方法就是在解决方案中,把平台设为 x86 就好了哈~   但是今天遇到一个第三方的软件,它调用的一个 dll 是 32位 的,可能它没有测试过在 64位 系统下运行的情况,它在编译时是按默 ...