点击上方,选择星标置顶,每天给你送干货

阅读大概需要8分钟

跟随小博主,每天进步一丢丢

导读

这篇文章提出了一个简单有效的联合模型,联合学习中文分词和词性标注,并且在五个数据集上面进行验证。作者是张梅山。 代码开源 --- c++版本和pytorch版本。

张梅山导师主页

https://zhangmeishan.github.io/

C++版本

https://github.com/zhangmeishan/NNTranJSTagger

Pytorch版本

https://github.com/bamtercelboo/pytorch_Joint-Word-Segmentation-and-POS-Tagging

引言

中文分词和词性标注是中文自然语言处理领域的基本问题,目前存在的方法把这两个任务看成结构化学习问题,采用序列标注模型或者是transition-based系统进行处理。我们知道,中文分词和词性标注两个任务之间存在很高的关联性,而且采用两个任务的Pipline模型存在一定的错误传播,然而,联合模型能够考虑两个任务之间的内在关系并且减少Pipline模型的错误传播,所以联合模型能够达到比Pipline更好的性能。

在这项工作中,提出了一个基于Seq2Seq的联合模型,这个工作主要受张岳在2010年ACL中transition工作的影响,转换解码过程为动作预测过程。另外采用字符级别的unigrams和bigrams特征作为神经网络模型输入。除此之外,还采用多种外部预训练词向量。

神经网络模型

Transition System

Transition-based 框架大多数应用于结构化学习问题,通过预先定义好的transition系统,在解码过程中一步步的进行解码。具体来说,包含两个主要的部分,一个是用于存储部分结果的当前状态(states),另一个则是预测的动作行为(actions)。

本文预先定义好的transition系统同样也包含state和action两个关键部分。其中,状态(state)包含stack和queue两个部分,stack用于存储当前的分词和词性标注的结果,queue用于保存未处理的中文字符。进一步,定义了SEP(t)和APP两种不同的动作行为(action),SEP(t)代表的是一个新词的开始,并且标注好这个词的词性,APP代表紧接着上一个汉字,与前面的多个汉字组成一个词。

本文给出了一个transition系统的案例,给定一个句子:“奥运会正式开幕”,能够得到最终的解码结果:“奥运会|NR 正式|AD 开幕|VV”,动作序列为“SEP(NR) APP APP SEP(AD) APP SEP(VV) APP”。

Seq2Seq Model --- Encoder(编码)

模型整体结构图如下图所示。

Encoder部分是对句子序列的编码,在这一部分,用到了单字和双字特征,并且采用了static(神经网络训练过程中不更新参数,采用外部预训练词向量)和non-static(神经网络模型训练过程中更新参数,采用随机初始化的方式),图中采用了不同的颜色表示,并且利用非线性层结合这四种特征,然后采用BiLSTM对句子进行编码。

在外部预训练词向量的工作中,采用了两种不同的方式进行训练单字和双字的外部词向量,得到的两种预训练词向量分别称之为Basic Embeddings 和 Word-Context Embeddings,Basic Embeddings仅仅采用语言模型的方式预训练词向量(word2vec),Word-Context Embeddings不仅仅采用语言模型训练词向量,还考虑了词的边界信息以及词性信息等来丰富外部预训练的信息,使其更能够辅助联合模型达到更好的效果。

Seq2Seq Model --- Decoder(解码)

Decoder部分一步对中文分词和词性标注进行解码,如模型结构图Decoder部分所示。首先结合词性信息和词的字符序列表示获取解码端词的表示(Word Representation),然后利用非线性层进行特征学习,进而获取到解码端LSTM的输入, 通过结合解码端LSTM的隐层输出和编码端向量表示进行预测。

