前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >ACL2019 | 中文到底需不需要分词

ACL2019 | 中文到底需不需要分词

作者头像
AI科技评论
发布2019-05-24 12:25:17
1.6K0
发布2019-05-24 12:25:17
举报
文章被收录于专栏:AI科技评论

AI 科技评论按,本文转载自微信号“香侬科技”,AI 科技评论获授权转载。

近日,香侬科技发表论文Is Word Segmentation Necessary for Deep Learning of Chinese Representations? 探讨中文自然语言处理的最基本问题:中文NLP是否需要分词,得出结论为在深度学习的框架下,“字”的表现几乎总是优于“词”的表现。该论文入选自然语言处理顶级会议ACL19。Yuxian Meng,Xiaoya Li并列为第一作者。

论文链接:

https://arxiv.org/pdf/1905.05526.pdf

概述

长期以来,中文分词(Chinese Word Segmentation, CWS)在NLP的研究中一直受到广泛关注,无论在深度学习兴起之前,还是深度学习兴起以来,对CWS的研究都从未间断。

尽管从形式上看中文的“字”是最小的音义结合体,但是在现代汉语中,“词”才具有表达完整语义的功能,而大部分的“词”都是又多个“字”组合而成。因此,中文分词成为了许多中文NLP任务的第一步。

然而,随着深度学习的发展和计算机算力的提高,对许多中文NLP任务而言,中文分词的必要性似乎在逐渐下降。

那么我们就会问,在基于深度学习神经网络框架下的NLP任务中,到底是“字”好还是“词”好?分词是否还有存在的必要?我们是只需要“字”,还是将“字”与“词”结合使用?其中的道理又是什么呢?在当下,这些问题都缺乏系统性的研究。

本文通过在四个中文NLP任务上的实验和分析,对以上问题得出了初步的结论:

  • 在神经网络框架下进行中文NLP任务,“字”级别的表现几乎总是优于“词”级别的表现。
  • 对大部分中文NLP任务而言,我们不需要进行额外分词(一些必须进行分词的任务除外)。
  • 对部分任务而言,单用“字”可以达到最佳表现,加入“词”反而可能有负作用。
  • 原因可以部分归结为“词”级别的数据稀疏问题、OOV(out-of-vocabulary)问题和过拟合问题。

我们希望可以通过我们的研究抛砖引玉,对未来有关中文分词及其必要性、最佳中文表示单元的研究提供借鉴和启发。

“词”级别单元的不足

尽管“词”级别的模型在很多任务上得到广泛应用,但是“词”级别单元有着以下显著不足:

1.首先,词数据稀疏问题不可避免地导致过拟合,而且大量的OOV限制了模型的学习能力。根据Zipf定律,大多数中文词的出现频率都非常小,在数据集中的占比非常有限,这使得模型不能充分习得数据中的语法、语义知识。

比如,在CTB数据集中,在经过Jieba分词后,不同的词有50266个,其中24458个词仅出现一次,但它们仅占整个数据集的4.0%;有38889个词出现不多于四次,但是它们仅占数据集的10.1%。

这说明,词级别的数据是非常稀疏的,而这容易导致过拟合。另一方面,过多的词会增加大量的OOV,这又限制了模型的学习能力。

2.分词方法不统一与分词效果欠佳。实际上,中文分词在语言学上也是一件困难的事情,存在着不同的分词标准。对于NLP上的中文分词而言,不同的数据集也有不同的分词标准。

比如,对同一句话“姚明进入总决赛”,CTB数据集将其分为“姚明进入总决赛”,而PKU数据集将其分为“姚明进入总决赛”,而根据我们的知识,“姚明”显然是不能分开的。

于是,这种错误的分词可能会对下游的任务产生错误的引导,从而影响模型的效果。

3.分词所带来的收益尚未明确。尽管从直觉上看,“词”所携带的语义信息是比“字”更丰富的,但是这只是站在人的角度,那么对于神经网络而言又如何呢。

