中文分词调研:任何声称在PKU上拿到97%以上所谓“准确率”的说法,可信度都不高!

2017 年 9 月 5 日 全球人工智能

全球人工智能:一家人工智能技术培训学校,旗下含Paper学院、商业学院、科普学院,技术学院和职业学院五大业务。拥有十几万AI技术用户,1万多名AI技术专家,几百名AI技术讲师。主要来自:北大,清华,中科院,麻省理工,卡内基梅隆,斯坦福,哈佛,牛津,剑桥......以及谷歌,腾讯,百度,脸谱,微软,阿里,海康威视,英伟达......等全球几百家名校和名企。


加入AI企业高管群>>

加入AI技术专家群>>

来源:码农场

随着深度学习的普及,有越来越多的研究应用新模型到中文分词上,让人直呼“手快有,手慢无”。不过这些神经网络方法的真实水平如何?具体数值多少?以Sighan05中的PKU数据集为例,真像一些论文所言,一个LSTM-CRF就有96.5%吗?或者像某些工业界人士那样,动辄“基于深度学习的98%准确率”,“99% 的分词成功率”吗?

如果数字真的这么好看,那中文分词这个课题几乎没有研究意义了。更何况,中文分词标准难以统一,任何语料库都存在内部标注一致性(inter-annotator agreement)的问题。一些著名的语料库(如CTB)设有质量检测机制1,虽然没有公布具体内部标注一致性数值,但Shen 20162抽样重新标注校验的CTB5在分词上的一致性才达到99.10%;可据此推测CTB的内部一致性低于99%。而其他著名语料库(如PKU、MSR等)则既没有公布一致性数值,也没有人做相关试验。国家语委语料库则简单地说了句“标注是指分词和词类标注,已经经过3次人工校对,准确率大于>98%”3;综合学术界穷极特征工程与语言学资源(词典)的分词器不超过98%的分值这一事实来保守估计,这些语料库的一致性不会超过98%。而PKU分值几乎没有超过96%的,所以任何声称在PKU上拿到97%以上所谓“准确率”的说法,可信度都不高。

本文收集分析一些可信的state of art数据,尝试还原当前(2017年左右)中文分词的真实面貌。联想到最近的造假事件,试验最基本的要求是一定要保证可复现。一切观点都应该以可复现的试验数值支撑,数值来源需满足:

1、在公开合法的语料库上试验

  • 坊间流传的泄露版人民日报2014不在此列

  • 该语料疑似机器分词,没有经过人工校对,错误百出

2、实现代码开源

  • 闭源商业实现不予考虑

  • 还需开源训练模块

3、试验过程规范

  • 训练集、开发集、测试集的拆分符合convention

  • 无“在测试集上调参”的操作

满足这些条件的,基本只剩顶会paper了。本文权当一份中文的调查报告吧。虽然盲从是无知的体现,质疑和批判是治学的良方;但作者水平实在有限,恐有谬误,也欢迎随时质疑批判。


旧时代的阴影


归功于传统特征工程时代人们的费尽心机,以至于早期(2014年左右)的神经网络方法根本无法与特征工程匹敌。当时有篇Pei 20144算是较早的一批之一,其中讲到

the study of deep learning for NLP tasks is still a new area in which it is currently challenging to surpass the state-of-the-art without additional features.

也算是一个精辟的总结吧。

Pei 2014的模型与Zheng 20135相同,就是一个Window Based NN分类器:

然后加入了bigram feature,利用the average of character embeddings of $c_k$and $c_{k+1}$初始化,利用Max-Margin作为损失函数。

不加bigram特征时相较于以前的工作推进了一个百分点:

他们无法与特征工程对抗,那就顺从特征工程,也加几个特征呗。

A very common feature in Chinese word segmentation is the character bigram feature.

加了bigram特征后,与传统特征工程终于comparable了:

我挺喜欢这张表格的,其中2013年之前的都是非NN传统方法。可见截止2014年的时候,NN方法没有取得显著成绩。


sequence模型