与典型的Seq2Seq模型的不同之处一共有两点。第一点是典型的Seq2Seq模型需要采用Attention机制,而本文提出的模型不需要采用Attention机制,采用编码端的向量表示。第二,在分词和词性标注的任务中,词级别的特征异常重要,解码端LSTM是构建在输出的词之上,而不是构建在属于字符级的预测动作序列之上。由于transition的状态标识(state),能够在解码过程中获得词的整个序列,以及它们的词性,可以用来增强词的表示。

实验设置及实验结果

数据

本文在五个数据集上面进行了实验验证,五个数据集分别为CTB5.0,CTB6.0,CTB7.0,PKU,NCC,其中CTB5.0在中文分词和词性标注任务中广泛使用,但是由于测试集规模较小,所以增加了另外的四组数据集进行评测,数据统计分布如下。

实验结果

实验结果如下图,从实验结果图中可以看出,本文提出的Seq2Seq联合模型在五个数据集上面都达到了最好的性能。

代码开源

本文代码开源,有C++版本和pytorch重现版本,两个版本都有详细的代码说明。
C++版本地址

https://github.com/zhangmeishan/NNTranJSTagger
Pytorch版本

https://github.com/bamtercelboo/pytorch_Joint-Word-Segmentation-and-POS-Tagging

总结

本文提出了一种Seq2Seq联合模型,联合学习中文分词和词性标注,并且在CTB5.0,CTB6.0,CTB7.0,PKU,NCC五个数据集上面进行实验评测,实验结果表明,本文提出的模型在五个数据集上面都达到了最优的性能。

References

A Simple and Effective Neural Model for Joint Word Segmentation and POS Tagging

https://ieeexplore.ieee.org/stamp/stamp.jsp?tp=&arnumber=8351918&tag=1

bamtercelboo/pytorch_Joint-Word-Segmentation-and-POS-Tagging

https://github.com/bamtercelboo/pytorch_Joint-Word-Segmentation-and-POS-Tagging

zhangmeishan/NNTranJSTagger

https://github.com/zhangmeishan/NNTranJSTagger

bamtercelboo/NNTranJSTagger

https://github.com/bamtercelboo/NNTranJSTagger

A Fast Decoder for Joint Word Segmentation and POS-Tagging Using a Single Discriminative Model

http://aclweb.org/anthology/D10-1082

往期推荐:

一大批历史精彩文章啦

文本分类有哪些论文中很少提及却对性能有重要影响的tricks?

干货 | 万字长文概述NLP中的深度学习技术

近年来NLP在法律领域的相关研究工作

有偿征稿!


好文!必须点赞

