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

深度学习下,中文分词是否还有必要?——ACL2019论文阅读笔记

点击上方,选择星标或置顶,每天给你送干货!阅读大概需要4分钟跟随小博主,每天进步一丢丢来自:NLP太难了公众号

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

阅读大概需要4分钟

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

来自:NLP太难了 公众号

深度学习下,中文分词是否还有必要?

原文:

Is Word Segmentation Necessary for Deep Learning of Chinese

知乎讨论:

https://zhuanlan.zhihu.com/p/65865071

https://www.zhihu.com/question/324672243/answer/715928859

Abstract

作者基于word级模型(word-based model,需要分词)char级模型(char-based model,不需要分词),在四个NLP任务上做对比实验(语言模型、机器翻译、句子匹配和文本分类)。

实验结果显示,基于char级模型效果总是比word级模型效果好,作者基于这些实验结果给出了一些原因。

Experiments

作者在基于中文语料的四个NLP任务(语言模型、机器翻译、句子匹配和文本分类)上进行了对比实验,比较word级模型char级模型在这四个任务上的效果。

1. 语言模型(Language Modeling)

实验结果:

2. 机器翻译(Machine Translation)

实验结果:


3. 句子匹配/释义(Sentence Matching/Paraphrase  )

4. 文本分类(Text Classification)

word级模型存在的缺陷

作者基于以上实验,探讨了word级模型可能存在导致效果下降的原因。

1. 数据稀疏(Data Sparsity)

word级模型中,很多词出现的频率很低,导致产生了数据稀疏。而对于模型来说,要学习一个词的语义信息,需要词的数量需要达到一定量才行。因此,在word级模型中,神经网络并没有充分学习到很多单词的语义信息。

2. OOV词(Out-of-Vocabulary Words)

我们把不存在于词汇表中的词称为Out-of-Vocabulary Words,即OOV词。通常使用UNK这个记号来表示这些词。也可以对OOV词设置一个词频门限(frequency threshold),这样出现次数低于该门槛的词就称为OOV词。对于OOV词来说,因都将其归类为了UNK,我们就拿一个word embedding来表示UNK这一类后面的所有词,模型就比较困难去学习到它的语义信息。虽然我们可以设置一个比较低的门限,但是这样会导致数据集中出现很多词频低的词,产生数据稀疏问题。

作者也使用了实验证明了这个问题。即,将训练集、验证集和测试集中的所有OOV词都剔除。实验结果显示,随着剔除的OOV词数量越多,word级模型的效果就越好,而char级模型的效果越差。因此,作者的结论是:word级模型受OOV问题困扰,而char级模型不受该问题所困扰。在word级模型中,可以通过减少数据集中的OOV词数量来解决该问题。

3. 过拟合(Overfitting)

数据稀疏问题中的讨论,我们可以得知word级模型会有更多的参数需要被学习到,因此更容易导致产生过拟合。作者使用了dropout技术来解决这个问题。但是,实验证明dropout技术不足以解决word级模型的过拟合问题。

Conclusion

在作者所做的四组实验来看,char级模型效果几乎均好于word级模型。作者将原因归结于word级模型的三点:1.数据稀疏;2.OOV词的存在;3.过拟合。

但作者的初心并不是下一个定性的结论,而是希望大家对这个问题能有更多的探讨,毕竟,我们之前在做NLP任务时,第一步就是无脑地直接分词,确实很少考虑其合理性。


方便交流学习,备注:昵称-学校(公司)-方向,进入DL&NLP交流群。

方向有很多:机器学习、深度学习,python,情感分析、意见挖掘、句法分析、机器翻译、人机对话、知识图谱、语音识别等。

记得备注呦

推荐阅读:

【ACL 2019】腾讯AI Lab解读三大前沿方向及20篇入选论文

【一分钟论文】IJCAI2019 | Self-attentive Biaffine Dependency  Parsing

【一分钟论文】 NAACL2019-使用感知句法词表示的句法增强神经机器翻译

【一分钟论文】Semi-supervised Sequence Learning半监督序列学习

【一分钟论文】Deep Biaffine Attention for Neural Dependency Parsing

详解Transition-based Dependency parser基于转移的依存句法解析器

经验 | 初入NLP领域的一些小建议

学术 | 如何写一篇合格的NLP论文

干货 | 那些高产的学者都是怎样工作的?

一个简单有效的联合模型

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


让更多的人知道你“在看”