虽然RNN with LSTM extension早在1997年就提出了,但真正进入人们视野应该得益于谷歌Sutskever 2014 6这篇论文。于是2015年的时候,RNN sequence model被应用到各种sequence标注任务上。

Chen等人速度的确很快,在2015年一举拿下GRU和LSTM7两篇论文,其中LSTM的试验效果比GRU要好,成为LSTM-CWS的代表作。LSTM最大的优点就是理论上无限大的“window”,或说上文吧;以及实际约200个time step左右的记忆跨度。他们举了个很好的例子:

冬天 (winter),能 (can) 穿 (wear) 多少 (amount) 穿 (wear) 多少 (amount);夏天 (summer),能 (can) 穿 (wear) 多 (more) 少 (little) 穿 (wear) 多 (more) 少 (little)。

没有脱离window

Chen等人虽然引入了LSTM,但并没有脱离window模型的桎梏。他们的LSTM单元的输入是相邻字符的window:

这一点其实也有实际的考量,因为window based方法实在成果斐然,我试验用感知机信手实现一个基线模型,窗口大小仅为2就能在MSR上拿到96.3的F1。这说明中文分词其实不需要多大的上下文,或者说远处的字符对当前字符的影响微乎其微。但这又与LSTM的长处相抵触,Chen等人又认为要分对上述“冬夏”的例子,必须有一个很大的上下文。这可能是论文的一个矛盾之处。另外,LSTM只有上文,引入字符window可以带来下文,这可能能够解释一部分矛盾。

果然,Chen等人的试验也证明0个字符上文2个字符下文的LSTM窗口效果最好:

无法脱离特征工程

虽然是NN方法,但他们也无法脱离特征工程。其中,

  1. char window本身已经是一种特征

  2. 还加入了Pei 2014引入的bigram特征

他们的最终成绩如下:

96.5的分值的确是超越了以往工作,论文行文也非常清晰,我个人非常喜欢。

预处理引发争议

但是Chen等人对数据的预处理存在非常大的争议:

All datasets are preprocessed by replacing the Chinese idioms and the continuous English characters and digits with a unique flag.

英文字母和数字的替换并无不妥,争议发生在“中文习语”的替换上,用词典替换测试集中较长的词语实在无法认同。Cai 20168对此吐槽颇多:

这种做法导致Cai等人不得不自己重新跑一遍Chen等人的代码(去掉词典):

上表加星号的可视作无词典情况下Chen 2015的真实分值,其中PKU的分值为94.8,与挂载词典的96.5差距极大!

Cai等人后来自己也挂了一个词典,得到如下实验结果:

Cai的最终分数如下:

加星号的都外挂了词典,Zhang和Chen都来自复旦大学,也算是一种流派吧。

另外,Chen本人在ACL 20179上的论文也坦言:

although the F value of LSTM model in (Chen et al.(2015b)Chen, Qiu, Zhu, Liu, and Huang) is 97.4%, they additionally incorporate an external idiom dictionary.

算是承认了这一争议吧。

另外,分值都相较于上一个表格有所提升,因为是在全集(训练集+开发集)上训练的。

之后还有Yao 2016的Bi-LSTM-CWS,由于没有公开源码,所以不做表态。(另,该文将SIGHAN bakeoff误拼写为SIGHAN Backoff,给人第一印象就十分地不严谨。)


Word-based Methods


刚才介绍的Cai 20168独树一帜,跳出了序列标注的框框,直接对分词结果建模。他们的动机是,之前的方法无论用了多好的NN,实际上都是基于窗口的:

而他们想完全消除窗口,直接对分词结果建模。分词结果的好坏由下列两个方面衡量:

  1. 每个单词成词的分数

  2. 单词接续的分数

单词打分

枚举定长$L=4$之内的所有单词,用GCNN(Gated Combination Neural Network)

组合,得到词语向量

与一个参数向量内积得到词语分数:

link打分

用LSTM将分词历史agglomerate起来:

分词结果得分

就是单词得分与句子得分之和:

训练与解码

