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

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

篇首语:本文由编程笔记#小编为大家整理,主要介绍了中文分词调研:任何声称在PKU上拿到97%以上所谓“准确率”的说法,可信度都不高!相关的知识,希望对你有一定的参考价值。

篇首语:本文由编程笔记#小编为大家整理,主要介绍了中文分词调研:任何声称在PKU上拿到97%以上所谓“准确率”的说法,可信度都不高!相关的知识,希望对你有一定的参考价值。


全球人工智能:一家人工智能技术培训学校,旗下含Paper学院、商业学院、科普学院,技术学院和职业学院五大业务。拥有十几万AI技术用户,1万多名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特征时相较于以前的工作推进了一个百分点:

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

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



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


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

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

我挺喜欢这张表格的,其中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:

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

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

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

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


无法脱离特征工程

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



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


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


他们的最终成绩如下:

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

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对此吐槽颇多:

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

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

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

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

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

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

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

Cai的最终分数如下:

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

加星号的都外挂了词典,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,实际上都是基于窗口的:

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

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



  1. 每个单词成词的分数


  2. 单词接续的分数


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


单词打分

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

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

组合,得到词语向量

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

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

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


link打分

用LSTM将分词历史agglomerate起来:

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


分词结果得分

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

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


训练与解码

这类概率无关的模型一般就 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'

举例如下:

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

虽然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显得过度设计,过于复杂。更何况最终分值相较于以前的工作并没有多少进步:

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

一般而言,关联度非常高的联合任务应当取得显著的分值提升才对。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




热门文章推荐

她:


推荐阅读
  • 生成式对抗网络模型综述摘要生成式对抗网络模型(GAN)是基于深度学习的一种强大的生成模型,可以应用于计算机视觉、自然语言处理、半监督学习等重要领域。生成式对抗网络 ... [详细]
  • [译]技术公司十年经验的职场生涯回顾
    本文是一位在技术公司工作十年的职场人士对自己职业生涯的总结回顾。她的职业规划与众不同,令人深思又有趣。其中涉及到的内容有机器学习、创新创业以及引用了女性主义者在TED演讲中的部分讲义。文章表达了对职业生涯的愿望和希望,认为人类有能力不断改善自己。 ... [详细]
  • 深度学习中的Vision Transformer (ViT)详解
    本文详细介绍了深度学习中的Vision Transformer (ViT)方法。首先介绍了相关工作和ViT的基本原理,包括图像块嵌入、可学习的嵌入、位置嵌入和Transformer编码器等。接着讨论了ViT的张量维度变化、归纳偏置与混合架构、微调及更高分辨率等方面。最后给出了实验结果和相关代码的链接。本文的研究表明,对于CV任务,直接应用纯Transformer架构于图像块序列是可行的,无需依赖于卷积网络。 ... [详细]
  • 本文介绍了在MFC下利用C++和MFC的特性动态创建窗口的方法,包括继承现有的MFC类并加以改造、插入工具栏和状态栏对象的声明等。同时还提到了窗口销毁的处理方法。本文详细介绍了实现方法并给出了相关注意事项。 ... [详细]
  • 通过Anaconda安装tensorflow,并安装运行spyder编译器的完整教程
    本文提供了一个完整的教程,介绍了如何通过Anaconda安装tensorflow,并安装运行spyder编译器。文章详细介绍了安装Anaconda、创建tensorflow环境、安装GPU版本tensorflow、安装和运行Spyder编译器以及安装OpenCV等步骤。该教程适用于Windows 8操作系统,并提供了相关的网址供参考。通过本教程,读者可以轻松地安装和配置tensorflow环境,以及运行spyder编译器进行开发。 ... [详细]
  • 颜色迁移(reinhard VS welsh)
    不要谈什么天分,运气,你需要的是一个截稿日,以及一个不交稿就能打爆你狗头的人,然后你就会被自己的才华吓到。------ ... [详细]
  • vb.net不用多线程如何同时运行两个过程?不用多线程?即使用多线程,也不会是“同时”执行,题主只要略懂一些计算机编译原理就能明白了。不用多线程更不可能让两个过程同步执行了。不过可 ... [详细]
  • OCR:用字符识别方法将形状翻译成计算机文字的过程Matlab:商业数学软件;CUDA:CUDA™是一种由NVIDIA推 ... [详细]
  • 阿里Treebased Deep Match(TDM) 学习笔记及技术发展回顾
    本文介绍了阿里Treebased Deep Match(TDM)的学习笔记,同时回顾了工业界技术发展的几代演进。从基于统计的启发式规则方法到基于内积模型的向量检索方法,再到引入复杂深度学习模型的下一代匹配技术。文章详细解释了基于统计的启发式规则方法和基于内积模型的向量检索方法的原理和应用,并介绍了TDM的背景和优势。最后,文章提到了向量距离和基于向量聚类的索引结构对于加速匹配效率的作用。本文对于理解TDM的学习过程和了解匹配技术的发展具有重要意义。 ... [详细]
  • 云原生边缘计算之KubeEdge简介及功能特点
    本文介绍了云原生边缘计算中的KubeEdge系统,该系统是一个开源系统,用于将容器化应用程序编排功能扩展到Edge的主机。它基于Kubernetes构建,并为网络应用程序提供基础架构支持。同时,KubeEdge具有离线模式、基于Kubernetes的节点、群集、应用程序和设备管理、资源优化等特点。此外,KubeEdge还支持跨平台工作,在私有、公共和混合云中都可以运行。同时,KubeEdge还提供数据管理和数据分析管道引擎的支持。最后,本文还介绍了KubeEdge系统生成证书的方法。 ... [详细]
  • 基于dlib的人脸68特征点提取(眨眼张嘴检测)python版本
    文章目录引言开发环境和库流程设计张嘴和闭眼的检测引言(1)利用Dlib官方训练好的模型“shape_predictor_68_face_landmarks.dat”进行68个点标定 ... [详细]
  • 单页面应用 VS 多页面应用的区别和适用场景
    本文主要介绍了单页面应用(SPA)和多页面应用(MPA)的区别和适用场景。单页面应用只有一个主页面,所有内容都包含在主页面中,页面切换快但需要做相关的调优;多页面应用有多个独立的页面,每个页面都要加载相关资源,页面切换慢但适用于对SEO要求较高的应用。文章还提到了两者在资源加载、过渡动画、路由模式和数据传递方面的差异。 ... [详细]
  • 本文整理了315道Python基础题目及答案,帮助读者检验学习成果。文章介绍了学习Python的途径、Python与其他编程语言的对比、解释型和编译型编程语言的简述、Python解释器的种类和特点、位和字节的关系、以及至少5个PEP8规范。对于想要检验自己学习成果的读者,这些题目将是一个不错的选择。请注意,答案在视频中,本文不提供答案。 ... [详细]
  • 本文详细介绍了Android中的坐标系以及与View相关的方法。首先介绍了Android坐标系和视图坐标系的概念,并通过图示进行了解释。接着提到了View的大小可以超过手机屏幕,并且只有在手机屏幕内才能看到。最后,作者表示将在后续文章中继续探讨与View相关的内容。 ... [详细]
  • 本文介绍了Foundation框架中一些常用的结构体和类,包括表示范围作用的NSRange结构体的创建方式,处理几何图形的数据类型NSPoint和NSSize,以及由点和大小复合而成的矩形数据类型NSRect。同时还介绍了创建这些数据类型的方法,以及字符串类NSString的使用方法。 ... [详细]
author-avatar
手机用户2502920971
这个家伙很懒,什么也没留下!
PHP1.CN | 中国最专业的PHP中文社区 | DevBox开发工具箱 | json解析格式化 |PHP资讯 | PHP教程 | 数据库技术 | 服务器技术 | 前端开发技术 | PHP框架 | 开发工具 | 在线工具
Copyright © 1998 - 2020 PHP1.CN. All Rights Reserved | 京公网安备 11010802041100号 | 京ICP备19059560号-4 | PHP1.CN 第一PHP社区 版权所有