推荐阅读
  • 浏览器中的异常检测算法及其在深度学习中的应用
    本文介绍了在浏览器中进行异常检测的算法,包括统计学方法和机器学习方法,并探讨了异常检测在深度学习中的应用。异常检测在金融领域的信用卡欺诈、企业安全领域的非法入侵、IT运维中的设备维护时间点预测等方面具有广泛的应用。通过使用TensorFlow.js进行异常检测,可以实现对单变量和多变量异常的检测。统计学方法通过估计数据的分布概率来计算数据点的异常概率,而机器学习方法则通过训练数据来建立异常检测模型。 ... [详细]
  • 本文介绍了在处理不规则数据时如何使用Python自动提取文本中的时间日期,包括使用dateutil.parser模块统一日期字符串格式和使用datefinder模块提取日期。同时,还介绍了一段使用正则表达式的代码,可以支持中文日期和一些特殊的时间识别,例如'2012年12月12日'、'3小时前'、'在2012/12/13哈哈'等。 ... [详细]
  • 本文介绍了在Python张量流中使用make_merged_spec()方法合并设备规格对象的方法和语法,以及参数和返回值的说明,并提供了一个示例代码。 ... [详细]
  • 阿里Treebased Deep Match(TDM) 学习笔记及技术发展回顾
    本文介绍了阿里Treebased Deep Match(TDM)的学习笔记,同时回顾了工业界技术发展的几代演进。从基于统计的启发式规则方法到基于内积模型的向量检索方法,再到引入复杂深度学习模型的下一代匹配技术。文章详细解释了基于统计的启发式规则方法和基于内积模型的向量检索方法的原理和应用,并介绍了TDM的背景和优势。最后,文章提到了向量距离和基于向量聚类的索引结构对于加速匹配效率的作用。本文对于理解TDM的学习过程和了解匹配技术的发展具有重要意义。 ... [详细]
  • 本文介绍了在开发Android新闻App时,搭建本地服务器的步骤。通过使用XAMPP软件,可以一键式搭建起开发环境,包括Apache、MySQL、PHP、PERL。在本地服务器上新建数据库和表,并设置相应的属性。最后,给出了创建new表的SQL语句。这个教程适合初学者参考。 ... [详细]
  • 向QTextEdit拖放文件的方法及实现步骤
    本文介绍了在使用QTextEdit时如何实现拖放文件的功能,包括相关的方法和实现步骤。通过重写dragEnterEvent和dropEvent函数,并结合QMimeData和QUrl等类,可以轻松实现向QTextEdit拖放文件的功能。详细的代码实现和说明可以参考本文提供的示例代码。 ... [详细]
  • Python正则表达式学习记录及常用方法
    本文记录了学习Python正则表达式的过程,介绍了re模块的常用方法re.search,并解释了rawstring的作用。正则表达式是一种方便检查字符串匹配模式的工具,通过本文的学习可以掌握Python中使用正则表达式的基本方法。 ... [详细]
  • 《数据结构》学习笔记3——串匹配算法性能评估
    本文主要讨论串匹配算法的性能评估,包括模式匹配、字符种类数量、算法复杂度等内容。通过借助C++中的头文件和库,可以实现对串的匹配操作。其中蛮力算法的复杂度为O(m*n),通过随机取出长度为m的子串作为模式P,在文本T中进行匹配,统计平均复杂度。对于成功和失败的匹配分别进行测试,分析其平均复杂度。详情请参考相关学习资源。 ... [详细]
  • 本文介绍了Oracle存储过程的基本语法和写法示例,同时还介绍了已命名的系统异常的产生原因。 ... [详细]
  • YOLOv7基于自己的数据集从零构建模型完整训练、推理计算超详细教程
    本文介绍了关于人工智能、神经网络和深度学习的知识点,并提供了YOLOv7基于自己的数据集从零构建模型完整训练、推理计算的详细教程。文章还提到了郑州最低生活保障的话题。对于从事目标检测任务的人来说,YOLO是一个熟悉的模型。文章还提到了yolov4和yolov6的相关内容,以及选择模型的优化思路。 ... [详细]
  • android listview OnItemClickListener失效原因
    最近在做listview时发现OnItemClickListener失效的问题,经过查找发现是因为button的原因。不仅listitem中存在button会影响OnItemClickListener事件的失效,还会导致单击后listview每个item的背景改变,使得item中的所有有关焦点的事件都失效。本文给出了一个范例来说明这种情况,并提供了解决方法。 ... [详细]
  • ZSI.generate.Wsdl2PythonError: unsupported local simpleType restriction ... [详细]
  • Java String与StringBuffer的区别及其应用场景
    本文主要介绍了Java中String和StringBuffer的区别,String是不可变的,而StringBuffer是可变的。StringBuffer在进行字符串处理时不生成新的对象,内存使用上要优于String类。因此,在需要频繁对字符串进行修改的情况下,使用StringBuffer更加适合。同时,文章还介绍了String和StringBuffer的应用场景。 ... [详细]
  • 在重复造轮子的情况下用ProxyServlet反向代理来减少工作量
    像不少公司内部不同团队都会自己研发自己工具产品,当各个产品逐渐成熟,到达了一定的发展瓶颈,同时每个产品都有着自己的入口,用户 ... [详细]
  • Python爬虫中使用正则表达式的方法和注意事项
    本文介绍了在Python爬虫中使用正则表达式的方法和注意事项。首先解释了爬虫的四个主要步骤,并强调了正则表达式在数据处理中的重要性。然后详细介绍了正则表达式的概念和用法,包括检索、替换和过滤文本的功能。同时提到了re模块是Python内置的用于处理正则表达式的模块,并给出了使用正则表达式时需要注意的特殊字符转义和原始字符串的用法。通过本文的学习,读者可以掌握在Python爬虫中使用正则表达式的技巧和方法。 ... [详细]
author-avatar
阿乀胜69
这个家伙很懒,什么也没留下!
PHP1.CN | 中国最专业的PHP中文社区 | DevBox开发工具箱 | json解析格式化 |PHP资讯 | PHP教程 | 数据库技术 | 服务器技术 | 前端开发技术 | PHP框架 | 开发工具 | 在线工具
Copyright © 1998 - 2020 PHP1.CN. All Rights Reserved | 京公网安备 11010802041100号 | 京ICP备19059560号-4 | PHP1.CN 第一PHP社区 版权所有