热门标签 | HotTags
当前位置:  开发笔记 > 编程语言 > 正文

BidirectionalLSTMCNNsCRF

上期使用LSTM做短文本分类效果不如CNN,或许有朋友会问什么场景下LSTM能体现出序列性的优势,本期使用双向LSTM-CNNs-CRF实现SequenceLabeling。CRF

上期使用LSTM做短文本分类效果不如CNN,或许有朋友会问什么场景下LSTM能体现出序列性的优势,本期使用双向LSTM-CNNs-CRF实现Sequence Labeling。

CRF-条件随机场

Conditional Random Fields,简称CRF

给定一组输入序列的条件下输出另一组序列的条件概率分布,判别式模型。

CRF优点:着眼于局部最优解,在已给出 z 的条件下计算可能的序列 y 的概率分布

《Bi-directional LSTM-CNNs-CRF》
《Bi-directional LSTM-CNNs-CRF》

LSTM优点:获取长时间序列上样本与样本之间的关系。而BiLSTM可以更有效的获取上下文的特征。

BiLSTM+CRF已在NLP多数场景中表现出让人意想不到的效果。比如分词,相比于传统的分词器,BiLSTM能发挥双向获取句子特征这一优势,分词效果更接近人的感觉。

分词实现的一个简单例子:

