[paper阅读]使用深度Bi-GRU-CRF网络进行中文词法分析-1

本文译自 百度提供的: Chinese Lexical Analysis with Deep Bi-GRU-CRF Network.

摘要

众所众知, 在自然语言理解中, 词法分析是非常关键一步, 并且已经得到了广泛的研究. 近些年来, 使用RNN (Recurrent Neural Network, 循环神经网络) 的端对端 词法分析模型也获得了极大的关注. 本文将会介绍一个深度Bi-GRU-CFR(双向GRU结构)网络, 同时对 分词 / 词性标注命名实体识别 任务进行建模. 在项目中, 使用 几个 由最好的中文词法分析工具 预先标注的大型数据集 和 规模较小 但是质量非常高的人工标注 数据集 对模型进行训练. 为了保证人工标注的影响, 项目在不同的数据集之间进行了均衡的采样, 并且在训练过程中定期地调整CRF编码层. 语义专家的评估表明: 模型在测试数据集上实现了95.5%的准确性, 相比之前的最佳中文词法分析工具大致提高了13%. 模型在计算方面也非常高效, 实现了每个线程每秒2300个词语的处理速度.

简介

本文主要介绍了一个中文词法分析模型, 同时实现了三个任务: 分词/词性标注/命名实体识别. 大部分包括中文在内的的东亚语言的词语之间并没有显式的分割点, 因此, 对于处理这些语言而言, 分词是一个非常初步的过程. 词性标注指的是给 分词结果中的每个词语 标记正确词性(例如, 名词/动词/形容词等) 的流程. 命名实体识别, 指的是 在被识别的文本中 识别出有特定意义的 实体, 包括 人/地点/机构等.

在多年的积累和创新中, 百度搭建了一系列用于这些单独分析任务的高效工具. 为了保证这些工具共享相同低级别的分析结果(例如, 分词和词性标签), 百度也做了一系列的安排使得开发人员可以方便地集成多个工具. 然而, 这些使用pipeline方式进行的集成工作经常会遇到错误传播的问题, 并且无法在不同的任务之间共享特征. 除此之外, 在所有的努力之后, 在集成工具中, 仍然会在重合的功能中出现冲突. 有时候为了解决这些冲突可能会带来非常大的计算消耗.

例如, 在搭建发布在百度AI开放平台的语义分析系统时, 作者们认真地选择了每个子任务的模型, 然后写了一个复杂的冲突解决逻辑来保证最后模型的质量, 最终, 系统被用于几个主线有竞争力的产品, 然后每天能够接收超过百万的服务请求. 然而, 由于同步的模型调用, 系统运行得非常缓慢, 经常会占用超过几十GB的内存. 此外, 复杂的集成工作流以及后续的处理逻辑使得系统非常难以优化.

为了解决这些问题, 作者们使用一个简单的模型重新构建了一个在线系统. 序列标注是词法分析中一个传统的方法. NLP社区最近也对基于神经网络的序列标注模型有了极大的关注, 并且得到了很不错的结果. 网络结构和它的概率输出使得模型非常紧密并且易于拓展, 而且也适用于垂直的领域. 首先, 作者们使用6亿3千万的查询/标题以及新闻语句调用在线服务, 然后收集了分析结果作为大量伪标注的数据集. 然后, 作者同时使用伪标注的数据集和一个小型的人工标注数据集训练了一个深度Bi-GRU-CRF模型. 为了保证人工标注数据对模型的影响, 项目中对人工标注数据集进行过采样. 此外, 项目还在人工标注的数据集中使用标签转换在训练过程中对CRF的编码层进行调优.

模型以全端对端的方式进行工作, 结果表明模型非常有效和高效. 它的输入仅仅为词语的嵌入, 而没有任何人工的特征. 模型基于一个统一的IOB2风格包装的标签模式输出标签, 从而实现所有三个分析任务. 作者们邀请了第三方语义专家在500个新闻雨中中进行评估. 新的模型在分词和标签方面实现了95.5%的准确性, 在一定情况下超过了在线的系统. 就效率而言, 新的模型在内存使用少于100 MB的情况下每秒能够处理2300个词语. 基于这个模型, 作者们构建了一个开源的工具包, 并且将其发布在了Github.

任务说明

项目的目标在于同时实现 分词/词性标注以及命名实体识别任务. 对于输入文本中的每一行, 一般是一系列词语: $c_1, c_2, … c_T$, 项目的目标是以t-[BI]的形式, 对每个单词 $c_i$ 分配一个标签 $l_i$ . 使用IOB2形式, 每个标签t都有一个B或者T的后缀, 表示一个字符是标签为t的词语的开头或者中间. 值得注意的是: 词性标注和命名实体识别任务被同时解决的, 因此, 没有字符将会被标注为outside, 因此这里没有O的后缀.

表1: 词法分析结果的标注模式

标签 描述 说明
n 名词
PER 人名
nr 人名 低置信的人名
LOC 地点
ns 地点 低置信的地点
ORG 机构
nt 机构 低置信的机构
nw 艺术品 例如, 四世同堂
nz 其它名词
TIME 时间
t 时间 低置信的时间
f 方位词 例如, 上/下/左/右
s 表示位置的词 例如, 国内/海外
v 动词
vd 动词用作副词
vn 动词用作名词
a 形容词
ad 形容词用作副词
an 形容词用作名词
d 副词
m 数量词 例如, 一, 第一, 一个
q 度量词
p 介词/前置词
c 连词
r 代词
u 助词
xc 其它功能词 感叹词/语气词/拟声词/非语素词
w 标点

1中展示了在分析任务中使用到的标签模式. 对于命名实体识别任务, 项目的目标是识别人名(PERSON)/位置(LOC)/机构(ORG)和时间(TIME). 对于词性标注任务, 作者们开发了一个基于PKU 词性集合的紧密词性集合. 与PKU词性集合相比, 项目主要进行了下面的调整:

  • 删除词素(*g, 前部/后部成分(h/k), 由于项目使用的是综合的分析, 这些组成被认为是其它词的一部分.
  • 删除临时短语(l)/习语(i)和缩写(j), 然后基于它们在句子中的真实作用对这些单词进行标注
  • 删除辨析词(b), 将其标注为形容词(a)
  • 删除感叹词(i), 语气词(y), 拟声词(o)和非词素字符(x), 将其标注为其它功能词(xc)
  • 将邻近的数词和度量词组合在一起表气味数字-度量组合(仍然使用m标签)
  • 新增一个艺术作品的标签(nw)

注意: 词性集合也包含人名/位置和机构名称的实体. 项目不会将它们合并到对应的命名实体标签中, 相反地, 而是使用它们用来标识低置信的标注命名实体. 应用可以基于这个设定来平衡命名实体的准确率和召回率.

下周, 我们将会继续介绍项目使用的模型/实验以及相应的结论. 下周见~

打赏

mickey

记录生活,写给几十年后的自己。