我们目前还不清楚对计算机而言,词是否就一定有利于提高表现。

基于以上几点,我们将在四个中文NLP任务上探究“词”级别和“字”级别的表现。

实验

本节在四个中文NLP任务(语言建模、机器翻译、文本分类和句子匹配)上分别对“词”级别和“字”级别的模型进行实验。

语言建模(Language Modeling)

我们首先在语言建模上进行实验。我们使用CTB6数据集,按照标准的8-1-1进行数据集划分。

对于词,我们使用Jieba进行分词。模型是基础的LSTM模型,对同一个模型,我们对学习率、dropout和batch size进行了grid search,使得ppl达到最优。

实验结果如下表:

语言建模结果:字级别的模型显著优于词级别的模型

从表中可以看到,在同维度下(512d与2048d),字级别的模型显著优于词级别的模型。而且在维度为2048的时候,ppl呈现巨大差距。

此外,我们还对“字”+“词”的混合模型(hybrid)进行了实验。对于混合模型,我们不仅使用了“词”表示,还对每个词内部的“字”表示,通过CNN得到一个综合的“字”表示,然后把这两者组合起来。表中的“char only”表示我们只使用后者。

可以看到,“char only”的模型优于其他带有“词”表示的模型,而“word+char”的模型都优于单个“词”模型。

这表明了“字”级别的模型已经编码了语言建模任务所需要的语言信息,额外增加“词”表示反而会损害表现。

机器翻译(Machine Translation)

对于MT,我们使用标准的中英互译的设置。我们在LDC语料库中选取了1.25M个句子,在NIST2002上进行验证,在NIST2003/2004/2005/2006/2008上进行测评。

模型使用标准的seq2seq+attention,同时,我们也列出了Mixed RNN、Bi-Tree-LSTM和PKI模型的结果作为比较。

此外,我们还使用了(Ma et al. 2018)中的BOW方法。词和字的表示维度都设置为512。具体的参数及其他设置详见论文。

实验结果如下:

可以看到,在中->英翻译中,简单的seq2seq+attention模型,“字”级别已经显著超过“词”级别,平均有0.83的BLEU值的提升。

再加上(Ma et al. 2018)的BOW方法,“字”级别的模型也比“词”级别的模型平均高0.63,而且也是其中的最好结果。

在英->翻译中,“字”模型比“词”模型有更大的提升,平均达到3.13。我们认为这是因为:

  • 在中->英翻译中,“字”和“词”的区别仅体现在编码端;而在英->中翻译中,在编码端和解码端都有表现。
  • 在英->中翻译中,解码端的UNK对于词影响更大。

为此,我们在英->中翻译的解码端使用了BPE方法,在seq2seq+att中得到了41.44,在seq2seq+att+bow中得到了44.35的得分,显著超过“词”级别模型,但依旧比“字”级别模型较低。

句子匹配(Sentence Matching)

对句子匹配任务,我们使用BQ和LCQMC两个数据集。这两个数据集都是给定一对句子,需要我们去判断它们在某些方面的相似性(两分类,相同或不相同)。

BQ是需要去判断语义等价,LCQMC是需要去判断意图等价。这两个数据集都非常适合去检验模型的语义捕捉能力。

我们使用当前在这两个数据集上的SOTA模型:BiMPM,参数设置保持不变,即200维的字及词表示。

实验结果如下:

可以看到,“字”级别的模型在验证集和测试集上都显著优于“词”级别模型。这表明,“字”级别的模型更能捕捉单元之间的语义联系。

文本分类(Text Classification)

对于文本分类,我们使用下面的数据集(Zhang and LeCun 2017):

  • ChinaNews:中文新闻文章,七分类。
  • Ifeng:中文新闻文章的第一段,五分类。
  • JD_full:京东上的商品点评,五分类。
  • JD_binary:京东上的商品点评,二分类,是在JD_full中,将1星和2星归为负类,将4星和5星归为正类,忽略3星。
  • Dianping:大众点评的评价,五分类,作为二分类时,将1星、2星和3星归为负类,将4星和5星归为正类。