是时候研读一波导师的论文--一个简单有效的联合模型相关推荐

  1. 递归算法(python),汉诺塔问题,斐波那契数列,一个简单的递归实例,用递归实现阶乘,用递归查看目录及文件

    https://blog.csdn.net/hanhanwanghaha宝藏女孩 欢迎您的关注! 欢迎关注微信公众号:宝藏女孩的成长日记 让这个可爱的宝藏女孩在努力的道路上与你一起同行! 如有转载,请 ...

  2. 快醒醒,一大波最新 AI 论文加开源代码来袭!

    在碎片化阅读充斥眼球的时代,越来越少的人会去关注每篇论文背后的探索和思考. 在这个栏目里,你会快速 get 每篇精选论文的亮点和痛点,时刻紧跟 AI 前沿成果. 点击本文底部的「阅读原文」即刻加入社区 ...

  3. 2021-10-19 [可视化-经验]如何研读一篇可视化分析论文✈

    从选文献到在组会上完成研读的tips 这是我第一次进行论文研读,在学姐的悉心指导下顺利完成,因此打算记录下此次研读,提醒自己,也可以为其他人研读作为参考 论文选择 既然是要仔细阅读的文献,就应该精挑细 ...

  4. 导师催论文的操作指南

    导师催论文的操作指南 来源:学术志(ID:xueshuzhi001) 作者:二手副院长 编辑:学妹 不少年轻导师都有这样的困惑:本来养的好好的硕士.博士,平日里撒泼打滚.活蹦乱跳.一天两发朋友圈,可是 ...

  5. 模型理论5_英语学术论文摘要语步结构自动识别模型的构建

    提要:本文以 1993-2014 年期间 SSCI期刊< 应用语言学> 发表的学术论文摘要为语料,对英文摘要语步结构标注后,利用语料库和自然语言处理方法,提取有效语步预测特征,通过语步结构 ...

  6. 《预训练周刊》第16期:中科院推出全球首个图文音三模态预训练模型、顶会论文探索100层序列推荐模型的加速训练...

    No.16 智源社区 预训练组 预 训 练 研究 观点 资源 活动 关于周刊 超大规模预训练模型是当前人工智能领域研究的热点,为了帮助研究与工程人员了解这一领域的进展和资讯,智源社区整理了第16期&l ...

  7. 图灵奖得主Bengio又出新论文:用强化学习提升模型泛化性!网友崩溃:idea撞车了......

    点击上方"AI遇见机器学习",选择"星标"公众号 重磅干货,第一时间送达  转载自:新智元   来源:reddit  |  编辑:LRS [导读]Bengio又 ...

  8. AAAI 2020 开源论文 | 一种针对图嵌入模型的受限黑盒对抗攻击框架

    AAAI(人工智能促进协会年会)是人工智能领域的顶级国际会议之一.今年的 AAAI 2020 是第 34 届,于 2 月 7 日至 12 日在美国纽约举行.今年,第 3 次参会的腾讯 AI Lab 共 ...

  9. 四篇NeurIPS 2019论文,快手特效中的模型压缩了解一下

    在即将过去的 2019 年中,快手西雅图实验室在 ICLR.CVPR.AISTATS.ICML 和 NeurIPS 等顶会上发表了十多篇论文. 除了这些研究方面的成果,针对实际业务,西雅图实验室和快手 ...

  10. 论文浅尝 | 一个模型解决所有问题:实体和事件的神经联合模型

    笔记整理:康矫健,浙江大学计算机科学与技术系,硕士研究生. 论文链接:https://arxiv.org/pdf/1812.00195.pdf 发表会议:AAAI 2019 摘要    近来,针对事件 ...

最新文章

  1. 驱动07.USB驱动程序
  2. 开坑,写点Polymer 1.0 教程第3篇——组件注册与创建
  3. 字符在utf-8,gbk,gb2312,iso8859-1下的编码实验
  4. Quartz-Trigger详解
  5. 【MM配置】Batch Determination 批次决定
  6. [转]优秀Python学习资源收集汇总
  7. 简单模拟实现简单的当登录延时的效果
  8. html百分比代码怎么写,参考Bootstrap写的一个带百分比的进度条(附源码)
  9. vue_cli全局变量使用
  10. springboot~让我习惯了TDD的开发模式
  11. getNextElement( )函数——获取下一个特定的元素节点
  12. 从出生年月中获取相对准确的年龄
  13. 【转】Google Chrome浏览器调试
  14. 聚类算法(K-Means和DBSCAN)
  15. openstack镜像格式转换
  16. Cookie和Session
  17. java-for循环9的倍数(基础)
  18. python基金估值查询_利用python实现基金估值的邮件发送
  19. 小学计算机小蘑菇教案,幼儿园中班小蘑菇教案.doc
  20. 有道云笔记分享_有道云笔记的使用分享

热门文章

  1. 清除子节点、创建子节点函数
  2. oracle 某一字段取反
  3. C# Socket SSL通讯笔记
  4. 没有Path的Binding
  5. 然爸读书笔记(2013-3)----用户体验的要素
  6. hdu 3600 Simple Puzzle (判断N 数码是否有解)
  7. 转载:VS2005 工具方便实用的快捷键。
  8. Tensorflow Python3 做神经网络(视频教程)
  9. 数据在本地文件的写入和读取
  10. 一步一步 IText.Sharp 之 Hello Word