>>> print(sg.sentence_cut("ngram是自然语言处理中一个非常重要的概念,通常在NLP中,
人们基于一定的语料库,可以利用ngram来预计或者评估一个句子是否合理。
另外一方面,ngram的另外一个作用是用来评估两个字符串之间的差异程度。
这是模糊匹配中常用的一种手段。本文将从此开始,
进而向读者展示ngram在自然语言处理中的各种powerful的应用"))
['ngram', '是', '自然语言', '处理', '中', '一个', '非常', '重要', '的', '概念',
',', '通常', '在', 'NLP', '中', ',', '人们', '基于', '一定', '的', '语料库',
',', '可以', '利用', 'ngram', '来', '预计', '或者', '评估', '一个', '句子',
'是否', '合理', '。', '另外', '一方面', ',', 'ngram', '的', '另外', '一个',
'作用', '是', '用来', '评估', '两个', '字符串', '之间', '的', '差异', '程度',
'。', '这是', '模糊匹配', '中', '常用', '的', '一种', '手段', '。', '本文', '将',
'从此', '开始', ',', '进而', '向', '读者', '展示', 'ngram', '在', '自然语言',
'处理', '中', '的', '各种', 'powerful', '的', '应用']

CNN在Sequence Labeling中多数使用在英文里,它能更好的提取出单词中的形态信息,例如单词的前后缀;中文里,CNN也可以使用在句子里分词后的字层面,获取更多特征,有兴趣的朋友可以试试。

本期模型的实现来自于论文End-to-end Sequence Labeling via Bi-directional LSTM-CNNs-CRF

训练中使用的数据来自于CoNLL 2003

代码

全部代码链接在文章最后面

Char级的CNN实现

这里初始化embedding权重时使用的Glorot初始化

《Bi-directional LSTM-CNNs-CRF》
《Bi-directional LSTM-CNNs-CRF》

Word级BiLSTM实现

《Bi-directional LSTM-CNNs-CRF》
《Bi-directional LSTM-CNNs-CRF》

CRF的实现学习自tutorial-pytorch,不过教程中是逐条数据训练,而本期代码改进为按mini-batch训练

《Bi-directional LSTM-CNNs-CRF》
《Bi-directional LSTM-CNNs-CRF》

viterbi解码

《Bi-directional LSTM-CNNs-CRF》
《Bi-directional LSTM-CNNs-CRF》

结果

准确率:91.5%

《Bi-directional LSTM-CNNs-CRF》
《Bi-directional LSTM-CNNs-CRF》

全部代码

github代码


推荐阅读
  • 目录预备知识导包构建数据集神经网络结构训练测试精度可视化计算模型精度损失可视化输出网络结构信息训练神经网络定义参数载入数据载入神经网络结构、损失及优化训练及测试损失、精度可视化qu ... [详细]
  • 计算机学报精选论文概览(2020-2022)
    本文汇总了2020年至2022年间《计算机学报》上发表的若干重要论文,旨在为即将投稿的研究者提供参考。 ... [详细]
  • H5技术实现经典游戏《贪吃蛇》
    本文将分享一个使用HTML5技术实现的经典小游戏——《贪吃蛇》。通过H5技术,我们将探讨如何构建这款游戏的两种主要玩法:积分闯关和无尽模式。 ... [详细]
  • 对于初学者而言,搭建一个高效稳定的 Python 开发环境是入门的关键一步。本文将详细介绍如何利用 Anaconda 和 Jupyter Notebook 来构建一个既易于管理又功能强大的开发环境。 ... [详细]
  • 本文详细介绍了 `org.apache.tinkerpop.gremlin.structure.VertexProperty` 类中的 `key()` 方法,并提供了多个实际应用的代码示例。通过这些示例,读者可以更好地理解该方法在图数据库操作中的具体用途。 ... [详细]
  • AI炼金术:KNN分类器的构建与应用
    本文介绍了如何使用Python及其相关库(如NumPy、scikit-learn和matplotlib)构建KNN分类器模型。通过详细的数据准备、模型训练及新样本预测的过程,展示KNN算法的实际操作步骤。 ... [详细]
  • 深入解析WebP图片格式及其应用
    随着互联网技术的发展,无论是PC端还是移动端,图片数据流量占据了很大比重。尤其在高分辨率屏幕普及的背景下,如何在保证图片质量的同时减少文件大小,成为了亟待解决的问题。本文将详细介绍Google推出的WebP图片格式,探讨其在实际项目中的应用及优化策略。 ... [详细]
  • 本文介绍了一个使用Slideview组件实现循环轮播效果的例子,并将其作为ListView顶部的一项。此ListView包含了两种不同的模板设计,一种以Slideview为核心,另一种则是标准的单元格模板,包含按钮和标签。 ... [详细]
  • 机器学习(ML)三之多层感知机
    深度学习主要关注多层模型,现在以多层感知机(multilayerperceptron,MLP)为例,介绍多层神经网络的概念。隐藏层多层感知机在单层神经网络的基础上引入了一到多个隐藏 ... [详细]
  • 使用Echarts for Weixin 小程序实现中国地图及区域点击事件
    本文介绍了如何使用Echarts for Weixin在微信小程序中构建中国地图,并实现区域点击事件。包括效果展示、条件准备和逻辑实现的具体步骤。 ... [详细]
  • Kubernetes 1.9.0 Alpha.1 发布公告 [Kubernetes 最新动态]
    近日,Kubernetes 社区发布了两个新版本:1.8.0 RC.1 和 1.9.0 Alpha.1。这是 k8s 1.9.0 的首次发布,自 v1.8.0 Alpha.3 以来进行了大量更新,共提交了 279 次。 ... [详细]
  • 岭回归及其应用
    本文介绍了岭回归的基本原理,并通过Python中的sklearn库实现了岭回归模型。岭回归通过在代价函数中加入L2正则项,有效解决了多重共线性问题。 ... [详细]
  • 本文描述了在使用 TexStudio 编辑 LaTeX 时插入算法伪代码块时遇到的“Missing \endcsname inserted. \While”错误,并提供了详细的解决方案。 ... [详细]
  • 【图像分类实战】利用DenseNet在PyTorch中实现秃头识别
    本文详细介绍了如何使用DenseNet模型在PyTorch框架下实现秃头识别。首先,文章概述了项目所需的库和全局参数设置。接着,对图像进行预处理并读取数据集。随后,构建并配置DenseNet模型,设置训练和验证流程。最后,通过测试阶段验证模型性能,并提供了完整的代码实现。本文不仅涵盖了技术细节,还提供了实用的操作指南,适合初学者和有经验的研究人员参考。 ... [详细]
  • 龙蜥社区开发者访谈:技术生涯的三次蜕变 | 第3期
    龙蜥社区的开发者们通过自己的实践和经验,推动着开源技术的发展。本期「龙蜥开发者说」聚焦于一位资深开发者的三次技术转型,分享他在龙蜥社区的成长故事。 ... [详细]
author-avatar
担路赢客免费建站
这个家伙很懒,什么也没留下!
PHP1.CN | 中国最专业的PHP中文社区 | DevBox开发工具箱 | json解析格式化 |PHP资讯 | PHP教程 | 数据库技术 | 服务器技术 | 前端开发技术 | PHP框架 | 开发工具 | 在线工具
Copyright © 1998 - 2020 PHP1.CN. All Rights Reserved | 京公网安备 11010802041100号 | 京ICP备19059560号-4 | PHP1.CN 第一PHP社区 版权所有