我是靠谱客的博主 无聊乌龟,最近开发中收集的这篇文章主要介绍文本数据增强方法,觉得挺不错的,现在分享给大家,希望可以做个参考。

概述

  当前的有监督的深度学习模型,如果想获得高性能,需要依赖于大量的标注训练数据。然后,在实际上项目中,往往存在训练样本少、标注数据成本高等情况。在这种情况下,我们就需要用到文本数据增强技术。

1 回译法(Back Translation)

  回译法即将原有的句子翻译为其他语言,然后再翻译回原语言。

原句:每周三在解决会议室进行Smart Calendar周会。

输出

百度翻译:每周三在解决方案会议室举行每周智能日历会议。

有道翻译:智能日历每周例会每周三在会议室举行。

  回译的方法往往能够增加文本数据的多样性,相比替换词来说,有时可以改变句法结构等,并保留语义信息。但是,回译的方法产生的数据依赖于翻译的质量,大多数出现的翻译结果可能并不那么准确。

2 EDA(Easy Data Augmentation)

  EDA 包含四种简单但是强大的操作:同义词替换、随机插入、随机交换和随机删除。

(1)同义词替换(Synonym Replacement,SR)

  从句子中随机选择 n n n 个非停用词,然后每个词随机选择一个同义词替换它们。举例如下:

原句每周三在会议室进行项目汇报周会。

输出每周五在会议室进行项目汇报周会。


(2)随机插入(Random Insertion,RI)

  从句子中随机选择一个非停用词,然后随机选择该词的一个同义词。将该同义词插入到句子中的随机位置。此过程重复 n n n 次。举例如下:

原句:每周三在会议室进行项目汇报周会。

输出:每周三在会议室每周四进行项目汇报周会。


(3)随机交换(Random Swap,RS)

  从句子中随机选择两个词,交换位置。此过程重复 n n n 次。举例如下:

原句:每周三在会议室进行项目汇报周会。

输出:每周三在项目进行会议室汇报周会。


(4)随机删除(Random Deletion,RD)

  句子中的每个词,以概率 p p p 进行随机删除。举例如下:

原句:每周三在会议室进行项目汇报周会。

输出:每周三在进行项目汇报周会。


  值得一提的是,长句子相对于短句子,存在一个特性:长句比短句有更多的词,因此在保持原有的类别标签的情况下,长句能吸收更多的噪声。为了利用这个特性,EDA 的作者提出一个方法:基于句子长度来调整需要改变的词数。具体实现:

  • 对同义词替换、随机插入和随机交换,遵循公式: n = α ∗ l n = alpha * l n=αl,其中, l l l 表示句子长度, α alpha α 表示一个句子中需要改变的词数的比例。
  • 对随机删除,遵循公式: p = α p = alpha p=α
  • 另外,每个原始句子,生成 n a u g n_{aug} naug 个增强的句子。

  根据 EDA 作者的测试,EDA 在小的训练数据集上有更好的性能效果。

  针对上面的参数 α alpha α n a u g n_{aug} naug 的取值,EDA 作者推荐的使用参数如表-1所示。

表-1 推荐使用参数
N t r a i n N_{train} Ntrain α alpha α n a u g n_{aug} naug
5000.0516
20000.058
50000.14
More0.14

  注意:因为 EDA 在进行数据增强操作的过程中,有可能会改变句子原来的意思,但是仍然保留原始的类别标签,从而产生了标签错误的句子。所以 EDA 存在降低模型性能的可能。

参考:

[1] 论文:EDA: Easy Data Augmentation Techniques for Boosting Performance on Text Classification Tasks
[2] EDA 论文作者提供的 GitHub 地址
[3] EDA 中文版本的 GitHub 地址
[4] 微信公众号“AINLP”——数据增强在贝壳找房文本分类中的应用

最后

以上就是无聊乌龟为你收集整理的文本数据增强方法的全部内容,希望文章能够帮你解决文本数据增强方法所遇到的程序开发问题。

如果觉得靠谱客网站的内容还不错,欢迎将靠谱客网站推荐给程序员好友。

本图文内容来源于网友提供,作为学习参考使用,或来自网络收集整理,版权属于原作者所有。
点赞(49)

评论列表共有 0 条评论

立即
投稿
返回
顶部