这类概率无关的模型一般就 max-margin 了,解码的时候有些技巧。由于所有可能的分词序列是指数级,所以必须beam search。另外作者在ACL1710上改进了算法,贪心搜索就行了。其实,由于限制了最长单词为4,所以实际复杂度并不高。

质疑

虽然我很喜欢这篇独辟蹊径的论文,以及作者仗义执言的个性,但作者的数据预处理依然存在争议,在他们公布的代码中,将测试集中长度大于4的单词都处理为了字母L:

            if len(word)>Maximum_Word_Length:                 count+=1                 longwords.append(word) ...             if word in longws:                 count_longws+=1                 word = u'L'

举例如下:

虽然Cai的模型的确将最长长度视作超参数,但也不能说因为模型无法处理这些单词,所以把它们从测试集中抹掉啊。“柴可夫斯基”“四通利方公司”是命名实体,不是Chen所说的idiom,怎么能说去掉就去掉呢?Cai等人的95.8里面依然存在水分。


Multi-Criteria Joint Learning


就是利用多个分词标准的语料库联合训练,前面也提到过,ACL 2017上Chen等人的最新工作。已经有一些优秀的文章介绍了这份工作,但本文更关注现有工作的不足。

Chen 2017将所有繁体语料按字转换为简体,任何写过或者用过高级一点的简繁转换工具的人都会摇头,因为简繁并非是按字一一对应的。比如“以後等妳當上皇后”中的两个“后”字,以及大陆的“代码”、台湾的“程式碼”、香港的“代碼”甚至连字符数都不相同。按字转换本身就十分地不符合语言学观点,哪怕对分值来讲无关紧要。

另外,模型依然没有脱离窗口,还在利用bigram feature:

all experiments including baseline results are using pretrained character embedding with bigram feature.

最重要的一点是,引入GAN到中文分词这么简单的任务(相较于句法分析、机器翻译而言)上来实在是大材小用。论文多个private的LSTM layer和CRF layer显得过度设计,过于复杂。更何况最终分值相较于以前的工作并没有多少进步:

一般而言,关联度非常高的联合任务应当取得显著的分值提升才对。Chen 2017只与自己做比较,未与其他state of art工作做比较,显得对Multi-Criteria Joint Learning信心不足,也没有挖掘出Multi-Criteria Joint Learning的真实潜力。


我的实验


我依然非常喜欢Chen等人的这篇论文,因为它设置了一个很棒的baseline。我在7月中旬开始了Joint Learning相关试验,现在已经在sighan05上已经取得了超过今年ACL上Chen 2017的分数:

          P       R       F1
pku     95.28   96.01   95.64
msr     96.20   96.43   96.31
as      95.68   95.00   95.34
cityu   96.00   95.87   95.94
AVG     95.75   95.78   95.77

其中cityu的分值已经超越了今年ACL上Cai 2017的95.6,as已经达到95.3,这些分值还在随着模型改进与超参数调整而提升中,估计再调调可以在更多dataset上超越state of art。

现在遇到的问题是:

1、试验设备有限

  • 我只有一台MBP、一台杂牌组装机、一台Intel(R) Xeon(R) CPU E3-1220 v5 @ 3.00GHz的塔式服务器

  • 三台机器同时开工,天气炎热,风扇噪音不堪忍受;好些天没睡过一个好觉

  • 没有GPU

2、语料有限

  • 我只有sighan05的4份语料,没有sighan08以及CTB的语料

  • 如果有Chen 2017相同的8份语料,则会更有说服力

  • 虽然增加语料,joint model的分值不一定提升,但我个人非常有信心

3、没有合著者

  • 身边没有研究中文分词的师长

  • 缺乏论文指导老师


我将会在近日将论文$\LaTeX$草稿上传arXiv,代码上传GitHub,欢迎到时候批评指正,也欢迎手头有富余计算资源、实验室有sighan08语料、希望合著这篇论文、指导论文的同学和学者老师联系我;我目前人在国内,可以签字一切必要的授权文档。

这份调研还有很多优秀工作没有涉及到,比如张梅山老师的Sparse Feature与Transition-Based方法等。