我们使用BiLSTM模型,结果如下:

可以看到,只有在Chinanews数据集上,“词”级别模型才略高于“字”级别模型,在其他数据集上都是“字”优于“词”。

额外地,我们还在Dianping和JD两个数据集上进行了数据集迁移(Domain Adaptation)实验。

我们首先在Dianping上训练,然后在JD_binary上测试;然后反过来检验。结果如下:

可以看到,在两个方向上都是“字”优于“词”,而且OOV也有显著优势。

分析

在本节中,我们将从数据稀疏、OOV和过拟合三个方面去分析“字”优于“词”的原因。

数据稀疏

由于空间限制,我们不可能把所有出现的字/词都纳入词典,常见的方法是设置一个“频率界限”,低于这个界限的都设置为一个特殊的UNK标记。

下图是不同的频率界限和词典大小、模型表现在“字”级别和“词”级别上的曲线图:

可以看到,当bar=0的时候,两种模型都表现得很差。而对于“字”级别模型,提高bar对表现影响不大,当bar=5时表现最佳;对于“词”级别模型,提高bar可以显著提升表现。

这说明,为了充分学习语言信息,模型必须对词典中的单元有充分的“接触”(或者说足够多的数据量),而对于“词”级别模型而言,这点更加难以满足。

OOV问题

另一方面,“词”模型也有更多的OOV。如果是因为OOV问题导致的“词”模型效果欠佳,那么我们期望可以通过减少OOV来缩小与“字”模型的差距。

但是正如上面所讲的,减少OOV就意味着降低频率界限,这样就会加剧数据稀疏问题。因此我们使用另一种方法:对不同的词频率界限,我们在数据集(包括验证机和测试集)中除去那些包含OOV词的句子。如下图所示:

显然,“字”和“词”的差距随着bar的增加在逐渐缩小,“字”模型表现下降,而“词”模型表现上升。

这说明,对于“字”模型而言,OOV不是一个突出的问题,缩小数据集会导致效果下降;对于“词”模型,OOV的确会严重阻碍模型的表现,减少数据集中的OOV有利于效果提升。这启示我们未来的工作可以考虑如何解决OOV上。

过拟合

数据稀疏问题使得模型参数增多,从而更容易过拟合。我们在BQ上进行实验,发现对于“词”模型,dropout为0.5时效果最佳,而对“字”模型而言,dropout为0.3时效果最佳。

这说明过拟合在“词”模型上更容易发生。另一方面,尽管我们设置了更大的dropout,但“词”模型仍然不及“字”模型,这表明单纯的dropout不能解决过拟合问题。

可视化

我们在BQ数据集中选取句对“利息费用是多少”和“下一个月还款要扣多少利息”并画出其heatmap:

可以看到,对于“词”模型而言,“利息费用”不能和“利息”匹配,而“字”模型可以做到。

小结

在本文中,我们通过四个中文NLP任务实验,验证了在效果上“字”级别模型普遍优于“词”级别模型。通过分析,我们认为“词”级别模型的欠佳表现可以归结为数据稀疏、OOV问题、过拟合与数据集迁移能力缺乏等原因。

我们希望通过本文,可以启发未来更多更细致的关于中文分词、最佳中文表示单元的研究。

本文参与 腾讯云自媒体同步曝光计划,分享自微信公众号。
原始发表:2019-05-23,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 AI科技评论 微信公众号,前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体同步曝光计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
相关产品与服务
NLP 服务
NLP 服务(Natural Language Process,NLP)深度整合了腾讯内部的 NLP 技术,提供多项智能文本处理和文本生成能力,包括词法分析、相似词召回、词相似度、句子相似度、文本润色、句子纠错、文本补全、句子生成等。满足各行业的文本智能需求。
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档