初次涉足NLP学术界,不胜惶恐,同时又实在需要帮助;谬误肯定不少,欢迎批评指正,谢谢!

《全球人工智能》开始招人啦!


一、1名中文编辑(深圳):熟悉国内AI技术媒体、企业,对AI有一定了解,有非常强烈的兴趣进入这个行业,学习能力强,负责中文类AI技术新闻采编(有经验)。待遇:8-12k

二、1名英文编译(深圳):英语水平能看懂英文的新闻,对AI有一定了解,有非常强力的兴趣进入这个行业,学习能力强,负责英文类AI技术新闻采编和兼职翻译管理(有经验)。待遇:8-12k

三、1名课程规划(深圳):计算机相关专业,对人工智能技术有浓厚兴趣,能对ai技术进行系统化梳理,对培训教育比较感兴趣,学习能力强。负责技术课程的梳理和规划(英语好懂技术)。待遇:8-12k

四、1名导师管理(深圳):沟通能力强,能善于负责人工智能技术专家的拓展、关系维护、培训沟通、课程时间协调等工作(英语好懂技术)。待遇:8-12k+提成

五、2名渠道商务(深圳):有一定渠道商务拓展或销售经验,对新生事物比较敏感,熟悉线上线下渠道拓展业务。待遇:6-10k+提成

六、1名平面广告设计(深圳):有1年以上平面广告设计经验,有原画功底,有较好的审美水平,熟悉各种设计软件。待遇:6-10k。

简历发送mike.yu@aisdk.com

热门文章推荐

华为扔下这枚“AI芯弹”,全世界的智能手机都卡(慢)死了!

用57行代码搞定花8000万美元采购车牌识别项目

厉害|百度28位离职技术大牛和他们创建的AI公司!

一AI工程师下载200万GB色情内容,只为学习Python!

推荐|变形卷积核、可分离卷积?CNN中十大操作!

她:13岁造飞机,17岁进MIT,22岁到哈佛读博!

火爆了!全球最火爆的人脸识别技术应用: FaceDance Challenge!

厉害!科大讯飞市值奔1000亿,市盈率达400倍成“妖股”!

残酷!如果你35岁破产,你还有多大可能逆袭?

重磅!大数据告诉你:逃离北上广,他们都去了哪里?

登录查看更多
1

相关内容

将一个汉字序列切分成一个一个单独的词
最新《自然场景中文本检测与识别》综述论文,26页pdf
专知会员服务
69+阅读 · 2020年6月10日
专知会员服务
155+阅读 · 2020年4月21日
【哈工大】基于抽取的高考作文生成
专知会员服务
36+阅读 · 2020年3月10日
【CCL 2019】结合规则蒸馏的情感原因发现方法
专知会员服务
22+阅读 · 2019年11月27日
已删除
架构文摘
3+阅读 · 2019年4月17日
Jiagu:中文深度学习自然语言处理工具
AINLP
90+阅读 · 2019年2月20日
简单有效的多标准中文分词
全球人工智能
6+阅读 · 2018年1月1日
谷歌要输给“邪恶的独角兽”了
商业周刊中文版
3+阅读 · 2017年12月17日
开源 | 基于Python的人脸识别:识别准确率高达99.38%!
全球人工智能
4+阅读 · 2017年7月29日
Arxiv
102+阅读 · 2020年3月4日
Arxiv
5+阅读 · 2019年11月22日
Arxiv
5+阅读 · 2018年5月10日
VIP会员
相关VIP内容
相关资讯
已删除
架构文摘
3+阅读 · 2019年4月17日
Jiagu:中文深度学习自然语言处理工具
AINLP
90+阅读 · 2019年2月20日
简单有效的多标准中文分词
全球人工智能
6+阅读 · 2018年1月1日
谷歌要输给“邪恶的独角兽”了
商业周刊中文版
3+阅读 · 2017年12月17日
开源 | 基于Python的人脸识别:识别准确率高达99.38%!
全球人工智能
4+阅读 · 2017年7月29日
Top
微信扫码咨询专知VIP会员